Linux第一周學習筆記(17)
2.10環境變TH量PA
PATH:只要加入了PATH的路徑都可以直接打開命令,可以不去運行命令的絕對路徑。這就是環境變量在起作用。
which命令:用於查找並顯示給定命令的絕對路徑,環境變量PATH中保存了查找命令時需要遍歷的目錄。也就是說,使用which命令,就可以看到某個系統命令是否存在,以及執行的到底是哪一個位置的命令。
[root@daizhihong01 ~]# which rmdir
/usr/bin/rmdir
[root@daizhihong01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
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/目錄了
Linux第一周學習筆記(17)