如何入门 Linux Shell 脚本编写


如何入门 Linux Shell 脚本编写

文章插图
导读:各位读者,我们将在本文中介绍如何在 linux 或 UNIX 系统中入门 Shell 脚本编写 。
本文字数:3776,阅读时长大约: 5分钟
 
各位读者,我们将在本文中介绍如何在 Linux 或 UNIX 系统中入门 Shell 脚本编写 。
 
什么是 Shell 呢?
Shell(交互界面)是类 UNIX/Linux 操作系统中的一个解释器 。它将用户输入的命令解释成操作系统的系统调用来执行这些命令 。简单来说,Shell 形式上是操作系统的包装 。比如,你可能使用 Shell 命令来列出目录中的文件,如 www.linuxtechi.com 命令,或使用命令复制,如cp命令 。
 
  1. $ ls
  2. Desktop Documents Downloads Music Pictures playbook.yaml Public snap Templates test5 Videos
     
 
在上方的例子中,当你输入ls并按下回车键 。$符号是 Shell 的提示符,意味着 Shell 等着命令的输入 。下面的一行就是当前目录下的文件名 。
什么是 Shell 提示符?
提示符,即$,被称作命令提示符,是由 Shell 发出的(LCTT 译注:这个概念,可能有误 。请参看: ) 。当提示符出现后(LCTT 译注:此处提示符并不特指$符号),你就可以输入命令了 。Shell 将会在你按下回车键后读取你的输入 。它会通过查看你输入的第一个单词来确定你希望执行的命令 。“单词”指的是一组连续的字符 。空格和制表符作为分割单词的标志 。
不同类型的 Shell
由于没有限制只能有一个 Shell,你可以按照自己的意愿来自由选择运行任何一种 Shell 。这当然挺好的,但是在不清楚其它替代方案的情况下选择一种 Shell 没有多大益处 。下面列出了一些 UNIx/Linux 下常见的 Shell 。
Sh(Bourne Shell)
最初的 Unix Shell 通常被称作 Sh,是 Shell(或 Bourne Shell)的简写,以其作者 Steven Bourne 命名 。它在几乎所有的类 UNIX 操作系统下都可以找到 。基本的 Bourne Shell 仅支持相当有限的命令行编辑 。你可以输入字符,使用退格键删除字符,还有就是按下回车键来执行命令 。当命令行出现异常了,你可以按下Ctrl-C组合键来终止整个命令 。
Csh(C Shell)
它是由加利福尼亚大学伯克利分校的 Bill Joy 设计的,由于它的语法和 C 语言相似,所以被命名为 C Shell 。这种 Shell 在 Bourne shell 的基础上增加了一些实用功能,尤其是可以重用之前的命令来帮助创建之后要执行的命令 。当你去完成一项专门任务的时候,大多数的情况下需要执行不止一条命令,这样 C shell 的能力就相当有用了 。
Ksh(Korn Shell)
它是由贝尔实验室的 David Korn 创造的,Korn Shell 提供了和 C Shell 相同的增强,其中有一项重要的不同:Korn Shell 提供了对旧的 Bourne Shell 语法的向后兼容 。在 Unix 下,如 AIX & HP-UX 上,Korn Shell 是默认 Shell 。
Bash(Bourne Again Shell)
Bash 提供了像 Korn Shell 一样的命令行编辑,像 C Shell 一样的文件名补全和许多其它的高级功能 。许多用户认为 Bash 集 Korn Shell 和 C Shell 的优点于一身 。在 Linux 和 mac OS X 系统下,Bash 是默认的 Shell 。
Tcsh(T C Shell)
Linux 系统推广了 Tcsh 。Tcsh 扩展了传统的 csh,增加了命令行编辑、文件名补全和其它功能 。例如,当你按下Tab键后,Tcsh 会补全文件和目录名(与 Bash 中的按键相同) 。旧的 C Shell 不支持这项功能 。
什么是 Shell 脚本呢?
Shell 脚本是包含一条或多条命令的文本文件 。在 Shell 脚本中,Shell 程序假定文本文件的每一行是一条不同的命令 。这些命令的大部分就和你在 Shell 窗口手动输入的一样 。
为什么要使用 Shell 脚本呢?
Shell 脚本被用来自动化管理任务、简化复杂的配置细节,并且充分运用操作系统的性能 。有了组合不同命令的能力就可以创造新命令了,从而增加操作系统的价值 。此外,结合使用 Shell 与图形化桌面环境,可以兼得二者之长 。
从系统管理员的角度看,日复一日的重复工作可以使用 Shell 脚本来实现自动处理,那就可以节约时间从事其它高质量的工作 。
创建第一个 Shell 脚本
在当前工作目录下创建一个名为myscript.sh的文本文件,所有的 Shell 脚本都有.sh的扩展名(LCTT 译注:Linux 下根本没有扩展名一说,没有这个扩展一样是可以执行的) 。脚本的第一行是


推荐阅读