Shell和Terminal的区别于联系

背景介绍

之前在刷抖音的过程中刷到一个视频,是介绍ShellTerminal的区别。之前在编程过程中虽然一直使用着终端模拟器软件敲Linux命令,但是对这两个的概念却不是十分了解。于是就借着这个机会,好好深入了解了解一下Shell

首先,之前在抖音上刷到一个视频,是介绍ShellTerminal的区别,其中大致意思就是说,Shell是命令解析执行器,用来解析各种命令。然后终端是上个世纪的产物,当时计算机设备比较昂贵,所以是多套输入设备连接到一台机器上。输入设备有一个显示器和键盘鼠标,就称之为一个终端。这些输入设备都连接在一台机器上,所以这个现在的计算机概念还是不同。
然后现在我们在电脑上使用的软件,都是叫做终端模拟器,是模拟当初终端的效果,本质上命令的执行还是由Shell来解析执行。

正文内容

上面提到的的抖音视频中的内容,可以用文字概括为:

shell是外壳程序,负责接收指令,执行程序并返回结果,简单地可以分为图形化Shell和命令行Shell,比较常见的就是命令行Shell
终端是命令的输入输出环境,分为终端设备和终端模拟器
----来源于:抖音-小刘不是程序员

也就是说Shell是负责接收和解释命令的,而Terminal只是提供一个输入和输出的平台。之所以现在的人分不清这两者的区别,是因为现在在个人计算机中,这两者都集成在了一起,所以使用者感知不明显。在上个世纪,计算机设备还是一个比较昂贵的设备,所以不是每个人都能够拥有。但是当时的显示设备和输入设备,相较于计算机设备而言,是比较便宜的。因此,当时采取一种间接的方式,让更多的人使用上计算机设备,也就是一台计算机设备接入多个显示设备和输入设备。这样的显示和输入设备称之为终端。当用户使用的时候,就通过通信协议连接到计算机设备中,然后解析执行用户敲下的命令。
以前的终端TerminalShell是分开的。而现在每个人都可以拥有一台计算机设备,Shell就在计算机内,用户通过外部的软件来调用Shell。,所以用户感知不明显。现在用户电脑上所使用的命令行软件,实际上是叫做终端模拟器,是模拟之前的终端设备效果。

Shell和Terminal的区别

看了多个帖子中的介绍,其内容和抖音视频中的内容相当,都是说:

  • Shell本质是一个命令解释器,是用于人与电脑交互的
  • Terminal是一个输入输出设备,是用户与计算机交互的工具

Shell的分类

Shell是一个命令解释的机器,是用于人机交互的。随着时代的发展,Linux发行版本的更新,历史上出现了许多不同的Shell。

  • zsh
  • bash
  • csh
  • tcsh
  • ash
    不同的shell的功能大同小异,都是解释执行命令。不同的shell之间大部分是兼容的,但同时也会有自己的新特性。所以在编写shell脚本的时候,需要注意自己将要用什么shell来执行这个脚本,这可能会一定程度上影响你编写脚本的语句。

额外内容

以下内容来自于“抖音-小刘不是程序员:《你真的了解终端吗?谈谈终端背后的秘密》”,主要是视频内容的文字概括。


上个世纪,做终端硬件的公司,影响力最大的一个就是Digital Equipment Corporation公司,简称DEC。其公司发布了多款以VT开头的终端设备,其中VT100机器也是第一款符合ANSI标准的终端,后面也就以这款机器的名字VT100作为一个终端的标准。
问什么终端需要一个标准?
终端只能够显示文本内容,如果要其实现更复杂的功能,如换行、移动光标等。要实现这样的功能,单纯的文本内容不能够实现,这时候就需要其遵循一些约定,也就是后面的标准来实现。
这样的功能实际上是通过终端控制序列Terminal Control Escape Sequence来实现,也就是将一些字符设计为控制字符。这样在出现这些字符的时候,系统就不会完全显示这些字符,而是将这些字符进行转义,执行其特定的功能,因此这些字符也称之为控制字符。控制字符在ASCII表中也有,如ASCII表中的0-31都是不可打印字符,都是执行特定功能的字符。控制字符不仅能够控制换行、光标移动等内容,还能够控制输出内容的颜色,因此才得以使用不同的颜色区分不同重要程度的内容。
有了控制字符和终端控制序列之后,终端设备就能够使用文本内容,实现出更为复杂的功能和更清晰的显示效果。

参考链接

Shell和Terminal的区别

shell有哪些?Zsh和Bash的区别是什么?–介绍了不同的Shell
终端(terminal)、tty、shell、控制台(console)、bash之间的区别与联系
console、terminal、shell区别及shell入门

不同Shell的区别和联系

bash和zsh的区别
Zsh和Bash的兼容性问题–介绍了Zsh和Bash的一些语法上的不同
zsh与bash区别
Shell、Bash、Zsh这都是啥啊–介绍了bash的一些配置文件的作用

抖音参考视频

1、抖音-小刘不是程序员:《Shell 和 Terminal 的联系和区别》
2、抖音-小刘不是程序员:《你真的了解终端吗?谈谈终端背后的秘密》

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值