为了账号安全,请及时绑定邮箱和手机立即绑定

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

视频中:whereis ls

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

whereis cd

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

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

有图为证http://img1.sycdn.imooc.com//59c4fe93000187a405930089.jpg

正在回答

3 回答

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

0 回复 有任何疑惑可以回复我~
#1

Sunglasses_cat 提问者

也就是说用whereis判定是否是shell内部命令可能不太准确啦~那是不是得用help判定了hhh。 另外我对这个课程没有恶意只是探讨
2017-09-23 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

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

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信