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

一篇文章带你快速弄清楚什么是终端问题_清楚对什么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. 硬链接》

 

 

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

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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • bs是cs的一种吗_cs客户端和bs客户端

    bs是cs的一种吗_cs客户端和bs客户端一,B/S结构是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到二,区别(C/S与B/S):1.硬件环境不同:C/S一般建立在专用的网络上,小范围里的网络环境,局域网之间再通过专门2.对安全要求不同:C/S一般面向相对固定的用户群,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。可以通过B/S发布…

    2022年10月17日
  • 类加载器的双亲委派模型_java mock 模拟接口

    类加载器的双亲委派模型_java mock 模拟接口JVM类加载器JVM主要有以下几种类加载器:引导类加载器主要加载JVM运行核心类库,位于JRE的lib目录下,如rt.jar中的类。扩展类加载器主要加载JVM中扩展类,位于JRE的ext目录下。应用程序类加载器主要负责加载ClassPath路径下的类,也就是业务类。自定义加载器负责加载用户自定义路径下的类。类加载器关系…

  • InetAddress

    InetAddressInetAddress类就是封装了IPv4地址和IPv6地址。比较简单,这是muduo库中少有的值语义的类,所以继承的是copyable。实际上copyable只是强调可以拷贝,并没有实际意义。即使不继承该类还是可以copy。InetAddress::InetAddress(uint16_tport,boolloopbackOnly,boolipv6){static_assert(offsetof(InetAddress,addr6_)==0,”addr6_offset0

  • python+PIL实现图片对比

    python+PIL实现图片对比

  • Windows AD域功能介绍、Windows AD域方案介绍

    Windows AD域功能介绍、Windows AD域方案介绍WindowsAD域功能介绍、WindowsAD域方案介绍功能一、AD域管理https://www.manageengine.cn/products/ad-manager/1、AD域管理通过批量创建和编辑用户帐户,指派管理权限等,简化WindowsAD域的管理。2、批量管理域用户使用CSV文件批量导入用户、编辑用户属性、重置密码、批量迁移用户和用户对象。3、批量创建域用…

  • jsp调用getParameterValues获取表单信息

    jsp调用getParameterValues获取表单信息1.新建一个DynamicWebProject项目,里面新建两个jsp文件,整体的结构如下所示:2.one.jsp文件里面的代码如下所示:<%@pagelanguage="java"contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"%>example 选择你去过的城市:

发表回复

您的电子邮箱地址不会被公开。

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