溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中向$PATH添加目錄的步驟是什么

發(fā)布時間:2022-01-26 11:00:15 來源:億速云 閱讀:108 作者:柒染 欄目:開發(fā)技術

這篇文章的內容主要圍繞Linux中向$PATH添加目錄的步驟是什么進行講述,文章內容清晰易懂,條理清晰,非常適合新手學習,值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

大家有沒有想過一個問題,在Linux系統(tǒng)中為什么ls命令可以在任何目錄下?這和$PATH有著極大的關系$PATH是Linux計算機后臺的無聲操縱器之一。 它會悄悄地影響您的用戶體驗,但是沒有什么陰暗的地方。 我們將解釋它的作用以及如何調整它。

什么是Linux上的$ PATH,它如何工作?

當在終端窗口中鍵入命令并按Enter時,您甚至在執(zhí)行命令之前就開始了大量的活動。

Bash是大多數(shù)Linux發(fā)行版中的默認Shell。 它解釋您輸入的文本行,并標識與參數(shù), 管道 , 重定向以及任何其他內容混合在一起的命令名稱。 然后,找到這些命令的可執(zhí)行二進制文件,并使用您提供的參數(shù)啟動它們。

Shell定位可執(zhí)行文件所采取的第一步是確定是否包含二進制文件。 如果您使用的命令在外殼程序本身( “外殼程序內置” )中,則無需進一步搜索。

Shell內置程序最容易找到,因為它們是Shell不可或缺的。 就像將它們放在工具帶中一樣-它們始終與您同在。

但是,如果您需要其他工具之一,則必須在車間中翻找才能找到它。 是放在工作臺上還是掛在墻上? 這就是$PATH環(huán)境變量的作用。 它包含外殼搜索的位置列表以及搜索它們的順序。

如果要查看命令是內置Shell,別名,函數(shù)還是獨立的二進制mv / work / unfile ,則可以使用type命令,如下所示:

 type clear
 type cd

Linux中向$PATH添加目錄的步驟是什么

這告訴我們clear是一個二進制文件,并且在路徑中找到的第一個文件位于/usr/bin 。 您的計算機上可能安裝了多個版本的clear ,但這是外殼程序將嘗試使用的版本。

毫不奇怪, cd是內置的shell。

## 列出您的PATH)

很容易看到您的路徑。 只需鍵入以下命令即可使用echo命令并打印 $PATH變量中保存的值

 echo $PATH

Linux中向$PATH添加目錄的步驟是什么

輸出是結腸的列表( : )分隔的文件系統(tǒng)中的位置。 Shell通過路徑從左到右搜索,檢查每個文件系統(tǒng)位置是否有匹配的可執(zhí)行文件來執(zhí)行命令。

我們可以通過清單選擇方法,以查看將要搜索的文件系統(tǒng)位置以及搜索順序:

  • /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將找不到它們。

為了證明這一點,我們創(chuàng)建了一個名為rf的小程序。 執(zhí)行后, rf在終端窗口中打印從中啟動目錄的名稱。 它位于/usr/local/bin 。 在/dave/work目錄中,我們還有一個較新的版本。

我們鍵入以下which命令, 以向我們展示外殼程序將找到并使用哪個程序版本

 which rf

Linux中向$PATH添加目錄的步驟是什么

外殼程序報告找到的版本是路徑中目錄中的版本。

我們輸入以下內容來啟動它:

 rf

Linux中向$PATH添加目錄的步驟是什么

rf 1.0版運行并確認我們的期望是正確的。 找到并執(zhí)行的版本位于/usr/local/bin 。

要在此計算機上運行其他任何版本的rf ,我們必須在命令行上使用可執(zhí)行文件的路徑,如下所示:

 ./work/rf

Linux中向$PATH添加目錄的步驟是什么

既然我們已經(jīng)告訴Shell在哪里可以找到我們要運行的rf版本,它就使用1.1版。 如果希望使用此版本,可以將其復制到/usr/local/bin目錄中并覆蓋舊版本。

假設我們正在開發(fā)rf的新版本。 在開發(fā)和測試它時,我們需要經(jīng)常運行它,但是我們不想將未發(fā)布的開發(fā)版本復制到實時環(huán)境中。

或者,也許我們已經(jīng)下載了rf的新版本,并希望在對它進行公開之前對其進行一些驗證測試。

如果將工作目錄添加到路徑,則使外殼程序找到我們的版本。 而且此更改只會影響我們,其他人仍將使用/usr/local/bin的rf版本。

將目錄添加到您的PATH)

您可以使用export命令將目錄添加到$PATH 。 該目錄然后包含在外殼程序搜索的文件系統(tǒng)位置列表中。 當外殼程序找到匹配的可執(zhí)行文件時,它將停止搜索,因此您需要確保先搜索目錄,然后是/usr/local/bin 。

這很容易做到。 對于我們的示例,我們鍵入以下命令將目錄添加到路徑的開頭,因此它是搜索到的第一個位置:

 export PATH=/home/dave/work:$PATH

Linux中向$PATH添加目錄的步驟是什么

此命令將$PATH設置為等于我們要添加的目錄/home/dave/work ,然后等于整個當前路徑。

第一個PATH沒有美元符號( $ )。 我們?yōu)镻ATH設置值。 最后的$PATH具有美元符號,因為我們引用的是存儲在PATH變量中的內容。 另外,還要注意冒號( :新目錄和之間) $PATH變量名。

讓我們看看現(xiàn)在的路徑是什么樣的:

 echo $PATH

Linux中向$PATH添加目錄的步驟是什么

我們的/home/dave/work目錄已添加到路徑的開頭。 我們提供的冒號將路徑的其余部分分隔開。

我們鍵入以下內容以驗證我們的rf版本是找到的第一個:

 which rf

Linux中向$PATH添加目錄的步驟是什么

布丁中的證明正在運行rf ,如下所示:

 rf

Linux中向$PATH添加目錄的步驟是什么

Shell找到版本1.1并從/home/dave/work執(zhí)行它。

要將目錄添加到路徑的末尾,只需將其移動到命令的末尾,如下所示:

 export PATH=$PATH:/home/dave/work

永久進行更改 (Making the Changes Permanent)

正如Beth Brooke-Marciniak所說:“成功很好,但成功卻是短暫的?!?關閉終端窗口后,對$PATH所做的任何更改都將消失。 要使它們永久存在,必須將export命令放在配置文件中。

將export命令放在.bashrc文件中時,每次打開終端窗口時,它都會設置路徑。 與必須登錄的SSH會話不同,這些會話稱為“交互式”會話。

過去,您需要將export命令放在.profile文件中,以設置登錄終端會話的路徑。

但是,我們發(fā)現(xiàn),如果將export命令放在.bashrc或.profile文件中,它將正確設置交互式會話和登錄終端會話的路徑。 您的經(jīng)驗可能有所不同。 為了處理所有可能發(fā)生的情況,我們將在兩個文件中向您展示如何進行處理。

在/home目錄中使用以下命令來編輯.bashrc文件:

 gedit .bashrc

Linux中向$PATH添加目錄的步驟是什么

gedit編輯器將打開,并加載.bashrc文件。

Linux中向$PATH添加目錄的步驟是什么

滾動到文件的底部,然后添加以下我們先前使用的導出命令:

 export PATH=/home/dave/work:$PATH

保存文件。 接下來,關閉并重新打開終端窗口,或使用dot命令讀取.bashrc文件,如下所示:

 . .bashrc
 . .bashrc

然后,鍵入以下echo命令以檢查路徑:

 echo $PATH

Linux中向$PATH添加目錄的步驟是什么

這會將/home/dave/work目錄添加到路徑的開頭。

將命令添加到.profile文件的過程是相同的。 鍵入以下命令:

 gedit .profile

Linux中向$PATH添加目錄的步驟是什么

gedit編輯器將在加載.profile文件后啟動。

Linux中向$PATH添加目錄的步驟是什么

將export命令添加到文件的底部,然后將其保存。 關閉和打開新的終端窗口不足以強制重新讀取.profile文件。 為了使新設置生效,您必須注銷并重新登錄或使用dot命令,如下所示:

 . .profile

## 為所有人設定道路 (Setting the Path for Everyone)

要為使用系統(tǒng)的每個人設置路徑,您可以編輯/etc/profile文件。

您將需要使用sudo ,如下所示:

 sudo gedit /etc/profile

gedit編輯器啟動時,將export命令添加到文件底部。

Linux中向$PATH添加目錄的步驟是什么

保存并關閉文件。 更改將在其他人下次登錄時生效。

安全注意事項 (A Note on Security)

確保不要在路徑中意外添加冒號“ : ”,如下所示。

Linux中向$PATH添加目錄的步驟是什么

如果這樣做,這將首先搜索當前目錄,這會帶來安全風險。 假設您下載了一個存檔文件并將其解壓縮到目錄中。 您查看文件,然后看到另一個壓縮文件。 您再次調用unzip解壓縮該存檔。

如果第一個檔案包含一個名為unzip的可執(zhí)行文件,它是一個惡意可執(zhí)行文件,則您可能會意外地啟動該文件而不是真正的unzip可執(zhí)行文件。 發(fā)生這種情況是因為外殼程序將首先在當前目錄中查找。

因此,鍵入export命令時請務必小心。 使用echo $ PATH查看它們,并確保它們符合您的期望。

感謝你的閱讀,相信你對“Linux中向$PATH添加目錄的步驟是什么”這一問題有一定的了解,快去動手實踐吧,如果想了解更多相關知識點,可以關注億速云網(wǎng)站!小編會繼續(xù)為大家?guī)砀玫奈恼拢?/p>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI