不想学编程?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操作系统的使用效果。

相关问题拓展阅读:

Linux写一个shell脚本,要实现在键盘输入一个进程号,输出这个进程号的子进程pid,怎么写?

这个只能找出子进程:

read -p “码如请输入一个进程号:” value

wym=`ps -ef|sed -e ‘s/*/|/g’|cut -d “|” -f “2-4″|grep “|${value}|”|cut 迟码启-d “|” -f “1”`

echo “它的子进程:” 

echo “$wym”

这个可以找出所有的后代进程:通过递归调用本身函数。

read -p “输入模渣一个进程号:” p

function mj(){

    pid=`ps -ef|sed ‘s/  */|/g’|cut -d “|” -f 2-3|grep “|$1$”`

for ppid in $pid;do

num=`echo “$ppid”|sed “s/|$1//g”`

echo “$num”

mj $num

done

}

mj $p

pid=0

read $pid

childid=`ps -ef|grep $pid|grep -v grep|awk ‘枝誉{printf $2}’猛雹段肆孙`

linux 写shell的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 写shell,不想学编程?Linux下Shell脚本简明指南帮你轻松入门!,Linux写一个shell脚本,要实现在键盘输入一个进程号,输出这个进程号的子进程pid,怎么写?的信息别忘了在本站进行查找喔。


数据运维技术 » 不想学编程?Linux下Shell脚本简明指南帮你轻松入门! (linux 写shell)