类Unix环境变量配置

环境变量配置文件

  • /etc/profile

  • /etc/bashrc

  • /etc/paths

  • ~/.bash_profile # MacOS

  • ~/.bashrc # Linux

  • ~/.bash_login

  • ~/.profile

如果shell的类型是zsh时,还会存在/etc/zshrc~/.zshrc

其中/etc/profile,/etc/paths,/etc/bashrc均为系统级变量,且/etc/profile,/etc/paths在任何用户登录时,均会读取该文件;/etc/bashrc在bash shell执行时,会读取该文件。

MacOS默认用户环境变量配置文件为~/.bash_profile,Linux默认为~/.bash_rc。如果不存在~/.bash_profile则可以自行创建~/.bash_profile,且如果~/.bash_profile存在,则后面的文件都将会被忽略。

常见的环境变量

  • $PATH:决定了shell将到哪些目录中寻找命令和程序

  • $HOME:当前用户主目录

  • $MAIL:当前用户到邮件存放目录

  • $SHELL:当前用户使用到哪种shell

其中,PATH=$PATH:<PATH 1>:<PATH 2>:...:<PATH N>,表示系统的可执行文件路径不但包括原先设定的路径($PATH),也包括从PATH 1PATH N的所有路径。类Unix的环境变量分隔符为“:”,而Windows的环境变量分隔符为“;”。可以通过echo $PATH查看当前的可执行文件的路径。

可以使用:

$ env

显示所有的环境变量;

使用:

$ set

显示所有本地定义的shell变量。

export命令

export命令将传入到参数创建为一个环境变量,而这个环境变量可以被其它调用程序或脚本看见。

示例:新建一个环境变量WELCOME

$ export WELCOME="hello"  
$ echo $WELCOME

输出:
hello

如果直接使用export命令在shell窗口内设置环境变量,则设置的环境变量仅在本次登陆时有效,退出shell失效。

添加系统环境变量

修改系统变量/etc/paths

添加系统环境变量,建议修改/etc/paths的方式添加,但不建议直接修改/etc/paths文件,而是将路径写到/etc/paths.d目录下的一个文件中,系统会逐一读取/etc/paths.d下的每一个文件。/etc/paths文件内容:

/usr/local/bin
/usr/bin/
...

/etc/paths.d目录内容:

git #文件
go #文件
...

查看/etc/paths.d/git文件内容:
/usr/local/git/bin

因此可采用以下命令添加环境变量:

sodo -s 'echo "/usr/local/sbin/mypath" > /etc/paths.d/mypath'

注意:sudo -s是指切换到root用户,但使用当前用户的环境,这和sudo su不同。

但添加完成之后,命令不会立即生效,有两种方式使配置文件立即生效:

  • 重启终端

  • 通过source加载:source /etc/paths

修改系统环境变量文件/etc/profile或者/etc/bashrc

添加环境变量的语法为:

export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>

要添加环境变量,只需要在文件中加入:

export PATH="$PATH:<PATH>"

修改用户环境变量

和上述中修改/etc/profile/etc/bashrc类似,直接修改~/.bash_profile或者~/.zshrc。添加的语法仍然是:

export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:...:<PATH N>

注意:每次设置完成后,如果希望立刻生效,可以使用source <ModifiedEnviromentFile>使之生效。

原文地址:https://www.cnblogs.com/mengnan/p/12372006.html