Shell PATH變量用法詳解
前面章節(jié)我們說過,程序腳本要想在 Linux 中運(yùn)行,需要使用絕對(duì)路徑或相對(duì)路徑指定這個(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)然是可以的,我們?cè)囋嚢桑湍米铋_始的 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í)行了,不用再指定絕對(duì)路徑或相對(duì)路徑。
如果我們把自己寫的所有程序腳本都放在 /bin/ 目錄下,那么有時(shí)會(huì)搞不清系統(tǒng)命令和自己寫的程序(其實(shí)筆者很反對(duì)改變系統(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux命令學(xué)習(xí)之原來最簡(jiǎn)單的ls命令這么復(fù)雜
ls命令應(yīng)該是我們最常用的命令之一了,但是我們可能容易忽略那些看起來最簡(jiǎn)單的東西。本文就來和大家詳細(xì)聊聊ls命令的使用,需要的可以了解一下2022-10-10輸出執(zhí)行操作和打印日志的shell腳本實(shí)例
下面小編就為大家?guī)硪黄敵鰣?zhí)行操作和打印日志的shell腳本實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-03-03shell實(shí)現(xiàn)SSH自動(dòng)登陸的方法示例
這篇文章主要介紹了shell實(shí)現(xiàn)SSH自動(dòng)登陸的方法示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Linux中SELinux、Shell簡(jiǎn)介、touch命令的應(yīng)用小結(jié)
SELinux(Security-Enhanced Linux)是美國(guó)國(guó)家安全局(NSA)對(duì)于強(qiáng)制訪問控制的實(shí)現(xiàn),是Linux歷史上最杰出的新安全子系統(tǒng),這篇文章主要介紹了Linux中SELinux、Shell簡(jiǎn)介、touch命令的應(yīng)用知識(shí)總結(jié),需要的朋友可以參考下2023-02-02shell 中小括號(hào)、中括號(hào)及大括號(hào)的區(qū)別解析
這篇文章主要介紹了shell 中小括號(hào),中括號(hào),大括號(hào)的區(qū)別,針對(duì)每種括號(hào)給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10