[ 永遠的UNIX::UNIX技術資料的寶庫 ]   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論壇

相關文章

======
 

★  樊強制作 歡迎分享  ★