2.10 环境变量PATH

which命令介绍

  • which 能够查看命令所在的路径
  • which查询的路径是经过如下的路径,进行查询
[root@aminglinux-01 ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
  • 这个路径又以 : 分割 若是命令在以上路径内,能够不用输入绝对路径,真正使用命令是经过绝对路径进行操做

which例子

[root@hf-01 ~]# which ls	查看ls所在路径
alias ls='ls --color=auto'
    /usr/bin/ls
[root@hf-01 ~]# ls /usr/bin/ls	
/usr/bin/ls
[root@hf-01 ~]# cp /usr/bin/ls /tmp/ls2     复制/usr/bin/ls路径到/tmp/ls2下
[root@hf-01 ~]# /tmp/ls2	使用命令/tmp/ls2查看结果,会发现和ls命令出来的结果同样
anaconda-ks.cfg
[root@hf-01 ~]# ls		
anaconda-ks.cfg
[root@ahf-01 ~]# ls2	执行ls2命令,会提示未找到命令,由于这个命令不在上述目录里面
-bash: ls2:未找到命令
[root@hf-01 ~]# PATH=$PATH:/tmp/    若想直接运行ls2命令,须要改变环境变量	从新给PATH赋值
[root@hf-01 ~]# echo $PATH 会发现多出了/tmp/
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/tmp/
[root@hf-01 ~]# ls2	这时在运行发现就能够执行了
anaconda-ks.cfg
[root@hf-01 ~]# which ls2	
/tmp/ls2

新建的环境变量在终端失效了

  • 这时,打开一个终端,执行ls2命令,会发现又失效了 (打开终端方法,鼠标右击-复制SSH渠道)
  • 若想一直生效,

解决方法

1.在系统 vi /etc/profile		(在开机、打开终端都会加载这个命令)
2.结尾处加上PATH=$PATH:/tmp/ 并保存退出
3.在使用cat /etc/profile查看下是否加载成功
4.这时echo $PATH会获得/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/tmp/:/root/bin
如今无论哪个终端均可以执行ls2命令,都会执行成功

解除ls2命令,方法

若不想要这个ls2命令了,有两种方法。linux

  1. 方法一:从新赋值
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin		(去除:/tmp/)
    这时在执行ls2命令,就会失效
  2. 方法二:从新编辑文件/etc/profile
    快捷键dd,删除PATH=$PATH:/tmp/并:wq保存
    在去新建终端,执行echo $PATH
    就会发现/tmp/目录消失了
相关文章
相关标签/搜索