关于执行文件路径的变量:¥PATH

用户能使用的命令是依据PATH变量所规定的

用 dmtsai 的身份列出搜寻的路径为何?
[root@study ~]# exit # 由之前的 su - 离开,变回原本的账号!或再取得一个终端机皆可!
[dmtsai@study ~]$ echo $PATH
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
# 记不记得我们前一章说过,目前 /bin 是连结到 /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 了

转载于:https://www.cnblogs.com/ZoeyCLM/p/10416512.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值