PATH
玩Linux一定会和命令行打交道, 比如在Ubuntu中安装git, 输入
代码语言:javascript代码运行次数:0运行复制sudo apt install git -y回车,运行完成后,就可以在命令行中使用git命令了
git如何在命令行中生效?我们先查看git的安装位置
代码语言:javascript代码运行次数:0运行复制which gitimage-20201214090711670
git被安装到了/usr/bin 目录下
安装到/usr/bin目录下的命令, 都可以被Linux自然而然地识别到, 比如我们常用的拷贝命令cp和 移动命令mv 都存储在/usr/bin 中
image-20201214091412182
猜测: 在/usr/bin 文件夹的命令,都可以被命令行识别并生效
验证猜测,在 /usr/bin 目录下新建文件hello, 给hello添加执行权限chmod 777 hello ,并在其中加入代码 echo "hello", ,然后在命令行输入hello, 查看结果
image-20201214092229013
hello被当做命令顺利执行, 猜测成立!
但是...
/usr/bin 是很重要的目录, 内含大量系统级命令(如mv, cp), 如果把第三方命令也安装到/usr/bin 目录, 系统级命令和第三方命令 就很难区分开, 当你想把第三方命令批量分享出来时, 就需要先人工进行筛选,再进行分享,很不方便, 而且Linux以管理多用户著称,如果所有用户都把软件安装到/usr/bin, 早晚会乱成一锅粥.
PATH变量事实上, 安装到/usr/bin目录下的命令, 是通过PATH变量,被Linux自然而然地识别到。
PATH变量可以让文件夹内的命令,不需要输入完整路径,仅输入命令名,就可以执行, 我们输入git 与/usr/bin/git 是等效的。
PATH变量可以配置多个文件夹,使用: 分隔
image-20201214093605465
上图中 PATH中的是取出PATH变量的语法,PATH变量不包含
**实际操作:如何配置PATH变量? **
我们使用给PATH变量追加文件夹路径的方式,配置PATH变量(追加 的方式不会破坏已有的PATH变量)
如果你使用base作为终端,需要在配置文件~/.bashrc 尾部追加代码语言:javascript代码运行次数:0运行复制# 以 /home/zhaoolee/share 文件夹为例
export PATH=/home/zhaoolee/share:$PATH如果你使用zsh作为终端,需要在配置文件~/.zshrc 尾部追加代码语言:javascript代码运行次数:0运行复制# 以 /home/zhaoolee/share 文件夹为例
export PATH=/home/zhaoolee/share:$PATH这里有一个小技巧:我们把$PATH放到尾部,新文件夹路径放到前面,如果新文件夹路径内的命令与原有命令存在重名(在新文件夹路径新增文件hello,内含echo "hello002") ,由于新文件夹路径比较靠前,则系统优先使用新文件夹路径下的命令。
image-20201214110937213
小结PATH是非常重要的环境变量,学习PATH的使用原理,可以让我们思路清晰的解决软件的安装配置问题,也能让操作系统环境更干净。
阅读原文(支持读写评论)https://www.v2fy.com/p/2020-12-14-path/