GB | BIG5
|
| 首頁 > 系統管理 > 其它 > 正文 |
 |
| 為什有人說 $PATH 裡不可以放 '.' 呢? |
| Steve Hayman (2001-04-19 10:41:21) |
背景知識: 環境變數 PATH 是一串用冒號隔開的目錄。當你下一個指令而
沒有指定所在的目錄,例如 "ls" 而非 "/bin/ls",則你的 shell 就會在
PATH 所指定的目錄中去找尋指令。
你可以在 PATH 裡面放入目前所在的目錄 "." 。或者,在 PATH 中加入一
個空的目錄,這兩者是等效的
for csh users:
setenv PATH :/usr/ucb:/bin:/usr/bin
setenv PATH .:/usr/ucb:/bin:/usr/bin
for sh or ksh users
PATH=:/usr/ucb:/bin:/usr/bin export PATH
PATH=.:/usr/ucb:/bin:/usr/bin export PATH
把 "." 放在 PATH 中是很方便的,若要執行 "./a.out" 只要打 "a.out"
即可,但是這做會有大麻煩。
當把 "." 放在 PATH 的最前面情況下。若你目前所在目錄是如 "/tmp" 這
樣大家都可以寫的地方。如果有別的使用這放了一個名為 "ls" 的程式在
那裡,而你打入 "ls" 那你可能就死得非常難看了。
把 "." 放到 PATH 的結尾是個比較好的做法:
setenv PATH /usr/ucb:/bin:/usr/bin:.
這一來,當你在 "/tmp" 中打 "ls" 保?nbsp;shell 就會先找 "/usr/ucb",
"/bin" 與 "/usr/bin" 裡的 "ls"。減少了一點危險。不過仍然不是百分之
百安全。假如你是個笨拙的打字者,有一天你把 "ls -l" 打成 "sl -l",
而又有一個聰明的使用者能猜到這種常見的打字錯誤,在 "/tmp" 底下放
了一只 "sl",你還是得死。所以啊,千萬要小心。
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
|
====== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |