Linux和Mac环境变量设置
在linux和mac中设置环境变量我已知的有两种方式,一种是修改环境变量的文件,另一种是使用export关键字。之所以不提windows,是因为我所知的在windows上配置环境变量只有通过窗口然后点击这一种方式。
以mac配置pyenv环境变量为例:
1、export方式
查看当前shell是zsh还是bash, 如果是bash选择下面的方式一,如果是zsh选择方式二
dscl . -read /Users/$USER UserShell
方式1 编辑.bash_profile文件
终端执行命令:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >>~/.bash_profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >>~/.bash_profile echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\nfi'>>~/.bash_profile
方式2 编辑~/.zshrc 文件,
终端执行命令:
echo 'export PYENV_ROOT="$HOME/.pyenv"' >>~/.zshrc echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >>~/.zshrc echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init --path)"\nfi'>>~/.zshrc
生效环境变量
如果是bash
source ~/.bash_profile
如果是zsh
source ~/.zshrc
2、修改配置文件的方式
还是得先查看当前shell是zsh还是bash, 如果是bash选择下面的方式一,如果是zsh选择方式二
dscl . -read /Users/$USER UserShell
方式1 编辑.bash_profile文件
vim ~/.bash_profile
任意找个位置添加下面这些配置
export PYENV_ROOT="$HOME/.pyenv export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init --path)"
fi
方式2 编辑~/.zshrc 文件,
vim ~/.zshrc
任意找个位置添加下面这些配置
export PYENV_ROOT="$HOME/.pyenv export PATH="$PYENV_ROOT/bin:$PATH"
if command -v pyenv 1>/dev/null 2>&1; then
eval "$(pyenv init --path)"
fi
生效环境变量
如果是bash
source ~/.bash_profile
如果是zsh
source ~/.zshrc
无论是export还是直接修改文件的方式,最后想要配置生效,都需要source相关配置文件。
关于export方式
有同学在平时配环境的时候可能经常看到使用export xxx=yyyy这种后面没有重定向到文件的方式。
这种直接在终端运行export关键字来添加环境变量的方式可以让变量立即生效,不需要source某个文件,但是这个方式只适用于当前终端,一旦当前终端关闭或在另一个终端中,则失效。
顺便提一下,如果想去除通过这种方式添加的环境变量,使用unset xxx=yyy即可。
如果需要将环境变量长久保存生效,则需要在export命令后面带上重定向的配置文件或者直接修改配置文件,然后对配置文件进行source生效。