Linux应用基础教程(基于CentOS 7)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 Shell和命令基础

2.1.1 Shell简介

1. 什么是Shell

Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口(命令解释器),Shell接收用户输入的命令并把它送入内核执行,在用户与系统之间进行交互。Shell在Linux系统中具有极其重要的地位,如图2-1所示。

图2-1 Shell在Linux系统中的地位

2. Shell的功能

命令解释器是Shell最重要的功能。Linux系统中的所有可执行文件都可以作为Shell命令来执行。将Linux的可执行文件进行分类,如表2-1所示。

表2-1 Linux系统上可执行文件的分类

图2-2描述了Shell是如何完成命令解释的。

图2-2 命令解释过程

当用户提交了一个命令后,Shell首先判断是否为内置命令(由Shell自身负责解释),如果是就通过Shell的解释器将其解释为系统功能调用并转交给内核执行;若是外部命令或实用程序,就试图在硬盘中查找该命令并将其调入内存,再将其解释为系统功能调用并转交给内核执行。在查找该命令时分为两种情况:

(1)用户给出了命令的路径,Shell就沿着用户给出的路径进行查找,若找到则调入内存,若没找到则输出提示信息。

(2)用户没有给出命令的路径,Shell就在环境变量PATH所制定的路径中依次进行查找,若找到则调入内存,若没找到则输出提示信息。

此外,Shell还具有如下功能。

●通配符、命令补全、别名机制、命令历史等。

●重定向、管道、命令替换、Shell编程等。

3. Shell的主要版本

表2-2中列出了几种常见的Shell版本。RHEL/CentOS下默认的Shell是bash。

表2-2 Shell的不同版本

4. Shell的元字符

在Shell中有一些具有特殊意义的字符,称为Shell元字符(Shell Metacharacters)。若不以特殊方式指明,Shell并不会把它们当作普通文字符使用。

表2-3中简单介绍了常用的Shell元字符及含义。

表2-3 常用的Shell元字符及含义