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

来源:5-2 Linux中 其他帮助命令

Sunglasses_cat

2017-09-22 20:14

视频中: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

写回答 关注

3回答

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

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

    Sungla...

    也就是说用whereis判定是否是shell内部命令可能不太准确啦~那是不是得用help判定了hhh。 另外我对这个课程没有恶意只是探讨

    2017-09-23 13:22:43

    共 1 条回复 >

  • 慕码人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。

Linux达人养成计划 I

Linux入门视频教程,以通俗易懂的语言带你感受linux之美

399416 学习 · 3791 问题

查看课程

相似问题