Mac 环境变量

成功路上并不拥挤,因为坚持的人并不多。只有坚持了,我们才知道,这一路上有多少事情需要实干,有多少东西需要学习。

1. 环境变量的理解

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如临时文件夹位置、系统文件夹位置以及某些应用软件文件的路径等等。环境变量相当于给系统或用户应用程序设置的一些参数,具体起什么作用这当然和具体的环境变量相关。

比如 Path,是告诉系统,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还应到哪些目录下去寻找。

2. 环境变量配置文件

2.1 系统级别

系统级别配置文件,系统启动就会加载,修改需要 Root 权限。

  • /etc/paths :任何用户登陆时都会读取该文件,全局建议修改这个文件 。
  • /etc/profile:为系统的每个用户设置环境信息和启动程序,其配置对所有登录的用户都有效,一般不建议修改该文件。

2.2 用户级别

  • ~/.bash_profile:为当前用户设置专属的环境信息和启动程序,当用户登录时该文件执行一次。默认情况下,它用于设置环境变量,并执行当前用户的 .bashrc 文件,一般用户级环境变量会放到这个文件。
  • ~/.bash_login~/.profile:这三个文件也是依次执行的,如果 bash_profile 文件存在,则后面的两个文件就会被忽略不读了,如 bash_profile 文件不存在,才会以此类推读取后面的文件。
2.3 shell 打开时加载
  • /etc/bashrc/etc/zshrc:系统级配置,为每个运行 bash/zhs shell 的用户执行该文件,当 bash/zhs shell 打开时,该文件被执行,其配置对所有使用 bash 的用户打开的每个 bash 都有效。

  • ~/.bashrc~/.zshrc:用户级配置,作用同上。它是 bash/zsh shell 打开的时候载入的,对当前用户打开的每个 bash 都有效。

如果系统默认 shell 使用的是 zsh 而不是 sh、bash,那么 zsh 是不加载 .bash_profile 文件的,而是加载 .zshrc。source .zshrc 在 zsh 环境下读取配置文件。

3. 环境变量配置方法

  • 在 .bash_profile 文件中写入

    # export 命令用于设置或显示环境变量
    # 语法格式为 export 变量名称=变量设置值
    export PATH=$PATH:/opt/STM/STLinux-2.3/devkit/sh4/bin
    
  • 让配置文件立即生效

    # source 命令作用为在当前base环境下读取并执行file中的命令
    source .bash_profile
    

4. 常使用的环境变量

  • PATH:系统指定可执行文件的搜索路径。
  • SHELL:系统当前使用 Shell 程序。

5. 使用中常见问题

如果系统默认 shell 使用的是 zsh 而不是 sh、bash,那么 zsh 是不加载 .bash_profile 文件的,而是加载 .zshrc。source .zshrc 在 zsh 环境下读取配置文件。

确认 shell:

# 确认当前进程(运行时的)正在使用的 shell
echo $0 
# 确认当前用户默认shell
echo $SHELL

修改 shell:

我们可以用下面的命令来看看 macOS 系统有哪些支持的 shell。并来变更默认的 shell。

cat /etc/shells
chsh -s /bin/dash

优秀博客推荐:

https://baijiahao.baidu.com/s?id=1739693765201054630&wfr=spider&for=pc