5个Shell脚本Linux新手学习Shell编程 - 第二部分

本文旨在让您了解使用脚本语言与操作系统的交互。我们试图涵盖多彩脚本,图案绘制,

要学习一些你需要做的事,而不必担心失败。我相信实用性,因此将陪伴你到脚本语言的实践世界。
学习基本Shell脚本

学习基本Shell脚本

本文是第一篇文章的延伸理解Linux Shell和基本Shell脚本-第一部分 ,在这里我们给您脚本的味道,持续的,我们不会让你失望的这篇文章。

脚本1:绘制特殊模式

#!/bin/bash
MAX_NO=0
echo -n "Enter Number between (5 to 9) : "
read MAX_NO
if ! [ $MAX_NO -ge 5 -a $MAX_NO -le 9 ] ; then
echo "WTF... I ask to enter number between 5 and 9, Try Again"
exit 1
fi
clear
for (( i=1; i<=MAX_NO; i++ )) do     for (( s=MAX_NO; s>=i; s-- ))
do
echo -n " "
done
for (( j=1; j<=i;  j++ ))     do      echo -n " ."      done     echo "" done ###### Second stage ###################### for (( i=MAX_NO; i>=1; i-- ))
do
for (( s=i; s<=MAX_NO; s++ ))
do
echo -n " "
done
for (( j=1; j<=i;  j++ ))
do
echo -n " ."
done
echo ""
done
echo -e "\n\n\t\t\t Whenever you need help, Howtoing.com is always there"
最上面的“ 关键词 ”将已知的你,其中大部分是自我解释。 例如,MAX设置变量的最大值,为是一个循环并在循环内什么沾到连连执行直到循环是有效的输入的给定值。
示例输出
[root@howtoing ~]# chmod 755 Special_Pattern.sh
[root@howtoing ~]# ./Special_Pattern.sh
Enter Number between (5 to 9) : 6
.
. .
. . .
. . . .
. . . . .
. . . . . .
. . . . . .
. . . . .
. . . .
. . .
. .
.
Whenever you need help, Howtoing.com is always there
如果你对任何编程语言有点了解,学习上述脚本并不困难,即使你是新来的计算,编程和Linux,也不会很难。

下载Special_Pattern.sh

脚本2:创建多彩脚本

谁说,Linux是无色枯燥,下面的代码保存到什么[ ] SH,使其可执行文件并运行它,不要忘了告诉我是怎么回事,你觉得你能达到什么,什么地方实现它。
#!/bin/bash
clear 
echo -e "33[1m Hello World"
# bold effect
echo -e "33[5m Blink"
# blink effect
echo -e "33[0m Hello World"
# back to normal
echo -e "33[31m Hello World"
# Red color
echo -e "33[32m Hello World"
# Green color
echo -e "33[33m Hello World"
# See remaining on screen
echo -e "33[34m Hello World"
echo -e "33[35m Hello World"
echo -e "33[36m Hello World"
echo -e -n "33[0m"
# back to normal
echo -e "33[41m Hello World"
echo -e "33[42m Hello World"
echo -e "33[43m Hello World"
echo -e "33[44m Hello World"
echo -e "33[45m Hello World"
echo -e "33[46m Hello World"
echo -e "33[0m Hello World"
注意 :现在不要理会颜色代码,那些对你很重要将在你的舌头,渐渐地。 警告 :您的终端可能没有闪烁的设施。
示例输出
[root@howtoing ~]# chmod 755 Colorfull.sh
[root@howtoing ~]# ./Colorfull.sh
Hello World
Blink
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World
Hello World

下载Colorfull.sh

脚本3:加密文件/目录

该脚本将加密文件 (记得吗? 目录 / 驱动器 / ...。一切都被视为文件,在Linux中)。 上述脚本的当前限制是它不使用TAB支持名称的自动完成。 此外,您需要将要加密的脚本和文件放在同一个文件夹中。 您可能需要安装“ 的pinentry桂 ”,使用yumapt包,如果需要的话。
[root@midstage ~]# yum install pinentry-gui
[root@midstage ~]# apt-get install pinentry-gui
克里特岛一个名为“Encrypt.sh”的文件放在下面的脚本,使其可执行文件并运行它,如图所示。
#!/bin/bash
echo "Welcome, I am ready to encrypt a file/folder for you"
echo "currently I have a limitation, Place me to thh same folder, where a file to be 
encrypted is present"
echo "Enter the Exact File Name with extension"
read file;
gpg -c $file
echo "I have encrypted the file successfully..."
echo "Now I will be removing the original file"
rm -rf $file

示例输出

[root@howtoing ~]# chmod 755 Encrypt.sh
[root@howtoing ~]# ./Encrypt.sh
Welcome, I am ready to encrypt a file/folder for you
currently I have a limitation, Place me to the same folder, where a file to be
encrypted is present
Enter the Exact File Name with extension
package.xml
┌─────────────────────────────────────────────────────┐
│ Enter passphrase                                    │
│                                                     │
│                                                     │
│ Passphrase *******_________________________________ │
│                                                     │
│       <OK>                             <Cancel>     │
└─────────────────────────────────────────────────────┘
Please re-enter this passphrase
┌─────────────────────────────────────────────────────┐
│ Please re-enter this passphrase                     │
│                                                     │
│ Passphrase ********________________________________ │
│                                                     │
│       <OK>                             <Cancel>     │
└─────────────────────────────────────────────────────┘
I have encrypted the file successfully...
Now I will be removing the original file
</pre>
GPG -c:这将加密您的文件,并使用一个密钥又名密码 。在这个学习过程中,你从来没有想过实际的学习过程可能会那么容易。所以在加密文件后你需要什么?明显!解密文件。我想让你 - 学习者,读者自己写解密脚本,不要担心我不会离开你在中间,我只是希望你从这篇文章中获得一些东西。 :GPG -d filename.gpg> 文件名是您需要在解密的脚本来实现的。如果成功,你可以在评论中发布你的脚本,如果不是你可以请我写你的脚本。

下载Encrypt.sh

脚本4:检查服务器利用率

检查服务器利用率是管理员的重要任务之一,良好的管理员是知道如何自动执行日常任务的人员。以下是将提供有关您的服务器的许多此类信息的脚本。自己检查。
#!/bin/bash
date;
echo "uptime:"
uptime
echo "Currently connected:"
w
echo "--------------------"
echo "Last logins:"
last -a |head -3
echo "--------------------"
echo "Disk and memory usage:"
df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}'
free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}'
echo "--------------------"
start_log=`head -1 /var/log/messages |cut -c 1-12`
oom=`grep -ci kill /var/log/messages`
echo -n "OOM errors since $start_log :" $oom
echo ""
echo "--------------------"
echo "Utilization and most expensive processes:"
top -b |head -3
echo
top -b |head -10 |tail -4
echo "--------------------"
echo "Open TCP ports:"
nmap -p- -T4 127.0.0.1
echo "--------------------"
echo "Current connections:"
ss -s
echo "--------------------"
echo "processes:"
ps auxf --width=200
echo "--------------------"
echo "vmstat:"
vmstat 1 5
示例输出
[root@howtoing ~]# chmod 755 Server-Health.sh
[root@howtoing ~]# ./Server-Health.sh
Tue Jul 16 22:01:06 IST 2013
uptime:
22:01:06 up 174 days,  4:42,  1 user,  load average: 0.36, 0.25, 0.18
Currently connected:
22:01:06 up 174 days,  4:42,  1 user,  load average: 0.36, 0.25, 0.18
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
howtoing   pts/0    116.72.134.162   21:48    0.00s  0.03s  0.03s sshd: howtoing [priv]
--------------------
Last logins:
howtoing   pts/0        Tue Jul 16 21:48   still logged in    116.72.134.162
howtoing   pts/0        Tue Jul 16 21:24 - 21:43  (00:19)     116.72.134.162
--------------------
Disk and memory usage:
Free/total disk: 292G / 457G
Free/total memory: 3510 / 3838 MB
--------------------
OOM errors since Jul 14 03:37 : 0
--------------------
Utilization and most expensive processes:
top - 22:01:07 up 174 days,  4:42,  1 user,  load average: 0.36, 0.25, 0.18
Tasks: 149 total,   1 running, 148 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.0%sy,  0.0%ni, 99.3%id,  0.6%wa,  0.0%hi,  0.0%si,  0.0%st
PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1 root      20   0  3788 1128  932 S  0.0  0.0   0:32.94 init
2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd
3 root      RT   0     0    0    0 S  0.0  0.0   0:14.07 migration/0
:我已经给你,让在终端本身的输出,有关获取输出以供将来参考文件如何脚本。使用重定向操作符实现它。
  1. “>”:重定向操作导致的文件创建,如果它确实存在,其内容将被覆盖。
  2. “>>”:当你使用>>时,所添加的信息,而不是取代它。
  3. '>>'是安全的,因为相比于'>'

下载Server-Health.sh

脚本5:检查磁盘空间并发送电子邮件警报

如何得到一个电子邮件时在分隔磁盘使用大于允许的最大,这是很少的修改Web管理员生命的救星脚本。
MAX=95
EMAIL=USER@domain.com
PART=sda1
USE=`df -h |grep $PART | awk '{ print $5 }' | cut -d'%' -f1`
if [ $USE -gt $MAX ]; then
echo "Percent used: $USE" | mail -s "Running out of disk space" $EMAIL
fi
:与您的用户名删除“USER”。 您可以使用“ 邮件 ”命令,使用检查邮件。

下载Check-Disk-Space.sh

脚本编写和编程超越了界限,任何东西和一切都可以根据需要实现。这就是现在,在我的下一篇文章中,我会给你一些不同的口味的脚本。直到然后保持冷静和调整,享受。