path路径前面有个lre_让Linux/Mac系统环境更干净之PATH变量详解

(24) 2024-04-24 14:01:01
path路径前面有个lre_让Linux/Mac系统环境更干净之PATH变量详解 (https://mushiming.com/)  第1张

玩Linux一定会和命令行打交道, 比如在Ubuntu中安装git, 输入

sudo apt install git -y

回车,运行完成后,就可以在命令行中使用git命令了

git如何在命令行中生效?

我们先查看git的安装位置

which git
path路径前面有个lre_让Linux/Mac系统环境更干净之PATH变量详解 (https://mushiming.com/)  第2张

git被安装到了/usr/bin 目录下

安装到/usr/bin目录下的命令, 都可以被Linux自然而然地识别到, 比如我们常用的拷贝命令cp移动命令mv 都存储在/usr/bin

path路径前面有个lre_让Linux/Mac系统环境更干净之PATH变量详解 (https://mushiming.com/)  第3张

猜测: 在/usr/bin 文件夹的命令,都可以被命令行识别并生效

验证猜测,在 /usr/bin 目录下新建文件hello, 给hello添加执行权限chmod 777 hello ,并在其中加入代码 echo "hello",  ,然后在命令行输入hello, 查看结果

path路径前面有个lre_让Linux/Mac系统环境更干净之PATH变量详解 (https://mushiming.com/)  第4张

hello被当做命令顺利执行, 猜测成立!

但是...

/usr/bin 是很重要的目录, 内含大量系统级命令(如mv, cp), 如果把第三方命令也安装到/usr/bin 目录, 系统级命令第三方命令 就很难区分开, 当你想把第三方命令批量分享出来时, 就需要先人工进行筛选,再进行分享,很不方便, 而且Linux以管理多用户著称,如果所有用户都把软件安装到/usr/bin, 早晚会乱成一锅粥.

PATH变量

事实上, 安装到/usr/bin目录下的命令, 是通过PATH变量,被Linux自然而然地识别到。

PATH变量可以让文件夹内的命令,不需要输入完整路径,仅输入命令名,就可以执行, 我们输入git/usr/bin/git 是等效的。

PATH变量可以配置多个文件夹,使用: 分隔

path路径前面有个lre_让Linux/Mac系统环境更干净之PATH变量详解 (https://mushiming.com/)  第5张

上图中 $PATH中的$是取出PATH变量的语法,PATH变量不包含$

**实际操作:如何配置PATH变量?**

我们使用给PATH变量追加文件夹路径的方式,配置PATH变量(追加 的方式不会破坏已有的PATH变量)

如果你使用base作为终端,需要在配置文件~/.bashrc 尾部追加
# 以 /home/zhaoolee/share 文件夹为例
export PATH=/home/zhaoolee/share:$PATH
如果你使用zsh作为终端,需要在配置文件~/.zshrc 尾部追加
# 以 /home/zhaoolee/share 文件夹为例
export PATH=/home/zhaoolee/share:$PATH

这里有一个小技巧:我们把$PATH放到尾部,新文件夹路径放到前面,如果新文件夹路径内的命令与原有命令存在重名(在新文件夹路径新增文件hello,内含echo "hello002") ,由于新文件夹路径比较靠前,则系统优先使用新文件夹路径下的命令。

path路径前面有个lre_让Linux/Mac系统环境更干净之PATH变量详解 (https://mushiming.com/)  第6张
image-20201214110937213

小结

PATH是非常重要的环境变量,学习PATH的使用原理,可以让我们思路清晰的解决软件的安装配置问题,也能让操作系统环境更干净。

https://www.v2fy.com/p/2020-12-14-path/

往期推荐

Go语言网络编程入门不走弯路最佳案例(写Api接口)

推荐Parallels Desktop虚拟机不为人知的优质功能:端口映射

可替代TeamView的免费远程控制软件ToDesk

点击文末  阅读原文    

查看 本文完整版   看留言  写评论 🙂

path路径前面有个lre_让Linux/Mac系统环境更干净之PATH变量详解 (https://mushiming.com/)  第7张

THE END

发表回复