一篇文章带你快速弄清楚什么是终端

Linux的使用者可能天天都会接触到 Bash、Shell、控制台、终端。它们之间有什么不一样吗?本文为你快速解释这些概念以及它们的区别。html

  

什么是终端

 

首先咱们来弄清楚什么是终端(terminal)。按照百度百科的解释是:“经由通讯设施向计算机输入程序和数据或接收计算机输出处理结果的设备。” 听起来彷佛有点晦涩,其实用台式PC机来举例就很容易理解了。一台台式机是由主机(机箱)和不少外围设备组成的。主机里边包括主板、CPU、内存、硬盘、和其余芯片等等。外围设备包括显示器、鼠标、键盘、耳机、麦克风、和摄像头等等。这些外围设备就被称为终端,负责向主机输入数据的就叫输入终端,好比鼠标、键盘、麦克风、摄像头,负责接收主机输出数据的设备就被称做输出终端,好比显示器、耳机。面试

 

 

因此有两个概念咱们这里就清楚了:编程

计算机 = 主机 + 终端服务器

终端 = 输入终端 + 输出终端ssh

  

终端的类型

 

终端,除了能够分为输入终端与输出终端外,还能够按照与主机的距离能够本地终端和远程终端,或者按照与主机的链接方式分红物理终端和虚拟终端。编程语言

 

举个例子,好比咱们在杭州的某个机房里有一台服务器,用VGA线接了一台显示器,用USB链接了键盘,那么这台显示器和这个键盘就是服务器的本地终端。假如咱们在隔壁机房用串口线又接了一个显示器和键盘,那它们就能够称为远程终端。不论是在本地机房仍是隔壁机房,由于这几个终端和服务器都是经过物理设备直接链接的,因此它们都被称为物理终端。物理终端在 Linux中被标识为 tty。它是teletype的缩写,由于在计算机早期的时候,Ken Thompson 和 Dennis Ritchie用电传打印机做为他们  Unix 服务器的终端(参考《Linux,Unix,GNU 到底有什么样的渊源?》),因此这个名字就这样被沿用了下来。spa

 

假如咱们在上海的家里经过 ssh 远程登录杭州的服务器,那么咱们在家中用的设备就是服务器的远程终端,也是一个虚拟终端(由于没有与服务器在本地用物理设备链接)。虚拟终端在 Linux 中用 pts (pseudo termial slave)来标识。用 who 命令能够查看当前登录系统的用户,以及他们所使用的终端类型。操作系统

 

 

什么是控制台

 

控制台(console)与终端如今已经几乎表示同一个意思了,可是在计算机发展的早期它们仍是有本质区别的。最初,大型计算机(可能有几间屋子那么大)只有一个终端,被称为”控制台“,而它真的是一个控制台,就像下面这张图这样,有不少的仪表和开关,技术人员就是经过它来对计算机发出指令。那个时候计算机虽然很大,但每次只能有一我的来操做,而且一次也只能运行一个程序。后来Ken Thompson 和 Dennis Ritchie发明了Unix,因而操做系统能够同时运行多个程序,而且支持多个用户同时登录。这样一来,仅有一个控制台就显得不够了。由于控制台又很贵,因此 Ken Thompson 和 Dennis Ritchie就用了相对便宜的电传打字机做为新增长的终端链接到他们的计算机上。虽然一台计算机能够链接不少个终端,但这里边只能有一个控制台,而且控制台的权限要远大于其余的终端,好比当系统发生启动错误时,只有控制台会显示错误消息,而其余终端不会;或者当系统进入单用户登录模式时,只有经过控制台才能进行登录,而经过其余终端没有办法登录。因此若是用一句话来总结控制台与终端的区别,能够说控制台是计算机最先的以及权限最大的一个终端。htm

 

  

什么是 Shell 和 Bash

 

终端和主机虽然链接起来了,可是计算机仍是须要一个程序才能明白咱们输入的命令,这个程序就是 Shell。咱们的命令就是经过终端输入到 Shell 里,再由 Shell 转换成计算机明白的指令,而后计算机才能运行。blog

 Shell 有不少种,咱们最经常使用的是 Bash,另外还有Csh, Ksh, Zsh等等。对于Bash,Linux的用户应该天天都在使用,这里就再也不展开介绍了。

  

最后

 

控制台、终端、Shell、Bash 这些名词常常被你们混淆,虽然今天在不少场合它们常常被替换使用,你们也都明白,不过但愿经过本文你们能够弄清楚它们之间的区别和联系。

 

 

推荐阅读:

《一篇文章看清楚 Linux 的职业发展方向》

《2020年你最须要掌握的11种编程语言》

《微软:悬赏10万美金破解 Linux 系统》

《安卓究竟是不是Linux》

《在 Linux 系统中如何管理 systemd 服务》

《Linux的运行级别与目标》

《软连接 vs. 硬连接》

 

 

 

扫码关注公众号获取知识干货、增长面试经验、了解程序人生