加入社区

订阅:www.yunweipai.com/feed

QQ群:
1群:201777608 - 运维综合
2群:526871767 - 运维综合
3群:1689067 - Linux Shell脚本

微博:weibo.com/tektea

微信:yunweipai(或扫描以下二维码)

合作伙伴

小猪动图 - GIF动图素材库_GIF在线工具

Shell编程语言学习:从新手到系统管理员

本文由 [茶话汇] – [Qing] 编译自 [Avishek Kumar] 转载请注明出处

Shell-Script-Guide

GNU/Linux包含了一些Windows所没有的强大的工具。Shell脚本就是这些重要的工具中的一种。虽然Windows也有类似的脚本工具,但是其功能远没有Linux的Shell脚本强大。Shell脚本编程使得执行一系列的命令变得可能,它同时也可以通过管道来控制输出。这些功能在日常的自动化工作中使用的非常频繁。事实上,自动化控制对服务器来说是一个非常重要的任务。Linux/Unix系统管理员需要编写大量的脚本程序来执行每天特定的任务。

Linux下最常见的shell是BASH,即Bourne Again Shell的缩写。在Linux还有一些其它常见的shell,如下所示:
Almquist shell (ash)
Bourne shell (sh)
Debian Almquist shell (dash)
korn shell (ksh)
Public domain korn shell (pdksh)
MirBSD korn shell (mksh)
Z shell (zsh)
Busybox, 等。

我们在如下所示的五篇博文中尽力讨论shell编程的各种特性和主题。

从新手到系统管理员(一):理解Linux Shell和基本的Shell脚本

在第一部分,我们主要介绍脚本语言的基本知识及如何使用和编写基本命令、何时需要注释及如何增加注释、讨论shebang、如何使脚本变得可执行及如何执行脚本。

Hello.sh
第一个例子的目的是生成一个简单的输出。希望通过这个脚本,你不会对脚本编程世界感觉恐惧。

Process.sh
第二个例子告诉你如何一次性在脚本里面执行多个命令,这里暂时不讨论管道。

Interactive.sh
最后一个例子是一个简单但交互性很强的脚本。在这个脚本中,它会要求你首先输入你的名字,存储它,然后再让你输入你的姓。最后,它分不同的行在屏幕上打印你的全名和姓。

通过第一部分的学习,你会知道如何运行命令,在脚本中存储数据和对数据进行处理,及在运行的时候要求使用者输入数据及存储数目。

[茶话汇注]第一部分的译文链接:这里

从新手到系统管理员(二):Linux新手学习Shell脚本编程的五个例子

在这部分我们将提供五个例子,其主题是讨论shell的设计及着色。通过这部分我们想告诉大家Linux终端也是可以五颜六色的,并不是大家想象的那么单调无聊。

Special_patter.sh
这个例子可以绘制特殊的图形,比如用“.”来绘制钻石。通过这个特殊的例子,你将学习到如何使用for循环。

Colourful.sh
这个例子的输出结果是五颜六色的。通过这个例子,你可以学习到几种颜色的编码,如何使用它们来控制输出的文字和背景的颜色。整个学习过程是非常有趣的。

Encrypt.sh
这个例子的代码总共不超过10行,但它却完成了加密一个文件/文件夹的功能。关于安全的实现从来都没有像这样容易过。这里我们没有提供解密文件/文件夹的代码。但我们提供了解密所需要的命令,你可以自己来完成相应的解密脚本。

Server-Health.sh
对于初学者来说,这个脚本例子所包含的代码要长很多。这个例子为了后续的使用,而将一些输出信息重定向到文件中。从这里你可以学习Linux非常重要的管道命令。

Disk_space.sh
最后一个例子对于web管理员来说特别有用。它的功能是当某个用户的磁盘空间超过了限额之后,将自动向此用户发送邮件。这里我们假设分配给用户的是5GB的空间,那么当用户使用的空间超过4.75GB之后,系统将自动向该用户发送一封邮件。

[茶话汇注]第二部分的原文链接:这里(待翻译)

从新手到系统管理员(三):深入探索Linux Bash脚本编程世界

是时候向你介绍shell脚本中的关键字/保留字了。通过这部分的学习,可以使得我们编写的脚本语言更加专业。这部分我们讨论一些Linux命令在脚本语言中是如何实现的。

up.sh
这个例子讨论如何切换到若干个上层目录。

Randomfile.sh
这个例子对于系统管理员来说特别有用。它可以创建一个具有特定日期和时间戳的文件/文件夹。

Collectnetworkinfo.sh
这个例子收集与服务器相关的信息并将其存储到文本文件中,以备将来之需。

Convertlowercase.sh
这个例子一次性的将从文件或者标准输入得到的数据转为小写。

[茶话汇注]第三部分的原文链接:这里(待翻译)

从新手到系统管理员(四):Linux Shell脚本编程之数学(Part I)

这部分我们讨论脚本语言中的数学运算。

Addition.sh
这个例子讨论Shell编程中的加法运算,这里我们使用“expr”来执行运算操作。
Substration.sh, Multiplication.shDivision.sh用起演示其它集中运算操作。

Table.sh
这个例子将实时产生一个表格的数据。

EvenOdd.sh
这个例子用来判断从标准输入得到的数字是奇数还是偶数,并将结果打印出来。

Factorial.sh
这个例子演示了如何计算一个数的阶乘。

Armstrong.sh
这个例子用来判断输入的数字是否是armstrong数字。

Prime.sh
这个例子用来判断输入的数字是否是质数,并将其结果打印出来。

[茶话汇注]第四部分的原文链接:这里(待翻译)

从新手到系统管理员(五):Linux Shell脚本编程之数学(Part II)

Fibonacci.sh
这个例子用来判断一个数是否是Fibonacci。

Decimal2Binary.sh
这个例子将十进制数转换为二进制数。

Binry2Decimal.sh
这个例子将二进制数转换为十进制数。

[茶话汇注]第五部分的原文链接:这里(待翻译)

上述五个部分的脚本例子我们都详细的测试过,确保其可以运行。在大部分的例子我们也提供了输出结果。相信大家在学习这些脚本的时候不会感觉困惑。如果大家还是有问题,欢迎给我们留言。

转载请注明:运维派 » Shell编程语言学习:从新手到系统管理员

0
3.0k
1