问答详情
源自:5-2 Linux中 其他帮助命令

关于使用whereis判断命令是否是shell内部命令的一个问题

视频中:whereis ls

结果出现可执行文件:/bin/ls

whereis cd

结果只有帮助文档没有可执行文件,所以老师说这个cd是shell内部命令。

当时我没在意,后来复习的时候敲了一遍命令,发现我的linux中虽然cd是shell内部命令(我用help cd可以看到cd的帮助文档),但是whereis cd时,结果出现/usr/bin/cd,这个可执行文件这可把我郁闷坏了,花了一个小时反复看视频核对操作。这不是和“如果whereis查不到命令的执行文件那么这个命令就是shell内部命令”相悖么?

有图为证http://img4.mukewang.com/59c4fe93000187a405930089.jpg

提问者:Sunglasses_cat 2017-09-22 20:14

个回答

  • damagez
    2017-09-23 12:57:56
    已采纳

    老师的是CentOS6,我使用的是CentOS7。出现的结果跟你一样,说明CentOS7写了cd命令的执行文件。版本不同导致的结果不同。

  • 慕码人1306275
    2018-01-07 22:15:30

    最好是用type来判定 ,比如echo也是shell命令,但是centos 7也写进了bin文件夹

  • damagez
    2017-09-23 17:47:06

    两种都可以判定吧。只是CentOS6没有实现cd的执行程序,CentOS7的时候实现了。重新封装了cd,完善linux。