Linux 小知識翻譯 路徑設定

2021-09-06 16:10:26 字數 1175 閱讀 3170

這次聊聊路徑的使用,這裡的路徑是「命令搜尋路徑」的簡稱。

在linux上執行命令的時候,本來是需要命令的所在位置的絕對路徑的,就像「/usr/bin/passwd」這樣。

但是,對於經常使用的命令,如果每次都要輸入絕對路徑的話就非常麻煩了。

在linux的shell中,執行某個命令時,使用者不用輸入命令的完整路徑,直接輸入命令後,系統會在特定的目錄中查詢這個命令,找到後執行。

這時,設定shell在哪些目錄中搜尋命令的步驟就被稱為「路徑設定」,正確的應該是「命令搜尋路徑的設定」

為了設定路徑,需要修改環境變數「path」,每個希望搜尋的目錄之間用「:」區分開。

設定方法就是用 [[16. 「環境變數」]] 介紹的「export」命令,比如,想把「/usr/sample」這個路徑加入到命令搜尋路徑中去的話,

$ export path=$path:/usr/sample

在linux中,當前目錄並不在命令搜尋路徑中,因此,比如想執行當前目錄下的「hogehoge.cmd」命令,必須要通過「./hogehoge.cmd」來執行。

雖然有些麻煩,但是把當前目錄加入到命令搜尋路徑中的話,會帶來一些安全問題,所以不建議把當前目錄加入到「path」中。

首先,安全的大原則就是「不要把多餘的目錄加到命令搜尋目錄中」。而且,過多的目錄加到命令搜尋目錄中的話,那麼如果有2個目錄中都有「ps」這個檔案,使用者輸入「ps」的時候,究竟哪個「ps」會被執行呢?

這就會導致混亂。(實際上,會按path中定義的目錄的順序來搜尋命令的,這2個目錄誰在前面,就執行哪個目錄中的「ps」。雖然如此,這種情況還是會給使用者帶來困擾)

剛剛說的如果把當前目錄加入到 path 中會導致什麼後果呢?

極端的情況下,幾乎所有的目錄都有可能變成當前目錄(因為使用者有可能進入任何乙個目錄)。這就導致幾乎所有的目錄都有可能稱為命令搜尋路徑。

這樣的情況下,不僅僅會帶來混亂,如果某個目錄下被放置了惡意程式,由於這個目錄有可能在命令搜尋路徑中(當使用者進入這個目錄時),所以使用者無意中執行這個惡意程式的機會會很高。

通常,一般使用者能夠進出哪些目錄是被限制的,系統會保證這些目錄不在 path 中,一旦使用者可以進出的這些目錄被加入到 path 中,那麼惡意程式執行時所帶來的風險也會大大增加。

命令搜尋路徑不能為了使用方便而任意指定,首先要確保目錄的安全性,然後再考慮是否追加到命令搜尋路徑中。

Linux 小知識翻譯 路徑設定

這次聊聊路徑的使用,這裡的路徑是 命令搜尋路徑 的簡稱。在linux上執行命令的時候,本來是需要命令的所在位置的絕對路徑的,就像 usr bin passwd 這樣。但是,對於經常使用的命令,如果每次都要輸入絕對路徑的話就非常麻煩了。在linux的shell中,執行某個命令時,使用者不用輸入命令的完...

Linux 小知識翻譯 轉殖

最近比較流行的linux發行版,得是連新聞都報道的,剛剛發布新版的 centos 了。centos 一般被稱為red hat enterpriselinux的轉殖版本,這是什麼意思呢?linux發行版中的大部分都是由開源軟體所構成的。安裝盤中雖然只包含了所有編譯好的二進位制軟體包,但一般都會以其他方...

Linux 小知識翻譯 cron

這次說說 cron cron 就是 定期自動執行任務的工具 相當於windows中的計畫任務 讀做 庫隆 使用 cron 可以預先指定任務在某個時間執行。時間的指定並不只是 一小時一次 這種簡單的指定方法,還可以指定只有某天的某時才執行任務,或者指定8點 22點每小時執行一次等等。還可以指定到具體的...