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

一篇文章带你快速弄清楚什么是终端问题_清楚对什么Linux的使用者可能每天都会接触到Bash、Shell、控制台、终端。它们之间有什么不同吗?本文为你快速解释这些概念以及它们的区别。什么是终端首先我们来弄清楚什么是终端(terminal)。按

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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

  

什么是终端

 

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

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

 

所以有两个概念我们这里就清楚了:

计算机 = 主机 + 终端

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

  

终端的类型

 

终端,除了可以分为输入终端与输出终端外,还可以按照与主机的距离可以本地终端和远程终端,或者按照与主机的连接方式分成物理终端和虚拟终端。

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

 

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

 

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

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

 

什么是控制台

 

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

 

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

  

什么是 Shell 和 Bash

 

终端和主机虽然连接起来了,但是计算机还是需要一个程序才能明白我们输入的命令,这个程序就是 Shell。我们的命令就是通过终端输入到 Shell 里,再由 Shell 转换成计算机明白的指令,然后计算机才能运行。

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

  

最后

 

控制台、终端、Shell、Bash 这些名词经常被大家混淆,虽然今天在很多场合它们经常被替换使用,大家也都明白,不过希望通过本文大家可以弄清楚它们之间的区别和联系。

 

 

推荐阅读:

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

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

《微软:悬赏10万美金激活成功教程 Linux 系统》

《安卓到底是不是Linux》

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

《Linux的运行级别与目标》

《软链接 vs. 硬链接》

 

 

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

欢迎大家关注我的微信公众号,获取知识干货、增加面试经验、了解程序人生。
回复【面试】,获取技术大厂面试宝典

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/168430.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Linux查看和结束进程命令详解

    Linux查看和结束进程命令详解在ubuntu中,终止一个进程或终止一个正在运行的程序,一般是通过kill、killall、pkill、xkill等进行。————————————

    2022年7月2日
    27
  • stringstream的用法如何会出现-1为ffff的情况_string读取文件指定长度

    stringstream的用法如何会出现-1为ffff的情况_string读取文件指定长度【本文来自】http://www.builder.com.cn/2003/0304/83250.shtmlhttp://www.cppblog.com/alantop/archive/2007/07/10/27823.html使用stringstream对象简化类型转换C++标准库中的提供了比ANSIC的更高级的一些功能,即单纯性、类型安全和可扩展性。在本文中,我将展示怎样使用这些库

    2022年5月3日
    69
  • mysql配置1045错误_MySql 1045错误「建议收藏」

    mysql配置1045错误_MySql 1045错误「建议收藏」配置时以管理员身份运行MySQLInstanceConfigurationWizard当你登录MySQL数据库出现:Error1045错误时(如下图),就表明你输入的用户名或密码错误被拒绝访问了,最简单的解决方法就是将MySQL数据库卸载然后重装,但这样的缺点就是就以前的数据库中的信息将丢失,如果你不想重装,那么就需要找回密码或者重置密码。解决的方法应该有多种,这里我推荐大家使用一种原理通…

    2022年4月30日
    38
  • webstorm怎么激活破解方法

    webstorm怎么激活破解方法,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月15日
    39
  • javaMD5加密类

    javaMD5加密类importjava.security.MessageDigest;publicclassMyMD5{ privateStringinStr;    privateMessageDigestmd5;  publicMyMD5(StringinStr){   this.inStr=inStr;   try{    this.md5=MessageDige

    2022年7月14日
    19
  • android strictmode有什么作用,Android StrictMode policy

    android strictmode有什么作用,Android StrictMode policy问题RunningintosomeANRissueswithanandroidapplicationsoIimplementedtheStrictModepolicies.Neverusedthisbeforesohopefullysomeonecanhelpexplainthefollowing:Whydoesthelogshow2…

    2022年6月3日
    34

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号