Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理,shell是一个命令解释器,是一个工具箱, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户。
- Linux 操作系统的 Shell 作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。
- Shell 是用户和 Linux 内核之间的接口程序,如果把 Linux 内核想象成一个球体的中心,Shell 就是围绕内核的外层。当从 Shell 或其他程序向 Linux 传递命令时,内核会做出相应的反应。
- Shell 是一个命令语言解释器,它拥有自己内建的 Shell命令集,Shell 也能被系统中的其他应用程序所调用。用户在提示符下输入的命令都先由 Shell解释再传给 Linux 内核。
- 有一些命令,如改变工作目录命令 cd,是包含在 Shell 内部的; 还有一些命令,如复制命令 cp和移动命令 mv,是存在于文件系统中某个目录下的单独程序。对于用户而言,不必关心一个命令是建立在 Shell 内部还是一个单独的程序。
- Shel 会先检查命令是否为内部命令,若不是,则检查其是否为一个应用程序(这里的应用程序可以是 Linux 本身的实用程序,如s 和 m;也可以是购买的商业程序,如 v;或者是自由软件如 Emacs )。此后,Shell 在搜索路径中寻找这些应用程序(搜索路径就是一个能找到可执行程序的目录列表)。如果输入的命令不是一个内部命令,且在路径中没有找到这个可执行文件,则会显示,条错误信息。如果能够成功找到该内部命令,则该内部命令或应用程序将被分解为系统调用并传给Linux内核。
- Shell 的一个重要特性是它自身就是一种解释型的程序设计语言,Shell 语言支持绝大多数在高级语言中能见到的程序元素,如函数、变量、数组和程序控制结构等。Shel 语言具有普通编程语言的很多特点,如循环结构和分支结构等,用这种编程语言编写的 Shel 程序与其他应用程序具有同样的效果。Shell 语言简单易学,任何在提示符中能输入的命令都能放到一个可执行的 Shel程序中。
- Shell是使用Linux操作系统的主要环境,Shell的学习和使用是学习 Linux不可或缺的一部分Linux 操作系统提供的图形用户界面X-Windows 就像 Windows 一样,也有窗口、菜单和图标,可以通过鼠标进行相关的管理操作。在图形用户界面中,按“Ctr+Alt+T”组合键或者在应用程序的菜单中打开虚拟终端,即可启动 Shell,如图2.1所示,在终端中输入的命令就是依靠 Shell 来解释并执行完成的。一般的 Linux 操作系统不仅有图形用户界面,还有文本模式,在没有安装图形用户界面的 Linux 操作系统中,开机会自动进入文本模式,此时就启动了 Shell,在该模式下可以输入命令和系统进行交互。