曹逸君 Blog

10月 02, 2014

shell bash 终端 命令行 名词解释

<shell bash 终端 命令行> 名词解释

(本文为谷歌营全员学习计划Linux教学的一部分)

shell bash 终端 命令行

这几个名词本来是不同/不同层次的东西。但经常被混淆。

shell

在图形界面出现之前人们用电脑都是在这么一个黑底白字的界面里敲命令,然后它返回结果的。这个界面其实也是个程序,这程序被称为shell。

linux_0.01

更广义一点,用来调用其他程序的程序称为shell。比如远程控制软件,你可以通过它执行任意程序/指令。会被称为shell。

bash

早期Unix的一个shell。目前Linux和OS X都将它作为默认shell。[当然bash也是更新到现在,一成不变肯定是要被淘汰的。]

终端(Terminal)

90年代及以前的时候大家用的电脑通常不是一台完整的电脑。而是有屏幕和键盘。然后链接到共用的主机上使用主机运行程序的。也有自己电脑有一定运算储存能力但比较弱,而且没联网。需要运行比较大的程序或想上网时链接到主机上操作主机。用来操作主机的设备就叫终端。到后来这种用主机的方式逐渐消失。终端一词的含义就变为了用于操作自己电脑的那个shell了。

命令行(Command Line)

也称命令提示符(Command Line Interpreter/Promote) 所有文字界面的程序都可以称为命令行。比如mysql、mongo。但由于windows的shell cmd.exe 被windows称为命令行,习惯于windows的人会用命令行来代指终端。另外cmd.exe 不是dos。只是长得和dos的shell像。

控制台(console)

还有个名词叫控制台(console),这个词是在windows下指运行在黑框框里的命令行程序。一般C/C++没写图形的程序都是这种控制台程序(感觉怪怪的,大家叫它命令行程序比较多。)。

Written with StackEdit.