视频中:whereis ls
结果出现可执行文件:/bin/ls
whereis cd
结果只有帮助文档没有可执行文件,所以老师说这个cd是shell内部命令。
当时我没在意,后来复习的时候敲了一遍命令,发现我的linux中虽然cd是shell内部命令(我用help cd可以看到cd的帮助文档),但是whereis cd时,结果出现/usr/bin/cd,这个可执行文件这可把我郁闷坏了,花了一个小时反复看视频核对操作。这不是和“如果whereis查不到命令的执行文件那么这个命令就是shell内部命令”相悖么?
有图为证
老师的是CentOS6,我使用的是CentOS7。出现的结果跟你一样,说明CentOS7写了cd命令的执行文件。版本不同导致的结果不同。
最好是用type来判定 ,比如echo也是shell命令,但是centos 7也写进了bin文件夹
两种都可以判定吧。只是CentOS6没有实现cd的执行程序,CentOS7的时候实现了。重新封装了cd,完善linux。