内核是操作系统最里层的部分,shell(壳)就是操作系统最外层的部分,shell就像外壳一样将内核包起来。
Linux操作系统是由很多部分组成的,其中最重要的两个部分就是:内核与shell(壳),如下图所示:
内核是操作系统的核心,负责驱动硬件,让软硬件之间的通信成为可能。
内核是操作系统最里层的部分,shell(壳)则是操作系统最外层的部分,shell就像外壳一样将内核包起来。用户通过终端来启动shell,shell可以接受用户的输入,并根据用户的指示去执行各种程序,还会将程序的执行结果反馈给用户。
shell直接面向用户,内核则更多的面向底层硬件,shell中执行的程序,可以通过系统调用的方式和内核进行沟通,让内核驱动底层的硬件去执行各种实际的操作。
在linux中主要有两种shell,一种是Bourne Shell(伯恩 shell),这个shell的提示符是$,它是由AT&T贝尔实验室的史蒂夫·伯恩,于1977年在Version 7 Unix中针对大学与学院发布的。其衍生产品Bourne Again Shell即bash,是linux系统中最流行的shell。
另一种是C shell,它的命令提示符是%,由比尔·乔伊在BSD系统上开发。它也是Bourne shell的前身。这种shell的语法类似于C语言,不过,目前C shell已不再被广泛使用。
我们在本篇文章中介绍的shell脚本,都是基于bash shell的。
什么是shell脚本
shell脚本就是一个文件,里面存储了需要执行的一系列的命令,当在shell中运行shell脚本时,脚本中包含的命令就会被依次执行。适合于执行各种重复性的任务,例如,系统维护任务等。
将需要重复执行的任务写成shell脚本,可以有效的减轻系统管理人员的负担。
以下是在命令行中,创建shell脚本的常见步骤:
下面,让我们来创建一个简单的shell脚本,脚本中的内容如下:
#!/bin/sh ls
具体的创建并执行的过程,如下图所示:
从上图中可以看到,当我们执行scriptsample.sh脚本时,就运行了脚本中的ls命令,从而将目录列表给显示了出来。
在脚本中添加注释
写过程序的人,应该都知道注释的重要性,通过添加注释,可以帮助阅读代码的人能更好的理解代码的作用。在shell脚本中也可以使用注释,在脚本中添加注释的语法格式如下:
#comment
脚本中的注释以#开头,#后面跟随注释的具体内容,例如下面这个例子:
在shell脚本中使用变量
在shell脚本里,也可以使用变量来存储数据。例如,下面的脚本中就创建了一个变量,并将该变量的值给显示了出来:
variable ="Hello" echo $variable
上面脚本中先用=赋值符号,创建了一个名为variable的变量,并将"Hello"字符串信息赋值给了该变量。接着通过echo命令将该变量给显示了出来,在使用变量时,需要在前面添加$符号。
我们还可以在脚本中接受用户的输入数据,并将这些输入数据赋值给变量,例如下面这个脚本:
#!/bin/sh echo "what is your name?" read name echo "How do you do, $name?" read remark echo "I am $remark too!"
该脚本的创建和执行情况,如下图所示:
上面脚本中,通过read命令来接受用户的输入,并将输入的数据存储到name和remark变量,最后通过echo将这些变量的值给显示了出来。
以上就是和shell脚本相关的简单的例子,在shell脚本中还可以使用条件语句,循环语句,和函数等,通过shell脚本可以减轻系统管理员的很多负担。