1、shell是什么?
shell一词包含两个概念:首先它是Linux命令集的概称,其次它是一个命令解释器,是操作系统和用户交互的接口。
命令解释器:将用户输入的命令翻译成机器语言。
为什么需要这样一个接口呢?
我们知道,操作系统的内容不能轻易被改动,否则会出现严重的问题,但是用户又必须要需要使用操作系统,所以操作系统为用户提供了一些命令,可以供用户使用。这些命令需要被两个对象所认识:机器和人。而命令解释器就充当了人和机器的“翻译官”,将人好理解的命令行命令“翻译”为机器可以理解的机器命令。
2、作为命令集概称的shell: shell 和 cmd
既然shell是Linux系统命令集的概称,那么Windows系统的命令集统称是什么呢?
准确来说,只能说Windows有cmd命令行工具,在Windows上同样可以使用shell,尽管Windows一直想加强cmd,但是奈何shell太强大。
cmd的由来:
在Windows之前的系统名叫DOS(Disk Operation System),没有图形化界面,用户靠输入命令操作计算机,这时候的命令就统称为cmd命令。
在Windows诞生之后,图形化界面占了主流,但是仍然保留了一个应用来支持cmd命令行工具。
综上可知,shell是Linux系统用来和用户交互的界面,而cmd命令行工具只是Windows下的一个工具,并且通过终端模拟器也可以在Windows下运行shell命令。
更详细可以参考此博文。
3、作为命令解释器的shell
-
命令行shell和图形shell
shell通常也是命令解释器的代称,它分为命令行shell和图形shell。图形shell比较少见,使用较少,如Windows下的explorer.exe。而命令行shell就很多了,我们常见的有:sh、bash、zsh。
-
shell与终端
什么是终端?
终端是人机交互的接口,常见的键盘、鼠标、打印机都可称为终端设备。我们现在常说的”终端“是指可以控制计算机的控制台。现在常见的终端是指终端模拟器,每个系统都会自带终端模拟器,还有一些其他的终端模拟器,比较有名的有:GNU/Linux:gnome-terminal、Konsole; macOS:Terminal.app、iTerm2; Windows:Win32 控制台、ConEmu 等。
终端有什么作用?
一个常见的误解是:我们通过终端可以控制计算机,终端可以执行我们输入的命令。并不是这样。终端的主要任务是接收用户输入的命令和字符。什么是命令行界面?
命令行界面是展示给用户,用于显示用户输入并显示命令执行结果的界面。通俗来讲,也就是终端模拟器展示给用户的界面,电影里看到的那种疯狂刷新字符行的那种黑窗口。shell和终端
终端负责收集用户输入的命令和数据,然后提交给shell,并且将命令执行完的结果反馈给用户。shell负责将命令翻译,在系统执行完之后将结果返回给终端。4、一图以蔽之