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生效。

posted @ 2023-06-05 16:06  陈晓猛  阅读(57)  评论(0编辑  收藏  举报