關于使用whereis判斷命令是否是shell內部命令的一個問題
視頻中:whereis ls
結果出現(xiàn)可執(zhí)行文件:/bin/ls
whereis cd
結果只有幫助文檔沒有可執(zhí)行文件,所以老師說這個cd是shell內部命令。
當時我沒在意,后來復習的時候敲了一遍命令,發(fā)現(xiàn)我的linux中雖然cd是shell內部命令(我用help cd可以看到cd的幫助文檔),但是whereis cd時,結果出現(xiàn)/usr/bin/cd,這個可執(zhí)行文件這可把我郁悶壞了,花了一個小時反復看視頻核對操作。這不是和“如果whereis查不到命令的執(zhí)行文件那么這個命令就是shell內部命令”相悖么?
有圖為證
2017-09-23
老師的是CentOS6,我使用的是CentOS7。出現(xiàn)的結果跟你一樣,說明CentOS7寫了cd命令的執(zhí)行文件。版本不同導致的結果不同。
2018-01-07
最好是用type來判定 ,比如echo也是shell命令,但是centos 7也寫進了bin文件夾
2017-09-23
兩種都可以判定吧。只是CentOS6沒有實現(xiàn)cd的執(zhí)行程序,CentOS7的時候實現(xiàn)了。重新封裝了cd,完善linux。