如何在linux中向$path新增目錄

$PATH是Linux計算機後臺的靜默操縱器之一。它會悄悄地影響你的使用者體驗,但這並沒有什麼不好的地方。我們將解釋它的作用,以及如何調整它。...

$PATH是Linux計算機後臺的靜默操縱器之一。它會悄悄地影響你的使用者體驗,但這並沒有什麼不好的地方。我們將解釋它的作用,以及如何調整它。

什麼是$path,它是如何工作的($path on linux, and how does it work)?

當您在終端視窗中鍵入一個命令並按Enter鍵時,您甚至在執行命令之前就開始了大量的活動。

Bash是大多數Linux發行版的預設shell。它解釋您輸入的文字行,並標識與引數、管道、重定向和其他內容混合的命令名。然後,它會找到這些命令的可執行二進位制檔案,並使用您提供的引數啟動它們。

shell定位可執行檔案的第一步是確定是否包含二進位制檔案。如果您使用的命令位於shell本身(“shell內建”)中,則無需進一步搜尋。

Shell內建是最容易找到的,因為它們是Shell的一部分。就像把它們放在工具帶裡,它們總是和你在一起。

如果你需要其他工具,你必須在車間裡翻找才能找到它。它是在你的工作臺上還是掛在牆上?$PATH環境變數就是這樣做的。它包含shell搜尋的位置列表以及搜尋順序。

如果要檢視命令是shell內建、別名、函式還是獨立二進位制mv/work/unfile,可以使用type命令,如下所示:

type clear type cd

如何在linux中向$path新增目錄

這告訴我們clear是一個二進位制檔案,在路徑中找到的第一個檔案位於/usr/bin。您的計算機上可能安裝了多個版本的clear,但shell將嘗試使用這個版本。

不出所料,cd是一個內建的shell。

列出$path

很容易看出你的道路上有什麼。只需鍵入以下內容即可使用echo命令並列印$PATH變數中的值:

echo $PATH

如何在linux中向$path新增目錄

輸出是以冒號(:)分隔的檔案系統位置列表。shell從左到右搜尋路徑,檢查每個檔案系統位置是否有匹配的可執行檔案來執行命令。

我們可以在列表中選擇要搜尋的檔案系統位置,以及它們的搜尋順序:

  • /usr/本地/**in
  • /usr/本地/bin
  • /usr/**in公司
  • /usr/箱
  • /斯賓
  • /垃圾箱
  • /usr/遊戲
  • /usr/本地/遊戲
  • /快照/bin

可能不是很明顯的一點是,搜尋沒有在當前工作目錄中啟動。相反,它透過列出的目錄工作,並且只通過列出的目錄。

如果當前工作目錄不在您的路徑中,則不會對其進行搜尋。另外,如果命令儲存在不在路徑中的目錄中,shell將找不到它們。

為了演示這一點,我們建立了一個名為rf的小程式。執行時,rf列印在終端視窗中啟動該目錄的名稱。它位於/usr/local/bin中。我們在/dave/work目錄中也有一個新版本。

我們鍵入以下命令來顯示shell將查詢和使用的程式版本:

which rf

如何在linux中向$path新增目錄

shell報告它找到的版本是路徑中目錄中的版本。

我們鍵入以下命令來啟動它:

rf

如何在linux中向$path新增目錄

版本1.0的射頻執行和確認我們的期望是正確的。找到並執行的版本位於/usr/local/bin中。

要在此計算機上執行任何其他版本的rf,我們必須使用命令列上可執行檔案的路徑,如下所示:

./work/rf

如何在linux中向$path新增目錄

現在我們已經告訴shell在哪裡可以找到我們想要執行的rf版本,它使用的是版本1.1。如果我們喜歡這個版本,我們可以將它複製到/usr/local/bin目錄並覆蓋舊的。

假設我們正在開發rf的新版本。在開發和測試它時,我們需要經常執行它,但我們不想將未釋出的開發構建複製到實時環境中。

或者,也許我們已經下載了一個新版本的rf,並想在它公開之前做一些驗證測試。

如果我們將工作目錄新增到路徑中,我們會使shell找到我們的版本。而這個改變只會影響我們其他人仍然會使用rf-in/usr/local/bin版本。

將目錄新增到$path

您可以使用export命令將目錄新增到$PATH。然後,該目錄將包含在shell搜尋的檔案系統位置列表中。當shell找到匹配的可執行檔案時,它將停止搜尋,因此您需要確保它首先搜尋您的目錄,在/usr/local/bin之前。

這很容易做到。對於我們的示例,我們鍵入以下內容將目錄新增到路徑的開頭,以便它是第一個搜尋的位置:

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

如何在linux中向$path新增目錄

此命令將$PATH設定為等於我們正在新增的目錄,/home/dave/work,然後設定整個當前路徑。

第一條路徑沒有美元符號($)。我們設定路徑的值。最後的$PATH有一個美元符號,因為我們引用的是PATH變數中儲存的內容。另外,請注意新目錄和$PATH變數名之間的冒號(:)。

讓我們看看現在的路徑是什麼樣子:

echo $PATH

如何在linux中向$path新增目錄

我們的/home/dave/work目錄被新增到路徑的開頭。我們提供的冒號將它與路徑的其餘部分分開。

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

which rf

如何在linux中向$path新增目錄

布丁中的證明是執行rf,如下所示:

rf

如何在linux中向$path新增目錄

shell找到版本1.1並從/home/dave/work執行它。

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

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

使更改永久化

正如Beth Brooke Marciniak所說,“成功是美好的,但成功是轉瞬即逝的。”當你關閉終端視窗的那一刻,你對$PATH所做的任何更改都消失了。要使它們永久化,必須將export命令放在配置檔案中。

在.bashrc檔案中放入export命令時,每次開啟終端視窗時,它都會設定路徑。與SSH會話不同,SSH會話需要登入,它們被稱為“互動式”會話。

過去,您會將export命令放在.profile檔案中,以設定登入終端會話的路徑。

但是,我們發現,如果我們將export命令放在.bashrc或.profile檔案中,它就可以正確地設定互動和登入終端會話的路徑。你的經歷可能不同。為了處理所有可能發生的情況,我們將向您展示如何在這兩個檔案中執行此操作。

在/home目錄中使用以下命令編輯.bashrc檔案:

gedit .bashrc

如何在linux中向$path新增目錄

gedit編輯器開啟並載入.bashrc檔案。

如何在linux中向$path新增目錄

滾動到檔案底部,然後新增前面使用的以下匯出命令:

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

儲存檔案。接下來,關閉並重新開啟終端視窗,或者使用dot命令讀取.bashrc檔案,如下所示:

. .巴什爾

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

echo $PATH

如何在linux中向$path新增目錄

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

將命令新增到.profile檔案的過程是相同的。鍵入以下命令:

gedit .profile

如何在linux中向$path新增目錄

gedit編輯器啟動時載入了.profile檔案。

如何在linux中向$path新增目錄

將export命令新增到檔案的底部,然後儲存它。關閉和開啟新的終端視窗不足以強制重新讀取.profile檔案。要使新設定生效,必須登出和返回或使用dot命令,如下所示:

. .profile

相關:如何使用gedit在Linux上以圖形方式編輯文字檔案

為每個人設定道路

要為使用系統的每個人設定路徑,可以編輯/etc/profile檔案。

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

sudo gedit /etc/profile

當gedit編輯器啟動時,將export命令新增到檔案的底部。

如何在linux中向$path新增目錄

儲存並關閉檔案。這些更改將在其他人下次登入時對其生效。

關於安全的說明

確保不要意外地在路徑中新增一個前導冒號“:”,如下所示。

如何在linux中向$path新增目錄

如果您這樣做,這將首先搜尋當前目錄,這將帶來安全風險。假設您下載了一個存檔檔案並將其解壓縮到目錄中。您可以檢視這些檔案,然後看到另一個壓縮檔案。您再次呼叫解壓縮以提取該存檔。

如果第一個存檔包含一個名為unzip的可執行檔案,它是一個惡意的可執行檔案,那麼您可能會意外地觸發該檔案,而不是真正的unzip可執行檔案。這是因為shell將首先檢視當前目錄。

因此,鍵入匯出命令時一定要小心。使用echo$PATH檢查它們並確保它們是您想要的方式。

  • 發表於 2021-04-02 14:04
  • 閱讀 ( 43 )
  • 分類:網際網路

你可能感興趣的文章

使用以下技巧和技巧成為linux命令列高手

... 如何掌握linux命令列:最後的想法 ...

  • 發佈於 2021-03-12 10:19
  • 閲讀 ( 46 )

如何將命令列輸出儲存到windows、mac和linux上的檔案

... 今天我們將介紹如何在Windows、Mac和Linux上將命令的輸出傳送到bashshell中的文字檔案。 ...

  • 發佈於 2021-03-12 15:56
  • 閲讀 ( 47 )

關於linux最常見的問題。。。回答

...也是免費的。不僅如此,你還可以自由地看看這些程式是如何**的。如果您有專業知識,您可以使用此程式碼建立自己的軟體。 ...

  • 發佈於 2021-03-25 12:19
  • 閲讀 ( 58 )

使用這些linux命令高效地管理遠端ssh連線

... 但不一定要這樣。是時候學習如何只使用別名透過SSH高效登入、傳輸單個檔案或目錄、執行遠端SSH命令以及輕鬆地將遠端伺服器裝載到本地目錄了。 ...

  • 發佈於 2021-03-28 06:44
  • 閲讀 ( 46 )

如何將python新增到windows path變數

... 如何手動將python新增到windows路徑 ...

  • 發佈於 2021-03-30 03:11
  • 閲讀 ( 86 )

如何使用受限shell來限制linux使用者可以做什麼

...改其目錄,您可以控制他們可以訪問哪些命令。下面介紹如何在Linux上設定受限shell。 受限炮彈 受限shell不是另一個shell。這是標準外殼的另一種模式。Bash、Korn、Fish和其他shell都可以在受限shell模式下啟動。在本文中,我們將...

  • 發佈於 2021-03-31 10:57
  • 閲讀 ( 56 )

在linux上使用brim轉換wireshark工作流

...獲和資料包分析,Brim將徹底改變你的工作流程。 相關:如何在Linux上使用Wireshark過濾器 安裝邊緣 Brim非常新,所以它還沒有進入Linux發行版的軟體庫。不過,在Brim下載頁面上,您會找到DEB和RPM包檔案,因此在Ubuntu或Fedora上安裝...

  • 發佈於 2021-04-01 14:53
  • 閲讀 ( 53 )

如何使用powershell壓縮(和解壓)檔案

...加密了資料,並使與其他人共享檔案變得容易。下面介紹如何使用PowerShell壓縮和解壓檔案。 如何使用powershell壓縮檔案 讓我們首先使用Compress-archive cmdlet將一些檔案壓縮到ZIP檔案存檔中。它獲取要壓縮的任何檔案的路徑。多個...

  • 發佈於 2021-04-02 01:39
  • 閲讀 ( 48 )

如何在linux上使用cd命令

...小又簡單。 在使用Linux計算機的第一個小時內,您將學習如何使用Bash和其他shell附帶的cd命令。也許您以前有在其他作業系統上使用它的經驗,不需要解釋。它會改變當前的工作目錄,對嗎?還有什麼要知道的? 好吧,比你想象...

  • 發佈於 2021-04-02 08:58
  • 閲讀 ( 67 )

linux下如何使用which命令

...在shell中的,因此Bash不必費勁地查詢這些命令。 但是Bash如何定位其他命令、程式和外部獨立二進位制檔案呢?Bash使用路徑,實際上是一組路徑,每個路徑指向一個目錄。然後,它在每個目錄中搜索與您試圖執行的命令或程式匹...

  • 發佈於 2021-04-02 20:07
  • 閲讀 ( 50 )
ivg60842
ivg60842

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦