為什麼有時候有些命令明明有,系統卻提示你無相關命令呢?
為什麼我們可以在任何目錄下使用ls呢?
就是因為 path—環境變數(一定要大寫)
先來認識一下什麼是環境變數,用 echo $path 命令
當我們使用一些命令時,系統會按照下方現實的檔案順序來查詢相關檔案
可以發現,普通使用者和root賬戶的查詢路徑不太一樣,普通使用者沒有任何關於sbin的檔案,丹所有使用者都有 /bin檔案,這就是為什麼在任何檔案目錄下都可以使用ls的原因
如果將 /bin/ls 移到 /root下呢?
現在ls不能用了,那是因為path裡面沒有/root,但可以通過絕對路徑或者相對路徑使用這條命令
/root/ls 或者 ./root(當前在/root)
現在可以通過新增環境變數讓ls重新在任何目錄下使用
path=$path:/root ()填在原有環境變數最後面)
總結:1.不同身份預設的path是不同的
2.path是可以修改的
3.使用絕對路徑或者相對路徑來執行某個命令比查詢path更準確(因為有些命令不止存在乙個檔案裡,會有限執行path前面的)
4.為了安全起見,不把"."本目錄加到path中
linux環境變數PATH
root cs70 moban echo path usr local sbin usr local bin usr sbin usr bin root bin 命令時從這些環境變數中開始找的 root cs70 moban mv bin cat opt root cs70 moban which ...
Linux 環境變數 PATH
當我們使用諸如ls mkdir cd這些命令的時候,有沒有想過為啥我們就能直接呼叫?換句話說,在我們輸入這個命令的時候系統是怎麼知道這個命令的執行檔案在哪呢?答案就是 path這個環境變數,可以用echo path把它列印出來看一下。可以看到這個變數包含了許多用分號分隔開的目錄,環境變數的意義在於,...
Linux 環境變數 PATH
我們知道查閱檔案屬性的指令 ls 完整檔名為 bin ls 這是絕對路徑 那為什麼可以在任何地方執行 bin ls 這個指令呢?為什麼在任何目錄下輸入 ls 就一定可以顯示出一些訊息而不會說找不到該 bin ls 指令呢?這是因為環境變數 path 當我們在執行乙個指令的時候,比如ls,系統會依照 ...