shell 与windows下的cmd区别
如果 lz 的 shell 指的是 linux 的 bash 的话:
还有配置方式(bash 是用配置文件,而 cmd 是在标题栏上面点右键)
区别太多了……不知道 lz 具体要问哪方面的。
都是命令解释器。提供解析命令行输入、执行程序、处理管道,以及完成一定的编程语言的能力,负责批处理文件的解析。(.sh
for UNIX shell, .cmd
or .bat
for Windows CMD)Shell和CMD都提供针对文字终端的接口能力,或者也可以不和用户直接接口。
他俩除了用途相同之外,恐怕剩下的就全是区别了。
例如,Windows的CMD又另外承担了图形界面下终端模拟器的任务,Windows嘛,一切都大杂烩的烂作风。而Linux图形界面下,终端模拟器会被lxterminal
、sakura
、terminator
等单独的软件接管,不混杂,符合Unix风格。
常见的问题是将Windows的CMD认为是“DOS”。DOS和命令行绝对是两个概念,总把DOS挂嘴边的人真该改改观念了。
Windows如今也不光有CMD这一个Shell了。微软这个技术后进生在Shell上也在做改变。除了CMD是系统关键组件不动之外,又新作了一套PowerShell增强批处理等功能,去追赶Unix发展了几十年的脚步。
本来不是很想回答这个问题,但是看到评论里面那瓶矿泉水也来凑闹热,我就忍不住了。。。这厮曾经把我的答案评论的惨不忍睹。
首先说shell,shell直接翻译就是壳,按照ABS的定义,shell是
The shell is a command interpreter. More than just the insulating layer between the operating system kernel and the user, it's also a fairly powerful programming language.
渣英文翻一下的意思是:shell是一个命令解释器,处于内核和用户之间,负责把用户的指令传递给内核并且把执行结果回显给用户,同时,shell也可以作为一门强大的编程语言。很显然这里的shell是命令行解释器的意思.也有内核上的一层壳的含义。
然后我们看下CMD
CMD是Command shell的简写,翻译成中文也是命令外壳我擦真的好渣的翻译。我们看下微软对CMD的定义:
The command shell is a separate software program that provides direct communication between the user and the operating system. The non-graphical command shell user interface provides the environment in which you run character-based applications and utilities. The command shell executes programs and displays their output on the screen by using individual characters similar to the MS-DOS command interpreter Command.com.
照例渣英文翻译下: Command Shell是一个独立的应用程序,它为用户提供对操作系统直接通信的功能,它为基于字符的应用程序和工具提供了非图形界面的运行环境,它执行命令并在屏幕上回显MS-DOS风格的字符。好啦我知道翻译很渣你行你上啊
综上,shell和CMD并没有本质上的区别。另外,在linux/unix平台上,shell多半默认为Bash shell,当然也有其他shell,比如C shell什么的,在Windows平台上,shell=cmd.exe,如是而已。
都是命令行解释器,都是一个用户与操作系统的交互接口。