计算机系统的软件和硬件资源是由操作系统进行管理的,操作系统提供一组接口与用户进行交互。Shell、操作系统和硬件的关系如图2-28所示。
图2-28 Shell在计算机系统中的位置
用户在Shell中输入命令,Shell对这个命令进行解释,并向操作系统发出相应的请求,操作系统再驱动硬件执行相应的操作。由此可见,Shell是计算机系统和硬件设备之间的中间介质,是一个系统工具。学习Shell不仅仅是为了操作Linux系统,还是为了理解Linux的运行机制。
Linux提供了很多Shell,包括C Shell、Korn Shell等,而Bash Shell是Linux预设的Shell。Bash是GNU计划中非常重要的工具软件之一,是目前Linux系统的标准Shell。Bash的命令语法和其他Shell的语法非常相似。
Bash Shell具有命令自动补齐功能。在输入命令时,只需要输入命令的前面部分,然后按Tab键就可以自动将命令补齐。
Bash Shell可以将所要执行的命令写入一个称为脚本的文件里,可使所有的命令与这个文件一起被执行。
编写Shell脚本是使用Linux必备的重要技能之一,使用Shell脚本可以极大地简化代码编写工作,让一部分系统的管理任务自动化。Shell脚本是将一系列的命令写到一个文件中,并赋予这个文件可执行的权限,类似于Windows中的批处理文件。
例如:编写一个简单的Shell脚本,打开终端,使用vim编辑器新建一个create_dir.sh文件,在里面输入如下代码:
代码清单2-1:Shell脚本运行实例
#! /bin/bash mkdir level1 cd level1 mkdir level2 echo “finished creating directory”
保存并退出后,使用chmod a+x create_dir.sh命令来为create_dir.sh文件添加执行权限。使用./create_dir.sh运行这个脚本。输出结果为finished creating directory,表明脚本已经执行完成。使用ls命令可以在当前的目录中查看新建的level1目录,使用cd命令进入level1目录会看到里面还有包含有level2目录。