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/目录了