PATH 是環境變數, 一定要大寫.
(1) 不同身份使用者預設的 PATH 不同, 預設能夠隨意執行的明朗了也不同, 如下 (root 與 jack):
[root@sqj2015 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@sqj2015 ~]# su – jack
[jack@sqj2015 ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/jack/bin
 

PHTH 是可以修改的, 所以一般使用者還可以透過修改 PATH 來執行某些位於/sbin 或/usr/sbin 下的命令來查詢.
使用絕對路徑或相對路徑直接指定某個命令檔名來執行, 會比查詢 PATH 來的正確
命令應該放置在正確的目錄下, 執行才會比較方面
本目錄 (.) 最好不要放到 PATH 當中

 
那如何修改和設定 PATH 變數呢? 如下:
  <1>使用 export 命令
     export PATH=$PATH:/XXX
  <2>修改 profile 檔案
     在裡面加入:export PATH=”$PATH:/XXX”
     讓環境變數立即生效需要執行如下命令:
     source /etc/profile
  <3>修改.bashrc 檔案
     在裡面加入:export PATH=”$PATH:/XXX”
  後兩種方法一般需要重新登出系統才能生效, 最後用 echo 檢視下. /etc/profile 對系統裡所有使用者都有效, 而使用者主目錄下的.bash_profile
eg:
ls 命令位於/bin/ls, 若將 ls 由移動成為/root/ls(可用 mv /bin/ls /root 命令實現). 然後你本身也在/root 目錄下, 請問是否可以直接輸入 ls 來執行呢? 若不能, 該如何執行這個命令呢?
 
[root@sqj2015 ~]# pwd
/root
[root@sqj2015 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  test
[root@sqj2015 ~]# mv /bin/ls /root
[root@sqj2015 ~]# ls
-bash: /bin/ls: No such file or directory
[root@sqj2015 ~]# ./ls
anaconda-ks.cfg  install.log  install.log.syslog  ls  test
[root@sqj2015 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@sqj2015 ~]# PATH=”PATH”:/root
[root@sqj2015 ~]# echo $PATH
PATH:/root
[root@sqj2015 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  ls  test
 
上面也說過,PATH=”PATH”:/root 這樣賦予是也是臨時生效的, 但是要注意區別 export PATH=”$PATH:/root” 設定結果, 如下:
[root@sqj2015 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@sqj2015 ~]# PATH=”PATH”:/root
[root@sqj2015 ~]# echo $PATH
PATH:/root
 

[root@sqj2015 ~]# export PATH=$PATH:/root
[root@sqj2015 ~]# echo $PATH
PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/root
 
 
“.” 代表目錄本身, 若我把”.” 加入到 PATH 變數中呢? 會出現什麼樣情況呢?
[root@sqj2015 ~]# echo $PATH
PATH:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@sqj2015 ~]# mv /bin/ls /root
[root@sqj2015 ~]# ls
-bash: ls: command not found
[root@sqj2015 ~]# export PATH=$PATH:.
[root@sqj2015 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  ls  test
[root@sqj2015 ~]# mv /root/ls /home/
[root@sqj2015 ~]# ls
-bash: ls: command not found
[root@sqj2015 ~]# cd /home/
[root@sqj2015 home]# ls
class  jack  ls
 
是不是發現: 我們可以在命令所在目錄進行命令的執行了. 但是由於工作目錄並非固定 (經常使用 cd 來切換到不同的目錄), 因此能夠執行的命令有變動 (因為滅個目錄下面的可執行檔案都不相同), 這對使用者來說並非好事.
另外, 若有個壞心使用者在/tmp 下面做了一個命令, 因為/tmp 是大家都能夠寫入的環境, 所以他當然可以這麼做. 假設該命令可能會竊取使用者的一些資料, 如果你使用 root 的身份來執行這個命令, 那是不是很糟糕? 所以, 為了安全起見, 不建議將”.” 加入 PATH 的查詢目錄中.