您好,登錄后才能下訂單哦!
這篇文章的內容主要圍繞Linux中向$PATH添加目錄的步驟是什么進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!
$PATH有著極大的關系$PATH是Linux計算機后臺的無聲操縱器之一。 它會悄悄地影響您的用戶體驗,但是沒有什么陰暗的地方。 我們將解釋它的作用以及如何調整它。
當在終端窗口中鍵入命令并按Enter時,您甚至在執行命令之前就開始了大量的活動。
是大多數Linux發行版中的默認Shell。 它解釋您輸入的文本行,并標識與參數, , 以及任何其他內容混合在一起的命令名稱。 然后,找到這些命令的可執行二進制文件,并使用您提供的參數啟動它們。
Shell定位可執行文件所采取的第一步是確定是否包含二進制文件。 如果您使用的命令在外殼程序本身(
)中,則無需進一步搜索。Shell內置程序最容易找到,因為它們是Shell不可或缺的。 就像將它們放在工具帶中一樣-它們始終與您同在。
但是,如果您需要其他工具之一,則必須在車間中翻找才能找到它。 是放在工作臺上還是掛在墻上? 這就是$PATH環境變量的作用。 它包含外殼搜索的位置列表以及搜索它們的順序。
如果要查看命令是
的 ,則可以使用type命令,如下所示:type clear type cd
這告訴我們clear是一個二進制文件,并且在路徑中找到的第一個文件位于/usr/bin 。 您的計算機上可能安裝了多個版本的clear ,但這是外殼程序將嘗試使用的版本。
毫不奇怪, cd是內置的shell。
## 列出您的PATH)
很容易看到您的路徑。 只需鍵入以下命令即可使用echo命令
$PATH變量中保存 :echo $PATH
輸出是結腸的列表( : )分隔的文件系統中的位置。 Shell通過路徑從左到右搜索,檢查每個文件系統位置是否有匹配的可執行文件來執行命令。
我們可以通過清單選擇方法,以查看將要搜索的文件系統位置以及搜索順序:
/usr/local/sbin
/usr/local/sbin
/usr/local/bin
/usr/local/bin
/usr/sbin
/usr/sbin
/usr/bin
/usr/bin
/sbin
/sbin
/bin
/bin
/usr/games
/usr/games
/usr/local/games
/usr/local/games
/snap/bin
/snap/bin
可能不會立即顯而易見的是搜索不在當前工作目錄中開始。 而是通過列出的目錄(僅列出的目錄)工作。
如果當前工作目錄不在您的路徑中,則不會搜索該目錄。 另外,如果您將命令存儲在不在路徑中的目錄中,則Shell將找不到它們。
為了證明這一點,我們創建了一個名為rf的小程序。 執行后, rf在終端窗口中打印從中啟動目錄的名稱。 它位于/usr/local/bin 。 在/dave/work目錄中,我們還有一個較新的版本。
我們鍵入以下which命令,
外殼 將找到并使用 :which rf
外殼程序報告找到的版本是路徑中目錄中的版本。
我們輸入以下內容來啟動它:
rf
rf 1.0版運行并確認我們的期望是正確的。 找到并執行的版本位于/usr/local/bin 。
要在此計算機上運行其他任何版本的rf ,我們必須在命令行上使用可執行文件的路徑,如下所示:
./work/rf
既然我們已經告訴Shell在哪里可以找到我們要運行的rf版本,它就使用1.1版。 如果希望使用此版本,可以將其復制到/usr/local/bin目錄中并覆蓋舊版本。
假設我們正在開發rf的新版本。 在開發和測試它時,我們需要經常運行它,但是我們不想將未發布的開發版本復制到實時環境中。
或者,也許我們已經下載了rf的新版本,并希望在對它進行公開之前對其進行一些驗證測試。
如果將工作目錄添加到路徑,則使外殼程序找到我們的版本。 而且此更改只會影響我們,其他人仍將使用/usr/local/bin的rf版本。
您可以使用export命令
到$PATH 。 該目錄然后包含在外殼程序搜索的文件系統位置列表中。 當外殼程序找到匹配的可執行文件時,它將停止搜索,因此您需要確保先搜索目錄,然后是/usr/local/bin 。這很容易做到。 對于我們的示例,我們鍵入以下命令將目錄添加到路徑的開頭,因此它是搜索到的第一個位置:
export PATH=/home/dave/work:$PATH
此命令將$PATH設置為等于我們要添加的目錄/home/dave/work ,然后等于整個當前路徑。
第一個PATH沒有美元符號( $ )。 我們為PATH設置值。 最后的$PATH具有美元符號,因為我們引用的是存儲在PATH變量中的內容。 另外,還要注意冒號( :新目錄和之間) $PATH變量名。
讓我們看看現在的路徑是什么樣的:
echo $PATH
我們的/home/dave/work目錄已添加到路徑的開頭。 我們提供的冒號將路徑的其余部分分隔開。
我們鍵入以下內容以驗證我們的rf版本是找到的第一個:
which rf
布丁中的證明正在運行rf ,如下所示:
rf
Shell找到版本1.1并從/home/dave/work執行它。
要將目錄添加到路徑的末尾,只需將其移動到命令的末尾,如下所示:
export PATH=$PATH:/home/dave/work
正如
所說:“成功很好,但成功卻是短暫的。” 關閉終端窗口后,對$PATH所做的任何更改都將消失。 要使它們永久存在,必須將export命令放在配置文件中。將export命令放在.bashrc文件中時,每次打開終端窗口時,它都會設置路徑。 與必須登錄的
不同,這些會話稱為“交互式”會話。過去,您需要將export命令放在.profile文件中,以設置登錄終端會話的路徑。
但是,我們發現,如果將export命令放在.bashrc或.profile文件中,它將正確設置交互式會話和登錄終端會話的路徑。 您的經驗可能有所不同。 為了處理所有可能發生的情況,我們將在兩個文件中向您展示如何進行處理。
在/home目錄中使用以下命令來編輯.bashrc文件:
gedit .bashrc
將打開,并加載.bashrc文件。
滾動到文件的底部,然后添加以下我們先前使用的導出命令:
export PATH=/home/dave/work:$PATH
保存文件。 接下來,關閉并重新打開終端窗口,或使用dot命令讀取.bashrc文件,如下所示:
. .bashrc . .bashrc
然后,鍵入以下echo命令以檢查路徑:
echo $PATH
這會將/home/dave/work目錄添加到路徑的開頭。
將命令添加到.profile文件的過程是相同的。 鍵入以下命令:
gedit .profile
gedit編輯器將在加載.profile文件后啟動。
將export命令添加到文件的底部,然后將其保存。 關閉和打開新的終端窗口不足以強制重新讀取.profile文件。 為了使新設置生效,您必須注銷并重新登錄或使用dot命令,如下所示:
. .profile
## 為所有人設定道路 (Setting the Path for Everyone)
要為使用系統的每個人設置路徑,您可以編輯/etc/profile文件。
您將需要使用sudo ,如下所示:
sudo gedit /etc/profile
gedit編輯器啟動時,將export命令添加到文件底部。
保存并關閉文件。 更改將在其他人下次登錄時生效。
確保不要在路徑中意外添加冒號“ : ”,如下所示。
如果這樣做,這將首先搜索當前目錄,這會帶來安全風險。 假設您下載了一個存檔文件并將其解壓縮到目錄中。 您查看文件,然后看到另一個壓縮文件。 您再次調用unzip解壓縮該存檔。
如果第一個檔案包含一個名為unzip的可執行文件,它是一個惡意可執行文件,則您可能會意外地啟動該文件而不是真正的unzip可執行文件。 發生這種情況是因為外殼程序將首先在當前目錄中查找。
因此,鍵入export命令時請務必小心。 使用echo $ PATH查看它們,并確保它們符合您的期望。
感謝你的閱讀,相信你對“Linux中向$PATH添加目錄的步驟是什么”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網站!小編會繼續為大家帶來更好的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。