> 文章列表 > Linux 学习笔记(一):终端 和 Shell 的区别和联系

Linux 学习笔记(一):终端 和 Shell 的区别和联系

Linux 学习笔记(一):终端 和 Shell 的区别和联系

一、Linux 介绍

1、什么是 Linux

  • Linux 就是一个操作系统,全称 GNU/Linux,是一种类 Unix 操作系统

        Linux 一开始是没有图形界面的,所有操作都靠 命令 完成。如 磁盘操作、文件存取、目录操作、进程管理、文件权限 等等,可以说 Linux 就是 命令行 组成的操作系统

        大家更熟悉的 Windows 系统,一般用户都是在纯图形化界面下进行操作的,依靠鼠标和键盘操作,上手比较简单。

        现在的 Linux 兼具图形化界面操作和完全的命令行操作,但 命令行操作 仍然是 Linux 的 精髓 所在,命令行下只用键盘就能完成所有操作。

2、Linux 的两个基本思想

  • 一切皆文件
  • 每个文件都有确定的用途

二、终端 和 Shell

1、什么是终端(Terminal)

  • 终端是与计算机系统相连的一种输入、输出设备,通常离计算机较远 

        终端就是人与计算机交互的接口。Unix 和 Linux 把这些人机交互的接口统称为 —— 终端。可以简单将终端理解为 “鼠标、键盘、显示器、扬声器、麦克风” 等硬件设备

  • 台式机的输入设备一般包括 【键盘、鼠标、麦克风】;输出设备包括 【显示器、扬声器】

2、Linux 终端

        ?为什么 Linux 上的终端和上面说的终端感觉不太一样呢 ?

        实际上,前面说的终端是物理设备,而我们在 Linux 上常说的终端其实是一种 模拟终端的程序(即:终端模拟器 - Terminal Emulator),也称为 —— 虚拟终端 ,但平时一般直接称为终端。

        可以将 Linux 终端看作一个使用软件来模拟的输入、输出设备,其作用就是提供一个命令的输入、输出环境。Linux 终端是基于物理终端之上的

        在 Linux 操作系统中,为了让多个用户登录系统进行操作,或打开多个窗口执行多个任务,Linux 设置了多个虚拟终端设备。

  • 在 Linux 下 Ctrl + Alt + t 即可打开终端(Ctrl + d 关闭终端)

3、Shell

  • 在计算机科学中,Shell 俗称 “壳” (区别于 “核”—— Linux 内核
  • 简单来说,Shell 就是接收用户输入的命令,然后提交给 Linux 内核处理的一个壳程序

        Shell 是一个用 C 语言编写的程序,是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。

        我们在使用 Linux 的时候,一般不是对系统直接进行操作,而是通过一个中间程序实现,这个中间程序就是 —— Shell 。

        Shell 指 “提供给使用者使用界面” 的软件,即 Command Interpreter - 命令解析器。Shell 接收用户或者其他应用程序的命令,然后将这些命令转化成内核能够理解的语言并传递给内核,内核执行命令完成后,再将执行结果返回给用户或者应用程序。

        Shell 是包裹在操作系统 外层 的一道程序,负责外界与 Linux “内核” 的交互,但它隐藏了操作系统底层的具体细节,就像是 Linux 内核的一个 “外壳”,所以 Shell(壳)的名称也由此而来。

  • 图形化界面也是一种广义的 Shell,因为图形界面操作的本质也是 —— 将用户的命令传递给内核执行

4、终端 和 Shell 的区别和关联

  • 终端接收命令输入,Shell 翻译并传递命令,内核执行命令

        终端 只是人机交互的一个接口,提供输入输出命令的交互界面。终端的主要任务是接收用户输入的命令,并提交给 Shell。

        Shell 是命令解析器,主要任务是翻译命令。Shell 将终端输入的命令转化成内核能够理解的语言并传递给内核,由内核执行命令,并将执行结果返回给终端。

        当我们打开终端时,Shell 也会自动启动,操作系统会将终端和 Shell 关联起来。接着我们在终端输入命令,Shell 就负责解释命令。

打开终端后显示如下,则说明 Shell 调用成功:

**k 当前用户
@ 分隔符
V - Ubuntu 主机名称
~ 当前工作目录
$

身份提示符( # 表示超级用户,$ 表示普通用户)

5、tty 和 pty

(1)tty

        tty 来源于 - teletypewriter(电传打字机),是很早前的一种终端设备。现在的 tty 已经不再指电传打字机了,而作为各种类型的终端设备的统称。

(2)pty

        tty 虽然是电传打字机的缩写,但现在几乎已经没有电传打字机了,现在的 tty 也没有实际的电传打字机硬件,所以也称为 pty(pseudo tty)