PATH变量及修改

 

  • 我们来找茬(写定时执行时的插曲)

A、vim aaa.sh:

TEMP_PATH="home/users/wanggaijing01/abc"
echo "the current path is $TEMP_PATH"
cd $TEMP_PATH
touch test.txt

问题:sh aaa.text后,报aaa.sh: line 6: cd: home/users/wanggaijing01/abc: No such file or directory...

原因:因为缺少根目录/,应该为TEMP_PATH="/home/users/wanggaijing01/abc"

/:表示根目录,也可作目录分隔符;/etc表示根目录下的etc目录

~:表示用户home目录,以用户lalala登录后,~表示/home/lalala

 

 

B、vim aaa.sh:

PATH="/home/users/wanggaijing01/abc"
echo "the current path is $PATH"
cd $PATH
touch test.txt

问题:sh aaa.sh后,报aaa.sh: line 7: touch: command not found。。。

原因:因为PATH是系统变量,自己重定义了PATH,所以找不到touch。。。

PATH:命令行用echo $PATH可以查看当前系统路径。执行命令时会到PATH路径下去寻找。如which touch,可看到/opt/compiler/gcc-4.8.2/bin/touch

./: 有的命令如rinetd,需要./rinetd,加./表示在当前目录下寻找该命令,不加会默认去PATH下寻找,由于找不到,所以会报command not found。

 

  • PATH路径修改---(尚未完全弄懂)

查看当前PATH:echo $PATH

跟PATH有关的文件:/etc/profile(系统环境设置,登录shell),  ~/.bash_profile(用户环境设置,登录shell), ~/.bashrc(用户环境,非登录shell)

                           这几个文件按一定顺序执行。profile修改后,需要source来生效。

修改/etc/profile(放弃):试了下不是很好用,root下source后,exit root然后再次登入,并不生效。 

临时修改PATH:命令行执行export PATH=/bin:$PATH,只在当前窗口有效,退出后失效。

修改work用户的PATH变量(可行):1、vim ~/.bash_profile   2、export PATH=/bin:$PATH   3、source ~/.bash_profile.

                            (场景是有个服务需要低版本的grep,而当前的grep版本较高,/bin/grep版本较低,所以把/bin放在前边)

修改后:

 

posted @ 2018-11-10 12:53  不爱起名字  阅读(186)  评论(0编辑  收藏  举报