1.1 基本概念
本节主要让读者了解什么是Shell,及其具有的功能,只有从本质上理解它的功能,才能在后面的章节中熟练应用这个工具。
1.1.1 Shell的功能
在计算机科学中,Shell俗称壳(用来区别于核),是指“提供使用者使用界面”的软件(命令解析器)。它类似于DOS下的command.com。它接收用户命令,然后调用相应的应用程序。同时它又是一种程序设计语言。作为命令语言,它交互式解释和执行用户输入的命令,或者自动解释和执行预先设定好的一连串的命令;作为程序设计语言,它定义了各种变量和参数,并提供了许多在高阶语言中才具有的控制结构,包括循环和分支。Shell的功能主要包括以下几方面。
· 接受来自键盘的命令。
· 检查命令的正确性。
· 命令错误则给出报错信息。
· 命令正确则使用相应的系统调用执行命令(产生进程)。
· 命令执行完毕,给出命令执行的结果。
1.1.2 Linux Shell的常用命令
用户可以将Linux的命令以编程的方式组合起来提交给Shell,Shell负责解释执行这种程序设计语言所编写的代码。Linux把由这种程序设计语言构成的文件称为Shell Script或Shell脚本。
Shell脚本是包含一个或多个Shell命令的集合,这些命令会按照编写的顺序被依次执行,Shell提供了一种利用简单命令组合实现复杂功能的机制。Shell脚本中支持绝大多数编程语言中所能见到的程序控制结构,可以使用注释(#)对脚本的功能进行说明,可以使用条件测试表达式进行分支判断,可以使用循环语句处理大量数据,可以定义使用变量、数组等,并且也提供对函数的支持。
Shell脚本是解释执行而不是编译执行。脚本由ASCII文本组成,由Shell命令解释器读取并执行。当执行一个Shell脚本时,命令解释器会逐行、逐个循环地读取所有的ASCII文本,并从头到尾依次执行每条语句。
Shell编程的实质是连续自动执行一系列命令,表1-1中列出Shell编程经常使用的命令及相关约定。
表1-1 Shell编程常用命令
Shell脚本具有如下优点。
· 一次性完成目标
· 不用重复键入一系列命令
· 简化用户的操作
注意:建立Shell脚本文件同建立普通文件的方式一样,可以使用vi、emacs等命令来建立。
1.1.3 启动和退出
用户在成功登录进入系统后,系统产生一个特定的Shell(这是用户的第一个进程)负责解释执行用户的命令或Shell脚本。
在系统提示符后,用户键入命令或Shell脚本名,来执行指定的命令或Shell脚本。如果用户希望中止命令或脚本的执行,可以直接按Ctrl+C键来完成。
如果用户结束工作希望退出系统,可以按Ctrl+D键或使用命令logout或exit。