为了让硬件听懂我们的话,先辈们费尽了九牛二虎之力。

前言

说起 Shell 语言,其实很多人习惯的叫法是叫做 Shell 脚本。或许你在还没学习之前就听说过,Shell 脚本、Shell 语言、Shell 环境等等名词。

但是它们到底是什么,它们之间有什么区别?下面我们就逐个来解答一下。

ShellScript
基本概念/1_5w2fOfCVL5FdK7oYDJgIHg.png

正文

Shell 的本质

我们知道对于所有计算机设备来说,它们都是由 CPU、内存、硬盘等硬件做成的。但是单单有这些硬件,我们还没办法使用,因为我们不知道怎么和这些冷冰冰的硬件沟通。

为了让这些硬件听懂我们的话,计算机先辈们费尽了九牛二虎之力,写了一个程序来把我们的话翻译给机器听。

这个翻译程序可厉害了,只要你输入具体的命令,它就会把它翻译给机器听,这样你就可以和机器沟通了。例如,我们输入ifconfig可以查看 IP 地址,翻译程序就会将这条命令翻译给硬件,告诉它我们要查看 IP 地址。

其实这里的翻译程序就是 Shell,而具体的命令就是 Linux 命令。

简单地说,Shell 就是一套位于硬件和用户之间的程序,我们一般称之为解释器。

Shell 语言

有了 Shell 这个解释器,硬件就能听懂我们输入的命令了。但当我们要做一些复杂的逻辑操作时,例如筛选出占用 CPU 最高的进程 ID。这时候就不仅仅只是一个命令那么简单了,我们需要进行逻辑判断等一系列操作。

所以说 Shell 语言就是一系列语言规范的集合,只要你按照这些规范将你的 Linux 命令组合起来,那么 Shell 就可以正确解析出你的意图。

简单地说,Shell 语言其实就是一系列的语法规范。

Shell 脚本

简单地说,由 Linux 命令和 Shell 语言规范组成而成的一系列字符,我们就称之为 Shell 脚本。

Shell 环境

Unix 类系统经过了长时间的发展,衍生出了很多不同的版本,这些不同版本的 Shell 不太一致,其支持的 Linux 命令有有所不同。现存的 Shell 有下面这几个:

  • Bourne Again Shell(/bin/bash)
  • Bourne Shell(/usr/bin/sh 或/bin/sh)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)

所以说 Shell 环境就是指的就是拥有这些 Shell 的环境。在这些 Shell 环境中,Bash 由于易用和免费,在日常工作中被广泛使用。同时,Bash 也是大多数 Linux 系统默认的 Shell。


结束语

本文会同步更新在以下地方(已链接本人主页),欢迎你在常逛的网站中关注我。

转载本站文章请注明作者和出处 tomotoes.com,请勿用于任何商业用途。