不想学编程?Linux下Shell脚本简明指南帮你轻松入门! (linux 写shell)
如果你不想学习深入的编程语言,但又想在Linux系统中自动化一些任务,那么Shell脚本是一个极好的选择。Shell脚本是在Linux命令行下的自动化处理程序,使用Shell脚本可以让你快速地完成重复的、纯粹的工作。
Shell脚本使用的是命令行语言,叫做BASH。BASH是Bourne Agn SHell的缩写,是用来代替Bourne Shell(/bin/sh),是UNIX操作系统中更流行的Shell。BASH是Linux系统默认的Shell,也是最常见的Shell。普通用户可以使用BASH进行各种复杂的任务或者自动化处理程序。
Shell编程是Linux系统用户必须掌握的技能之一,如果你想尽可能地利用Linux的征服能力,那么掌握脚本编程是必须的。
Shell脚本起步
打开命令行终端,输入“echo ‘Hello, World!’”,回车,会在屏幕上显示出“Hello, World!”。这个简单的命令就包含了Shell脚本的基本模板。我们来解读一下:
echo:这是一个命令,用于输出字符串。
‘Hello, World!’:这是要输出的字符串。
使用一个编辑器,比如nano,打开一个新文件:
nano hello.sh
在新文件中,输入以下两行代码:
#!/bin/bash
echo “Hello, World!”
上面的之一行代码是指定执行脚本的Shell,这里使用的是BASH;第二行代码是输出“Hello, World!”的字符在屏幕上。
Ctrl+s保存,Ctrl+x退出。
使用命令行将文件变为可执行文件:
chmod +x hello.sh
执行程序:
./hello.sh
你应该看到“Hello, World!”在你的终端屏幕上输出。
Shell脚本实现复杂的任务
Shell脚本可用于各种用途,在此我们简单介绍一些应用。
备份导出
创建一个Shell脚本用于自动备份Linux上的数据:
#!/bin/bash
rsync -avzh /home/ user@example.com:/mnt/drive/
上述代码将内容rsync到远程主机。如果主机上存在指定目录,则备份保存到该目录中;否则,目录将自动创建。rsync命令用于在本地和远程计算机之间同步文件和文件夹,并保持它们在两个位置上的相对完整性。-a选项为归档模式,-v用于显示详细信息,-z根据网络带宽压缩SSH传输。
备份的日志将默认保存在/var/log/rsyncd.log文件中。
读取文件中的内容
Shell脚本可以轻松地读取一个文本文件。以下脚本将读取一个名为data.txt的文件,每个文本行将赋值给变量LINE。
#!/bin/bash
while read LINE
do
echo $LINE
done
我们使用while循环和read命令来读取data.txt文件中的行,并将其存储在LINE变量中。如果每个文本行需要进行进一步处理,我们也可以使用if语句或其他命令。
找出更大的文件
要计算Linux系统中更大的文件,可以使用以下命令:
#!/bin/bash
find / -type f -printf ‘%s\n’ | sort -nr | head -1
上述命令使用find、sort、和head命令执行。-type f指定需要遍历的类型是file(常规文件),-printf选项指定格式为以字节输出每个文件的大小。sort命令按大小对文件进行排序,-n选项指定对数字进行排序,-r选项指定逆序。选项head -1显示大小更大的文件。
结论
Shell脚本在Linux系统中是一个必须掌握的技能,了解Shell的操作可以大大提高你的效率。虽然学习Shell可能是一个有点陡峭的进展,但是在你沉浸其中之后,你将发现它是一个非常强大的工具,并且可以极大地增强你的生产力和Linux操作系统的使用效果。