Shell脚本 教程

什么是 Shell?Shell 是一种应用程序,它提供了一个图形或者文字界面,用户通过这个界面来访问操作系统的内部。 Shell 位于用户与系统之间,用来帮助用户与操作系统进行沟通。

我们通常所说的 Shell 都指的是文字模式的 Shell。常见的 Shell 有 bash、sh、csh、tcsh、ash 等。现在主流 Linux 发行版都是使用 bash 作为默认的 Shell。

Shell脚本是实现 Linux 系统自动化管理以及自动化运维所必备的工具。每一个合格的 Linux 系统管理员或运维工程师,都应该能够熟练的编写 Shell 脚本。只有这样,才能提升运维人员的工作效率,减少不必要的重复劳动,为个人的职场发展奠定较好的基础。

 

1. 查看系统Shell

Shell 是一个应用程序,一般都是放在/bin或者/usr/bin目录下,Linux系统当前可用的 Shell 都记录在/etc/shells文件中。/etc/shells是一个纯文本文件,你可以在图形界面下打开它,也可以使用 cat 命令查看它。

通过 cat 命令来查看当前 Linux 系统的可用 Shell:

$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh

 

2. Shell脚本的范例

打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh,扩展名并不影响脚本执行。

输入一些代码,第一行一般是这样:

#!/bin/bash
echo "Hello World !"

其中 #! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。

echo 是打印语句。

 

3. 运行Shell脚本的方法

1)作为可执行程序

将上面的代码保存为 test.sh,并 cd 到相应目录:

chmod +x ./test.sh  #使脚本具有执行权限
./test.sh  #执行脚本

注意:一定要写成 ./test.sh,而不是 test.sh,运行其它二进制的程序也一样,直接写 test.sh,linux 系统会去 PATH 里寻找有没有叫 test.sh 的,而只有 /bin, /sbin, /usr/bin,/usr/sbin 等在 PATH 里,你的当前目录通常不在 PATH 里,所以写成 test.sh 是会找不到命令的,要用 ./test.sh 告诉系统说,就在当前目录找。

2)作为解释器参数

直接运行解释器,后面的参数就是 shell 脚本的文件名,如:

/bin/bash test.sh