[[email protected] ~]# which rm /bin/rm [[email protected] ~]# which rmdir /bin/rmdir [[email protected] ~]# which ls alias ls='ls --color=auto' /bin/ls注意,ls 是一個相對特殊的命令,它使用 alias 命令做了別名,也就是說,我們常用的 ls 實際上執行的是 ls --color=auto。
[[email protected] ~]# echo $PATH /usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin這裡的 echo 命令用來輸出 PATH 環境變數的值(這裡的 $ 是 PATH 的字首符號),PATH 環境變數的內容是由一堆目錄組成的,各目錄之間用冒號“:”隔開。當執行某個命令時,Linux 會依照 PATH 中包含的目錄依次搜尋該命令的可執行檔案,一旦找到,即正常執行;反之,則提示無法找到該命令。
從執行結果中可以看到,/bin 目錄已經包含在 PATH 環境變數中,因此在使用類似 rm、rmdir、ls等命令時,即便直接使用其命令名,Linux 也可以找到該命令。如果在 PATH 包含的目錄中,有多個目錄都包含某命令的可執行檔案,那麼會執行先搜尋到的可執行檔案。
[[email protected] ~]# mv /bin/ls /root [[email protected] ~]# ls bash: /bin/ls: No such file or directory
[[email protected] ~]# PATH=$PATH:/root [[email protected] ~]# echo $PATH /usr/local/sbin:/usr/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin:/root [[email protected] ~]# ls Desktop Downloads Music post-install Public Videos Documents ls Pictures post-install.org Templates
注意,這種方式只是臨時有效,一旦退出下次再登陸的時候,$PATH 就恢復成了預設值。
[[email protected] ~]# /root/ls Desktop Downloads Music post-install Public Videos Documents ls Pictures post-install.org Templates
為了不影響系統的正常使用,強烈建議大家將移動後的 ls 檔案還原,命令如下:
[[email protected] ~]# mv /root/ls /bin