温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Shell PATH变量用法是什么

发布时间:2021-03-15 11:04:21 来源:亿速云 阅读:216 作者:TREX 栏目:开发技术

这篇文章主要讲解了“Shell PATH变量用法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell PATH变量用法是什么”吧!

程序脚本要想在 Linux 中运行,需要使用绝对路径或相对路径指定这个脚本所在的位置。但是为什么系统命令都没有指定路径而是直接执行的?比如,ls 命令并没有输入"/bin/ls"来执行,而是直接执行"ls"命令。这就是 PATH 环境变量的功能了。

先查询一下 PATH 环境变量的值,如下:

[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/
bin:/root/bin

PATH 变量的值是用":"分隔的路径,这些路径就是系统查找命令的路径。也就是说,我们输入了一个程序名,如果没有写入路径,系统就会到 PATH 变量定义的路径中去寻找是否有可以执行的程序,如果找到则执行,否则会报"命令没有发现"的错误。

那么,是不是我们把自己写的脚本复制到 PATH 变量定义的路径中也可以不输入路径而直接执行呢?当然是可以的,我们试试吧,就拿最开始的 hello.sh 来举例吧。

[root@localhost ~]# cp /root/sh/hello.sh /bin/
#复制hello.shi到/bin/目录中
[root@localhost ~]# hello.sh
c.biancheng.net
#hello.sh可以直接执行了

我们只要把程序脚本复制到 PATH 变量定义的任意路径中,比如 /bin/ 目录下,以后这个脚本就可以直接执行了,不用再指定绝对路径或相对路径。

如果我们把自己写的所有程序脚本都放在 /bin/ 目录下,那么有时会搞不清系统命令和自己写的程序(其实笔者很反对改变系统目录的结构的)。我们是不是可以修改 PATH 变量的值,而不把程序脚本复制到 /bin/ 目录中?

当然是可以的,通过变量的叠加就可以实现了。

[root@localhost ~]# PATH="$PATH":/root/sh
#在变量PATH的后面,加入/root/sh目录
[root@localhost ~]# echo $PATH
/usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/
bin:/root/bin:/root/sh
#查询PATH的值,变量叠加生效了

当然,这样定义的 PATH 变量只能临时生效,一旦重启或注销系统就会消失。如果想要永久生效,则需要写入环境变量配置文件,我们会在后续章节中再详细介绍。

感谢各位的阅读,以上就是“Shell PATH变量用法是什么”的内容了,经过本文的学习后,相信大家对Shell PATH变量用法是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI