简单了解Shell脚本

在软件领域,语言主要分为两大类,脚本编程(scripting)语言编译型(compiled)语言

许多大型或中型的程序都是用编译型语言写成,例如C、C++或是JAVA。用编译型语言写成的程序,从源代码(source code)转换成目标代码(object code),便能直接通过计算机来执行。(JAVA并不完全是这样,但很接近这种说法。)

编译型语言的好处是高效,而因为高效,所以编译型语言多是运作于底层,处理的是字节、整数、浮点数或是其他机器层级的对象。

例如,在C++里,进行“将一个目录里所有的文件复制到另一个目录中”的简单操作,会非常麻烦,也很困难。

脚本编程语言,通常是解释型(interpreted)的。这一类程序的执行,是由解释器(interpreter)读入程序代码,并将其转换成内部的形式,再执行。解释器本身也是一般的编译型程序。

使用脚本编程语言,最方便的地方在于脚本编程语言大多运行在比编译型语言高的层级,能够轻易处理文件与目录之类的对象,但相对的,脚本编程语言的效率不如编译型语言。

一般常用的脚本编程语言有Python、Ruby和Shell。


特别是Shell脚本,可以在各UNIX系统之间通用,并且经过了POSIX的标准化,可以应用到很多系统上,例如使用比较广泛红帽Linux(Red Hat)系统

现在,我们从一个简单的脚本开始,在红帽Linux系统上使用。

比如,我们想知道目前系统上有多少用户登录,可以输入who命令


输入who命令的输出结果

可以得知,当前的系统有两个用户登录。由于是在虚拟机上的操作系统,因此列出来的用户很少,tty1指的是文字界面,就是当前打开的命令窗口,pts/0指的是打开的第一个终端,若是再有另外一个终端打开,就是pts/1。

在很多大型的、多用户的系统上,who命令所列出来的表会很长,这个时候统计用户数就很麻烦,对此,可以用wc程序。wc程序是一个字数计算程序,可以计算出行数(line)字数(word)、和字符数(character)。使用wc -l命令,只算行数。


计算用户数

|”是管道(pipeline)符号,可以在两个程序之间建立管道。who | wc -l命令就是who的输出,成了wc的输入,最后得出的结果就是已登录用户的个数。

接下来,就是把这条命令输入一个一般的文件中,再给该文件赋予执行的权限,大体流程如下:


建立一个简单脚本文件的大体流程


我们先来建立文件,按照流程输入。


建立文件和输入内容

可以通过ls命令查看文件是否建立,再通过cat命令查看文件内容。

然后再赋予文件执行的权限,用chmod命令


赋予文件执行权限

先用ll命令查看各个文件的状况,可以看到新建的nusers文件的权限状态为-rw-rw-r--,没有末尾的x,也就是没有执行权限

输入命令chmod +x nusers,给文件nusers赋予执行权限,再用ll命令查看,成功赋予执行权限。

最后,直接使用该文件。有两个命令可以运行,一个是./,一个是sh


执行文件

nurses就是一个简单的脚本文件。一般而言,开发一个小型的Shell脚本,首先要在命令行(command line)上测试,然后确认能够完成工作的合适语法,再将编写的程序语言放入独立的脚本文件中,设置相应的执行权限,这样一个小型的脚本文件就可以直接使用了。

你可能感兴趣的:(简单了解Shell脚本)