玩Linux一定会和命令行打交道, 比如在Ubuntu中安装git, 输入
sudo apt install git -y
回车,运行完成后,就可以在命令行中使用git命令了
git如何在命令行中生效?
我们先查看git的安装位置
which git
image-20201214090711670
git被安装到了/usr/bin
目录下
安装到/usr/bin
目录下的命令, 都可以被Linux自然而然地识别到, 比如我们常用的拷贝命令cp
和 移动命令mv
都存储在/usr/bin
中
猜测: 在/usr/bin
文件夹的命令,都可以被命令行识别并生效
验证猜测,在 /usr/bin
目录下新建文件hello
, 给hello添加执行权限chmod 777 hello
,并在其中加入代码 echo "hello"
, ,然后在命令行输入hello, 查看结果
hello被当做命令顺利执行, 猜测成立!
但是...
/usr/bin
是很重要的目录, 内含大量系统级命令
(如mv, cp), 如果把第三方命令
也安装到/usr/bin
目录, 系统级命令
和第三方命令
就很难区分开, 当你想把第三方命令
批量分享出来时, 就需要先人工进行筛选,再进行分享,很不方便, 而且Linux以管理多用户著称,如果所有用户都把软件安装到/usr/bin
, 早晚会乱成一锅粥.
PATH变量
事实上, 安装到/usr/bin
目录下的命令, 是通过PATH
变量,被Linux自然而然地识别到。
PATH
变量可以让文件夹内的命令,不需要输入完整路径,仅输入命令名,就可以执行, 我们输入git
与/usr/bin/git
是等效的。
PATH
变量可以配置多个文件夹,使用:
分隔
上图中 $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是非常重要的环境变量,学习PATH的使用原理,可以让我们思路清晰的解决软件的安装配置问题,也能让操作系统环境更干净。
网友评论