$PATH

echo PATHecho PATH 顯示當前PATH環境變量,該變量的值由一系列以冒號分隔的目錄名組成。如:/usr/local/bin:/bin:/usr/bin。當我們執行程序時,shell自動跟據PATH變量的值去搜索該程序。比如我們現在的工作目錄是根目錄/ ,有一個程序sunrise在/bin/目錄下,我們可以在命令行輸入/bin/sunrise 這樣來執行它,還可以直接輸入sunrise,這時shell會自動去尋找sunrise這個程序所在的完整路徑,找到之後纔會去執行該程序。shell在搜索時先搜索PATH環境變量中的第一個目錄,沒找到再接着搜索,如果找到則執行它,不會再繼續搜索。
注意:當前工作目錄 ./ 一般並未在搜索範圍之列,也就是PATH環境變量的值中並不包含./這個當前工作目錄。爲什麼一般不能加入這個當前工作目錄呢?主要原因在於安全問題。試想,一個evil 用戶在自己的家目錄/home/evil/中放了一個名字叫ls的程序,當root用戶或其它用戶來到這個/home/evil/目錄時,想查看這個目錄中有些啥子文件,於是執行ls命令,這時如果./目錄在PATH環境變量中且搜索時先搜索這個./目錄的話,則執行到的程序是/home/evil/ls而不是/bin/ls程序,這樣就會造成極大地安全問題。所以我們要避免把./目錄加入PATH環境變量之中,不要圖一時方便而鑄成大錯哦!執行當前工作目錄中的 program 時還是老老實實的 ./program 這樣執行吧!
使用範例:
[tito ~]echo PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
[tito ~]PATH= PATH:/home/tito/bin #添加/home/tito/bin到PATH環境變量
[tito ~]echo PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/tito/bin

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章