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