Linux命令:探索神出鬼没的cd命令

在之前的帖子中,我们已经用过很多次cd这个命令了,大家都知道这个命令是用于切换工作路径的,这个命令使用太普遍了,以致于cd这个命令连man手册都说:“nothing appropriate”,即“没有合适的”:

那为什么我们可以正常使用cd命令的呢?到底这些命令在哪里?我们可以使用which命令来查阅下我们熟悉的ls和pwd命令在哪里:

我们可以发现,大部分的命令其实都是在/bin下,在之前的帖子“Linux目录结构:物以类聚,目录以文件来分!”中,我们分析过/bin的确是存放一些常用的命令,但是在上图我们发现cd命令并不在/bin,究竟cd命令在哪里?

实,cd命令是Linux中的一个内置命令,我们可以通过命令type cd来查看cd究竟是怎么回事:

Linux说:“cd is a shell builtin”,意思是说“cd是Linux系统的shel命令中的一个内置命令”,为什么这个cd命令要做成内置命令?因为cd命令太重要了,就连我们想删除这个命令,也找不到它的文件所在的路径,即使我们故意破坏环境变量在/bin下寻找命令,也能正常使用cd命令。

PATH=/usr/local/arm/5.4.0/usr/bin:/home/ericion/bin:/home/ericion/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

总结一下:

当前PATH环境变量下有:/bin,也就是说系统会在这个目录下寻找Linux的命令,但是我们前面分析出cd命令并不在/bin目录下,所以即使我把环境变量中的/bin目录删除,也不会影响我们正常使用cd命令。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180420G1W39Y00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券