1.PATH变量的作用
在上一篇文章中,我们介绍了外部命令,shell必须搜索系统来找到对应的程序。PATH环境变量定义了用于进行命令和程序查找的目录。例如:ps命令程序位于/usr/bin目录下,该目录位于PATH中
[root@node1 ~]# type -a ps
ps is /usr/bin/ps
[root@node1 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
如果命令或者程序的位置没有包括在PATH变量中,那么如果不使用绝对路径的话,shell是没法找到的。如果shell找不到指定的命令或程序,它会产生一个错误信息:
[root@node1 ~]# my_prog
-bash: my_prog: command not found
2.PATH变量的设置
新的搜索目录添加到现有的PATH环境变量中,无需从头定义。PATH中各个目录之间是用冒号分隔的。你只需引用原来的PATH值,然后再给这个字符串添加新目录就行了。
例如:在test目录下有一个脚本my_prog.sh,将其目录加到PATH变量中,便可在的任何位置执行程序
[root@node1 ~]# cd test/
[root@node1 test]# pwd
/root/test
[root@node1 test]# cat my_prog.sh
#!/bin/bash
my_prog='Hello World'
echo $my_prog
[root@node1 test]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root
[root@node1 test]# PATH=$PATH:/root/test
[root@node1 test]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root:/root/test
[root@node1 test]# cd
[root@node1 ~]# ll my*
ls: cannot access my*: No such file or directory
[root@node1 ~]# my_prog.sh
Hello World
对PATH变量的修改只能持续到退出或重启系统,这种效果并不能一直持续。