【求助】关于SHELL命令概念的定义问题 

【求助】关于SHELL命令概念的定义问题 

SHELL命令(例如ls,dir)和shell下运行的程序(例如cal和一些用其它语言写的程序)等是否可以都统一称做shell命令?怎样才称为shell命令?      
我不知道什么是shell命令

拿dos说吧,

dos有内部命令和外部命令。

内部命令就是dos本身解释的命令,就是cmd这个程序解释的命令。

外部命令就是dos本身不能解释的命令,cmd解释不了这个命令。要一个非cmd的单独程序。      
shell是用户与OS(内核?)的接口
只要是能在shell下运行的命令
就可能理解是shell      
`对````就是一个接口`````````````````````      
我觉得只有 sh 内部命令才应该被称为 "shell 命令"

不仅因为内部命令的执行方式类似于“命令”,而且:

如果把所有“外部命令”都当作命令的话,请问,什么不是 shell 命令?      
楼上的反问很有意思
这也是有问内部与外部命令的问题

不过我们可以讨论一下
shell脚本里运行的命令不是shell命令
那又是什么
呵      
其实对“内部命令”,shell 会执行不同的动作,而对所有“外部命令”,shell 都是
fork () (或者 exec () ) 一个进程来执行它

从这个角度来看,所有“外部命令”对 shell 而言都是一样的:
shell 对它所有不认识的“命令”都执行同一个动作:查找并执行相应程序