Loading...

参考链接


终端

很久很久以前,终端这个概念是这样的:是一种硬件,是一种输入输出设备,用于和计算机交换信息。

终端的工作:用户通过终端输入命令,终端将命令传入计算机,执行后,并把结果输入到终端上显示。

从这个概念不难可以看到电传打印机符合这个概念:

但是现在计算机硬件一体化程度越来越高,硬件质量也越来越强,输入输出设备完全没必要单独用一个硬件和计算机进行交换信息了,取而代之使用软件终端和计算机进行交互信息。

这就是终端模拟器 (Terminal Emulator),也就是我们现在所讨论的终端。除了它不是硬件,它符合终端的概念和工作流程。

举个例子,下面这些软件都是终端:

  • GNU/Linux:gnome-terminal、Konsole;
  • macOS:Terminal.app、iTerm2;
  • Windows:Win32 控制台、ConEmu 等。

shell

有了终端就足够了吗?Shell是用来做什么的?

终端的工作范围:接受输入,显示输出,图形化界面

Shell的核心工作是操控计算机内核,即访问OS中某个具有一定功能,可以处理具体事务或包含一定内容的文件。

Shell包括:

  • 图形化 shell(图形化的桌面环境),如Windows Explorer (文件管理器)、 Linux的桌面环境有:KDE、GNOME、CDE、 XFCE等。
  • 命令行 shell。如bash 、sh 、csh 、ksh

切换Shell

输入cat /etc/shells,可以查看本机上的所有Shell


总结

终端就是软件,是最外层的,shell = shell脚本语言解析器+编辑、外观等额外功能