Linux第二週學習筆記(4)bash
2.10環境變量PATHide
PATH:只要加入了PATH的路徑均可以直接打開命令,能夠不去運行命令的絕對路徑。這就是環境變量在起做用。學習
which命令:用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時須要遍歷的目錄。也就是說,使用which命令,就能夠看到某個系統命令是否存在,以及執行的究竟是哪個位置的命令。spa
[root@daizhihong01 ~]# which rmdirit
/usr/bin/rmdirclass
[root@daizhihong01 ~]# echo $PATH變量
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/binfile
which指令會在環境變量$PATH設置的目錄裏查找符合條件的命令,也就是說which直接在$PATH設置的目錄裏直接查找命令的絕對路徑比較迅速,若是說你鍵入的命令在$PATH設置的目錄裏,就不須要鍵入這個命令的絕對路徑直接鍵入命令便可。終端
---------------------------------------------------------------------------------------- 遍歷
實驗運行ls及/usr/bin/ls效果是同樣的,也就是說ls在$PATH設置的目錄裏就本身鍵入ls就能夠了
[root@daizhihong01 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@daizhihong01 ~]# ls
anaconda-ks.cfg
[root@daizhihong01 ~]# /usr/bin/ls
anaconda-ks.cfg
----------------------------------------------------------------------------------------
複製ls命令到/tmp/目錄下新建一個ls1的名稱,新建好了之後咱們運行「ls1」的絕對路徑是能夠使用的,若是直接使用ls1就不行了,由於/tmp/目錄沒有在$PATH設置的目錄裏因此不能直接鍵入ls1命令
[root@daizhihong01 ~]# which ls
alias ls='ls --color=auto'
/usr/bin/ls
[root@daizhihong01 ~]# cp /usr/bin/ls /tmp/ls1
[root@daizhihong01 ~]# /tmp/ls1
anaconda-ks.cfg
[root@daizhihong01 ~]# ls1
-bash: ls1: 未找到命令
---------------------------------------------------------------------------------------------
若是要直接使用ls1那就須要更改環境變量,把/tmp/這個目錄加入到$PATH設置的目錄,一下的實驗結果只要把ls1所在目錄/tmp/加入到$PATH設置的目錄下就能夠直接運行ls1,查看路徑就能夠直接查看到了
[root@daizhihong01 ~]# PATH=$PATH:/tmp/
[root@daizhihong01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
[root@daizhihong01 ~]# ls1
anaconda-ks.cfg
[root@daizhihong01 ~]# which ls1
/tmp/ls1
[root@daizhihong01 ~]#
以上兩個實驗就是環境變量的做用以及含義
-------------------------------------------------------------------------------------------
當咱們在重新打開一個終端的時候,發現ls1又不能使用了,在查一下$PATH設置的目錄下/tmp/目錄又不存在了,因此咱們須要作一個永久性的設置
[root@daizhihong01 ~]# ls1
-bash: ls1: 未找到命令(在新的終端不能運行)
[root@daizhihong01 ~]#
-----------------------------------------------------------------------------------------
編輯/profile/文件在最後一行加入PATH=$PATH:/tmp/,在此打開終端就能夠看到/tmp/就永久的加到了$PATH設置的目錄下,鍵入ls1就能夠直接使用了
[root@daizhihong01 ~]# vi /etc/profile(編輯profile文件在最後一行加入PATH=$PATH:/tmp/)
[root@daizhihong01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/root/bin
[root@daizhihong01 ~]# ls1(再次打開終端這時鍵入ls1就可直接使用)
anaconda-ks.cfg
----------------------------------------------------------------------------------------
新添加ls1之後不須要的話,是能夠刪除ls1的
[root@daizhihong01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/root/bin
[root@daizhihong01~]#PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
[root@daizhihong01 ~]# ls1
-bash: ls1: 未找到命令
[root@daizhihong01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
這樣就直接從$PATH設置目錄裏面刪除了/tmp/目錄
第二種刪除的方法:
[root@daizhihong01 ~]# vi /etc/profile編輯profile文件刪除最後一行PATH=$PATH:/tmp/就能夠了
[root@daizhihong01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/root/bin
再次查詢在$PATH設置目錄裏面就沒有/tmp/目錄了