shell脚本_简单了解Shell脚本

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

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

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

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

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

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

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

98e323253536de96c4b07ad82bea90c8.png

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

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

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

575eeb3a06c6f7cc540cbf686cf532be.png

输入who命令显示登录用户

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

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

f3756d148c1ea4e1ef1afecf5eb12a4d.png

计算用户数

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

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

153fd44386c4f92ae75bd0fd20498297.png

命令转换成文件的大致流程

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

b0da270deb9c53a55b8f8c3e40cb9411.png

创建文件

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

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

28fe9b9a4cd24bbf38b1b6faecc4745e.png

赋予文件执行权限

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

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

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

663bb9cee1cccaa259900dd216cd4793.png

执行文件

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值