关于执行文件路径的变量:$PATH
我们在前面说过,Linux有两大原则:一切皆文件和沉默是金。
那么这些命令是否也有对应的文件呢?
事实上确实是这样,我们可以通过which
命令来验证,这个命令是用来查找某个命令的绝对路径。
[root@localhost /]# which cd
/usr/bin/cd
[root@localhost /]# which pwd
/usr/bin/pwd
[root@localhost /]# which mkdir
/usr/bin/mkdir
通过以上结果我们可以看到像cd
pwd
mkdir
这些命令都有与之相对应的文件。那我们在执行cd
pwd
这些指令的时候 ,有没有考虑过一个问题:为什么我们可以在任何地方执行这些命令?而不需要打出他的绝对路径呢?
这都是环境变量PATH在起作用
PATH是什么?:他决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接。
可以输入echo $PATH
查看当前环境变量,其中以分号隔开。
[root@localhost /]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
具体是如何运行的,我们可以通过自己添加一个环境变量来学习
添加环境变量
- 1.直接在终端修改当前生效
export PATH=$PATH:.
(其中export可不要,.是当前目录的意思,也可以自定义绝对路径)
配置完后可以通过echo $PATH
查看配置结果。
生效方法:立即生效
有效期限:临时改变,只能在当前的终端窗口中有效,当前窗口关闭后就会恢复原有的path配置
用户局限:仅对当前用户
- 2.对用户生效
因为写入到 .bash_profile 中的,而.bash_profile中是调用/.profile,所以可以直接在/.profile中定义变量
在home/用户/.profile中修改调用文件:vi ~/.bashrc
#在最后一行添上
export PATH=路径:$PATH
生效方法:(有以下两种)
1、关闭当前终端窗口,重新打开一个新终端窗口就能生效
2、输入“source ~/.bashrc”命令,立即生效
使用 echo $PATH 看不到定义变量
有效期限:永久有效
用户局限:仅对当前用户
- 3.修改系统级
vi /etc/profile/profile
export PATH=$PATH:路径
保存文件,重启即可(有的系统执行./profile即可,不需重启;有的系统必须重启)
重启后可查看PATH环境变量看是否更改:
echo $PATH