左迁至蓝关示侄孙湘

一封朝奏九重天,夕贬潮阳路八千。
欲为圣明除弊事,肯将衰朽惜残年!
云横秦岭家何在?雪拥蓝关马不前。
知汝远来应有意,好收吾骨瘴江边。

讲解思路:

对$PATH含义的解释

更改PATH的方法

当你在linux中的任何一个目录下输入pwd命令,都会显示当前目录的位置

[root@localhost human]# pwd

/lives/human

问题:pwd可是一条命令啊,这条命令是存放在某个目录下

[root@localhost human]# whereis pwd;

pwd: /bin/pwd /usr/include/pwd.h /usr/share/man/mann/pwd.n.gz /usr/share/man/man1/pwd.1.gz

pwd命令存在于/bin目录下,可是你却可以在/lives/human目录下调用它,这不奇怪吗?计算机可不是神?你如果不告诉它,去哪里找pwd命令。它是不可能找到pwd命令的,进而它会显示-bash: pwd: command not found,但是现实是它却是能够在任何目录下执行pwd命令?这到底发生了什么?记得Java中的path吗?聪明的你,应该一瞬间就明白了这一切把戏。不错,安装linux系统时,已经默认在PATH中写进了/bin/pwd,当你执行pwd时,计算机首先去/bin中去查找,发现存在pwd命令,可以使用。我们可以看看,/bin中是否存在pwd命令:

[root@localhost /]# cd /bin
[root@localhost bin]# ls -l

-rwxr-xr-x. 1 root root  85304 7月  12 2017 ps
-rwxr-xr-x. 1 root root  28008 3月  23 2017 pwd

-rwxr-xr-x. 1 root root   8184 1月  26 15:41 raw

这就是为什么你在任何地方都可以使用pwd命令的原因。

假如我现在将/bin/ls命令剪切到/lives下,你是否还可以在任何地方使用ls呢?一起来看看。

[root@localhost lives]# ls -l
总用量 4
drwxr-xr-x. 3 root root 4096 5月  10 21:28 human

[root@localhost lives]# mv /bin/ls /lives/
[root@localhost lives]# ls -l
-bash: /bin/ls: 没有那个文件或目录

将/bin下的ls命令转移到/lives下,然后再/lives下使用ls命令,发现报错。可是我的ls命令,确实是在/lives下啊,那能不能在/bin中使用呢?虽然此时/bin中已经没有ls命令了。

[root@localhost lives]# cd /bin
[root@localhost bin]# ls -l

-bash: /bin/ls: 没有那个文件或目录

果然还是不可以,至于其它目录就更不可能使用ls的可能性。为什么会这样?还是那个问题PATH

之所以不能够在/bin中使用ls命令的原因是虽然PATH中存在/bin目录,但是/bin目录下此时并没有ls命令。

之所以不能在/lives中使用ls命令的原因是虽然lives中存在ls命令,但是/lives并没有写进PATH中。

那可咋办?

方法一:使用绝对路径

[root@localhost lives]# /lives/ls

human  ls

方法二:使用相对路径

[root@localhost lives]# ./ls

human  ls

问题:为什么刚才在/lives中直接使用ls不可以,而此处使用./ls就可以呢?这个问题你知道麻烦你告诉我,我不知道。

方法三:自己设置将/lives添加到PATH中

[root@localhost lives]# PATH="$PATH":/lives;
[root@localhost lives]# ls
human  ls

提醒一下:将ls恢复到/bin中去,系统默认的目录结构绝对不可以随意更改,否则,你会死得很惨。

[root@localhost lives]# mv /lives/ls /bin
[root@localhost lives]# cd /
[root@localhost /]# whereis ls;

ls: /bin/ls /usr/share/man/man1/ls.1.gz

=====================================================================

下午发现,上午最后漏了点什么,不仅仅需要将ls转移到/bin,而且将/bin规范到PATH。

[root@localhost /]# ls -l
-bash: /lives/ls: 没有那个文件或目录
[root@localhost /]# PATH="$PATH":/bin
[root@localhost /]# ls -l
总用量 13074
dr-xr-xr-x.  2 root root     4096 5月  10 22:48 bin
dr-xr-xr-x.  5 root root     1024 5月   9 21:30 boot
drwxr-xr-x. 19 root root     3740 5月  10 16:14 dev
drwxr-xr-x. 83 root root     4096 5月  10 16:13 etc
drwxr-xr-x.  2 root root     4096 5月   9 19:31 fromwindows
drwxr-xr-x.  4 root root     4096 5月  10 17:42 home
dr-xr-xr-x.  9 root root     4096 5月   9 21:57 lib
dr-xr-xr-x. 10 root root    12288 5月   9 21:29 lib64
drwx------.  2 root root    16384 5月   7 23:02 lost+found
drwxr-xr-x.  2 root root     4096 9月  23 2011 media
drwxr-xr-x.  2 root root     4096 9月  23 2011 mnt
drwxr-xr-x.  3 root root     4096 5月   9 00:35 mongodb
drwxr-xr-x.  2 root root     4096 9月  23 2011 opt
dr-xr-xr-x. 99 root root        0 5月  10 16:13 proc
drwxr-xr-x. 18 git  1000     4096 5月   9 22:45 Python-2.7.14
-rw-r--r--.  1 root root 12576112 9月  17 2017 Python-2.7.14.tar.xz
dr-xr-x---.  8 root root     4096 5月  10 23:44 root
dr-xr-xr-x.  2 root root    12288 5月   9 21:29 sbin
drwxr-xr-x.  7 root root        0 5月  10 16:13 selinux
-rw-r--r--.  1 root root   702770 5月  10 00:10 setuptools-33.1.1.zip
drwxr-xr-x.  2 root root     4096 9月  23 2011 srv
drwxr-xr-x  13 root root        0 5月  10 16:13 sys
drwxrwxrwt.  3 root root     4096 5月  10 23:06 tmp
drwxr-xr-x. 13 root root     4096 5月   7 23:02 usr
drwxr-xr-x. 18 root root     4096 5月   8 06:39 var

linux中的$PATH解析相关推荐

  1. linux暂时不能域名解析,Kali Linux中暂时不能解析域名

    Kali Linux中暂时不能解析域名 环境:kali linux 这个问题是再用apt install命令安装软件时发现的 用ping www.xxxxxxxx.com 再次确认无法解析域名 参考: ...

  2. Linux中修改PATH环境变量(只在当前窗口下生效)

    前言,要执行oracle中的一个命令sqlldr 在oracle的bin目录下,使用sqlldr命令时,显示 -bash:sqlldr: command not found 但是直接在根目录下 /us ...

  3. Linux中pam认证详解,linux中pam认证解析

    pam认证机制:简单来说就是linux系统采取的这一种对不同用户以及系统中的不同服务进行的安全认证机制. 认证流程:linux系统首先确定所需认证的服务,然后加载相应的PAM的配置文件(位于/etc/ ...

  4. linux中错误无法解析域名无法下载,Linux无法解析域名的解决办法

    如果由于误操作,删除了系统原有的dhcp相关设置就无法正常解析域名. 此时,需要手动修改配置文件: /etc/resolv.conf 将域名解析服务器手动添加到配置文件中 该文件是DNS域名解析的配置 ...

  5. linux中从内存解析xml格式的库,Linux下使用libxml库解析xml文件

    目录 libxml简介 libxml库安装 libxml2中的数据类型和函数 xml文档解析实例 运行结果 libxml简介 libxml是一个用于解析xml文件的库,在各个平台下都能使用,也支持多种 ...

  6. Linux中DNS正向解析(附带解析实验)

    一.DNS (1)DNS的定义 DNS指的是"域名系统"它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网. NDS服务使用TCP和UDP的53端口,TC ...

  7. Linux中bash: ls: 未找到命令… 相似命令是: ‘lz‘

    背景: 发现ls不能用了.ll.vi.vim都不能用了. 输入 ll命令 提示: bash: ls: 未找到命令-  相似命令是: 'lz' 原因: 环境变量PATH被修改了,是刚刚操作的修改影响了P ...

  8. windows中的PATH变量

    什么是PATH变量 PATH是计算机名词,功能是设备可执行文件的搜索路径.也就是说,环境变量是用于存放可执行文件路径的,里面内容全是一条一条的路径. PATH变量作用 这里用一个小例子来说明一下其作用 ...

  9. linux源码文件名,Linux中文件名解析处理源码分析

    Linux中文件名解析处理源码分析 前言 Linux中对一个文件进行操作的时候,一件很重要的事情是对文件名进行解析处理,并且找到对应文件的inode对象,然后创建表示文件的file对象.在此,对文件名 ...

最新文章

  1. Python连接Oracle数据库,以字典形式返回结果
  2. matlab读取心电txt数据画图,图解MIT-BIH数据库心电数据下载和Matlab读取程序
  3. [html] 解释下你对GBK和UTF-8的理解?并说说页面上产生乱码的可能原因
  4. 三校生计算机对口本科有哪些学校,宝山三校生五月对口高考报名
  5. android studio moudel,Android Studio 添加其他目录下的module
  6. (CED)列指针与行指针的联系与区别
  7. Spring IOC容器组件注入的几种方式
  8. 作业 校正学生成绩 winform
  9. 微服务乱码_本地正常服务器乱码
  10. 使用C#,轻松发邮件之QQ邮箱
  11. oracle物理结构视频教学,详解Oracle物理结构
  12. qq空间把android改成iphone,qq空间利用代码修改iPhone6 Plus qq空间修改手机型号教程...
  13. 树莓派实现SIM868 ppp拨号上网
  14. 八十年代的古董级晶体管直流稳压电源 WYJ-15V/1A
  15. 协议学习之 vamei博客系列 总结
  16. 查询出一班、二班的人数和平均分,并且按照由高到低排序
  17. 论文阅读报告:Feature Selection for Multi-label Classification Using Neighborhood Preservation,Zhiling Cai
  18. 083-我最爱的周杰伦几首歌
  19. Win11系统提示找不到gpedit.msc文件解决办法
  20. 北京交通大学计算机学院考研,2019北京交通大学计算机考研考生科目、参考书目、招生人数...

热门文章

  1. 十三届智能汽车竞赛 信标对抗组 思路参考 程序参考(三)寻灯策略Part.①
  2. git报错:Permission denied (publickey).
  3. 揭秘苹果耗时半年修复的OS X漏洞
  4. TIA博途SCL编程学习22_奖金计算
  5. Java入门学习-使用Math,实现lg、平方、开方、round、floor、ceil的算法。
  6. 视频教程-Office Project 2019教程-Office/WPS
  7. springboot全局异常处理详解
  8. MongoDB股价暴涨,成唯一市值超300亿美元的上市开源公司
  9. 安卓10源码开发定制(21)GPS定位研究(1)LocationManager对象获取流程
  10. 贵州大数据产业风生水起 增速居中国前列