Shell PATH變量用法詳解
前面章節(jié)我們說過,程序腳本要想在 Linux 中運(yùn)行,需要使用絕對路徑或相對路徑指定這個(gè)腳本所在的位置。但是為什么系統(tǒng)命令都沒有指定路徑而是直接執(zhí)行的?比如,ls 命令并沒有輸入"/bin/ls"來執(zhí)行,而是直接執(zhí)行"ls"命令。這就是 PATH 環(huán)境變量的功能了。
先查詢一下 PATH 環(huán)境變量的值,如下:
[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 變量的值是用":"分隔的路徑,這些路徑就是系統(tǒng)查找命令的路徑。也就是說,我們輸入了一個(gè)程序名,如果沒有寫入路徑,系統(tǒng)就會(huì)到 PATH 變量定義的路徑中去尋找是否有可以執(zhí)行的程序,如果找到則執(zhí)行,否則會(huì)報(bào)"命令沒有發(fā)現(xiàn)"的錯(cuò)誤。
那么,是不是我們把自己寫的腳本復(fù)制到 PATH 變量定義的路徑中也可以不輸入路徑而直接執(zhí)行呢?當(dāng)然是可以的,我們試試吧,就拿最開始的 hello.sh 來舉例吧。
[root@localhost ~]# cp /root/sh/hello.sh /bin/ #復(fù)制hello.shi到/bin/目錄中 [root@localhost ~]# hello.sh c.biancheng.net #hello.sh可以直接執(zhí)行了
我們只要把程序腳本復(fù)制到 PATH 變量定義的任意路徑中,比如 /bin/ 目錄下,以后這個(gè)腳本就可以直接執(zhí)行了,不用再指定絕對路徑或相對路徑。
如果我們把自己寫的所有程序腳本都放在 /bin/ 目錄下,那么有時(shí)會(huì)搞不清系統(tǒng)命令和自己寫的程序(其實(shí)筆者很反對改變系統(tǒng)目錄的結(jié)構(gòu)的)。我們是不是可以修改 PATH 變量的值,而不把程序腳本復(fù)制到 /bin/ 目錄中?
當(dāng)然是可以的,通過變量的疊加就可以實(shí)現(xiàn)了。
[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的值,變量疊加生效了
當(dāng)然,這樣定義的 PATH 變量只能臨時(shí)生效,一旦重啟或注銷系統(tǒng)就會(huì)消失。如果想要永久生效,則需要寫入環(huán)境變量配置文件,我們會(huì)在后續(xù)章節(jié)中再詳細(xì)介紹。
到此這篇關(guān)于Shell PATH變量用法詳解的文章就介紹到這了,更多相關(guān)Shell PATH變量 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
利用linux的timerfd_create實(shí)現(xiàn)計(jì)時(shí)器示例分享
這篇文章主要介紹了利用linux的timerfd_create實(shí)現(xiàn)計(jì)時(shí)器示例,需要的朋友可以參考下2014-02-02
用shell腳本在mysql表中批量插入數(shù)據(jù)的方法
這篇文章主要介紹了用shell腳本在mysql表中批量插入數(shù)據(jù)的方法,需要的朋友可以參考下2014-03-03
shell腳本之判斷輸入?yún)?shù)是否為整數(shù)值的實(shí)例
今天小編就為大家分享一篇shell腳本之判斷輸入?yún)?shù)是否為整數(shù)值的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07

