当前位置: 首页 > news >正文

神奇的环境变量

神奇的环境变量

经过前几章的学习,我们知道查阅文件属性的指令ls完整文件名为:/bin/ls(这是绝对路径), 那你会不会觉得很奇怪:“为什么我可以在任何地方执行/bin/ls这个指令呢? ” 为什么我在任何目录下输入 ls 就一定可以显示出一些讯息而不会说找不到该 /bin/ls 指令呢?

这就要引出我们今天要了解的环境变量PATH了

当我们在执行一个指令的时候,举例来说“ls”好了,系统会依照PATH的设置去每个PATH定义的目录下搜寻文件名为ls的可可执行文件, 如果在PATH定义的目录中含有多个文件名为ls的可可执行文件,那么先搜寻到的同名指令先被执行!

  • 我们现在下达echo $PATH来查看都有哪些目录被定义出来了($意为后面接的是变量,因而显示出目前的PATH)
btc@btc:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

PATH(一定是大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)来隔开, 每个目录是有“顺序”之分的。仔细看一下上面的输出,你可以发现到无论是root还是dmtsai都有 /bin 或 /usr/bin 这个目录在PATH变量内,所以当然就能够在任何地方执行ls来找到/bin/ls可执行文件啰!因为 /bin 在 ubuntu 当中,就是链接到 /usr/bin 去的! 所以这两个目录内容会一模一样!

例题:假设你是root,如果你将ls由/bin/ls移动成为/root/ls(可用“mv /bin/ls /root”指令达成),然后你自己本身也在/root目录下, 请问(1)你能不能直接输入ls来执行?(2)若不能,你该如何执行ls这个指令?(3)若要直接输入ls即可执行,又该如何进行?答:由于这个例题的重点是将某个可执行文件移动到非正规目录去,所以我们先要进行下面的动作才行:(务必先使用 su - 切换成为root的身份)

[root@study ~]# mv /bin/ls /root

# mv 为移动,可将文件在不同的目录间进行移动作业

(1)接下来不论你在那个目录下面输入任何与ls相关的指令,都没有办法顺利的执行ls了!

也就是说,你不能直接输入ls来执行,因为/root这个目录并不在PATH指定的目录中, 所以,即使你在/root目录下,也不能够搜寻到ls这个指令!

(2)因为这个ls确实存在于/root下面,并不是被删除了!所以我们可以通过使用绝对路径或

者是相对路径直接指定这个可执行文件文件名, 下面的两个方法都能够执行ls这个指令:

[root@study ~]# /root/ls <==直接用绝对路径指定该文件名

[root@study ~]# ./ls <==因为在 /root 目录下,就用./ls来指定

(3)如果想要让root在任何目录均可执行/root下面的ls,那么就将/root加入PATH当中即可。

加入的方法很简单,就像下面这样:

[root@study ~]# PATH="${PATH}:/root"

上面这个作法就能够将/root加入到可执行文件搜寻路径PATH中了!不相信的话请您自行使用“echo $PATH”去查看吧! 另外,除了 $PATH 之外,如果想要更明确的定义出变量的名称,可以使用大括号 ${PATH} 来处理变量的调用喔! 如果确定这个例题进行没有问题了,请将ls搬回/bin下面,不然系统会挂点的!

[root@study ~]# mv /root/ls /bin

某些情况下,即使你已经将 ls 搬回 /bin 了,不过系统还是会告知你无法处理 /root/ls 喔!很可能是因为指令参数被高速缓存的关系。 不要紧张,只要登出 (exit) 再登陆 (su -) 就可以继续快乐的使用 ls 了!

ps:不要轻易尝试!不要轻易尝试!不要轻易尝试!容易改不回来!

btc@btc:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
btc@btc:~$  su -
密码: 
root@btc:~# mv /bin/ls /root/ls
root@btc:~# ls
找不到命令 “ls”,但可以通过以下软件包安装它:
apt install coreutils
root@btc:~# PATH="${PATH}:/root"
root@btc:~# ls
ls  snap
root@btc:~# mv /root/ls /bin/ls
root@btc:~# ls
-bash: /root/ls: 没有那个文件或目录
root@btc:~# pwd
/root
root@btc:~# PATH="${PATH}:/bin"
root@btc:~# ls
snap
root@btc:~# pwd
/root
root@btc:~# cd
root@btc:~# pwd
/root
root@btc:~# chmod 755 /bin/ls
root@btc:~# ls
snap
root@btc:~# /bin/ls
snap
root@btc:~# which ls
/usr/bin/ls
root@btc:~# ls /
bin                home               mnt    sbin                test
bin.usr-is-merged  lib                nihao  sbin.usr-is-merged  test1
boot               lib64              opt    snap                test.txt
cdrom              lib.usr-is-merged  proc   srv                 tmp
dev                lost+found         root   swap.img            usr
etc                media              run    sys                 var
root@btc:~# nano ~/.bashrc
root@btc:~# exit
注销
btc@btc:~$ nano ~/.bashrc
btc@btc:~$ ls
1.txt  公共  模板  视频  图片  文档  下载  音乐  桌面  snap
btc@btc:~$ echo $pathbtc@btc:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
btc@btc:~$ which ls
/usr/bin/ls
btc@btc:~$ whoami
btc
btc@btc:~$ pwd
/home/btc
btc@btc:~$ 
http://www.jsqmd.com/news/313838/

相关文章:

  • 基于Springboot+Vue的林业资源管理系统源码文档部署文档代码讲解等
  • 肝了整整90天!我把RK3588 Android开发做成了完整教程
  • 基于Springboot+Vue的旅游信息咨询网站的设计与实现源码文档部署文档代码讲解等
  • 基于Springboot+Vue的美食分享平台系统源码文档部署文档代码讲解等
  • 基于Springboot+Vue的民间救援队救助系统源码文档部署文档代码讲解等
  • 《P4035 [JSOI2008] 球形空间产生器》
  • “梦回汉唐”汉服商城网站的设计与实现(11823)
  • jspm“众优”大学生家教平台的设计与实现(11824)
  • 基于JSP的校园宿舍电费缴纳系统(11825)
  • “多鱼”旧物交易平台的设计与实现(11821)
  • “毛毛宠物店”宠物信息交流平台的设计与实现(11822)
  • Thinkphp和Laravel基于的农产品预售商城 平台设计_v8557农户_
  • 【GitHub项目推荐--Remotion Skills:AI代理技能框架】⭐⭐⭐
  • Thinkphp和Laravel日常办公用品打印机耗材商城直售推荐购物系统的设计与实现_02i27_
  • Thinkphp和Laravel汽车丢失车辆高速收费管理系统 车联网位置信息管理软件的设计与实现_
  • Thinkphp和Laravel物流仓储进销存信息运输管理系统_ho5g5_
  • 彻底告别 WinForms SOP 开发的“老大难”!
  • Thinkphp和Laravel基于Hadoop的高校固定资产租赁管理系统研究与实现_hot14_
  • Thinkphp和Laravel基于VUE敬老院管理系统养老院_35806vue
  • Thinkphp和Laravel基于Web的铁路火车票订票管理系统_w8iq4_
  • AI元人文:价值纠缠与规则涌现
  • 2026毕设ssm+vue旅游计划app论文+程序
  • 2026毕设ssm+vue旅游服务与管理论文+程序
  • 2026毕设ssm+vue旅游攻略网站系统论文+程序
  • 深入解析:芯谷科技--高效PWM控制降压型LED驱动器,点亮智能照明未来D3812
  • 2026最新日用香精品牌top5推荐!广东优质日用香精厂家助力高品质香氛体验
  • JAVA-SpringBoot、Spring框架以及SpringMVC学习总结
  • AI应用架构师主动学习实践:推动产业创新升级
  • 1.28假期记录
  • 亲测好用专科生必备10款一键生成论文工具测评