PATH
变量,指定了程序搜索路径,是最重要的环境变量,它定义了系统在执行命令时搜索可执行文件的目录。本文介绍了配置 PATH 的常用方法,以及使用 ln、alias 的方式配置命令。
一、临时添加到当前会话
在当前会话中使用 export
命令来临时添加路径。
例如,将/path/to/your/directory
添加到 PATH
环境变量中:
export PATH=$PATH:/path/to/your/directory
# 示例
export PATH=$PATH:/usr/local/node-v14.16.1-linux-x64/bin
这个命令只会影响当前打开的终端会话。如果关闭终端重新打开,这个改动将不会保留。
二、修改用户的 shell 配置文件(推荐)
对于长期添加,你可以修改用户的 shell 配置文件。这取决于你使用的是哪种 shell(如 bash、zsh 等)
对于 bash 用户:
1、打开 ~/.bashrc 文件,在文件末尾添加以下行:
export PATH=$PATH:/path/to/your/directory
2、保存并关闭文件。重启终端,或者可以通用运行以下命令使改动生效。
source ~/.bashrc
三、修改全局配置文件
如果你希望所有用户都拥有这个环境变量设置,你可以修改全局配置文件。但请注意,通常不推荐这样做,除非确实需要。对于大多数用户来说,修改用户的 shell 配置文件就足够了。
1、修改/etc/profile
或/etc/bash.bashrc
(对于 bash)
export PATH=$PATH:/path/to/your/directory
重启终端或者使用 source 命令使改动生效。
2、修改 /etc/environment (第二种方式、不推荐)
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/path/to/your/directory"
不推荐。environment 不支持 export 命令,只能用 PATH。
系统启动时读取,可以重启 linux 系统生效。或者使用 source 命令使改动生效。
四、题外话
1、查看所有可以使用的 shell、当前使用的 shell
cat /etc/shells
echo $SHELL
2、bash 各个配置的调用顺序(执行时机)
以 阿里云 CentOS7 为例,使用 bash 作为 shell。
交互式登录完成后执行:
/etc/profile
/etc/profile 中引入 /etc/profile.d 执行
/etc/profile 登陆过后全局生效,相当于全局变量。
登陆完打开交互式 shell 时执行:
~/.bash_profile 脚本引入 ~/.bashrc 脚本执行
~/.bashrc 执行 /etc/bashrc
/etc/bashrc 会执行 /etc/profile.d 文件夹下面的 shell 脚本
bash 相关脚本的配置相当于方法内的局部变量,退出 shell 后失效。
在实际使用中,通过工具(如 Xshell、PuTTY 等)连接服务器时,交互式登录和启动交互式 shell 的过程几乎是同时发生的,因此 /etc/profile 和 ~/.bashrc 的加载看起来几乎是“无缝衔接”的。
3、ln 软链接命令到已有的 PATH 目录中(推荐)
如果安装软件使用的命令比较少,可以用软链接到 /usr/bin 下。
ln -s /usr/local/node-v14.16.1-linux-x64/bin/trz /usr/bin/trz
ln -s /usr/local/node-v14.16.1-linux-x64/bin/tsz /usr/bin/tsz
4、alias 定义命令
修改配置,比如修改 ~/.bashrc。
alias python='/usr/local/bin/python3.8'
alias 优先级比环境变量 PATH 高。执行 source 使改动生效。