1.编写脚本/root/bin/systeminfo.sh,显示当前主机系统信息,包括主机名,IPv4地址,操作系统版本,内核版本,cpu型号,内存大小,硬盘大小。 #!/bin/bash # 显示电脑硬件信息 echo "主机名: $(hostname)" echo "IPv4地址: $(ifconfig | head -n2 |tail -n1 |tr -s " " ":"| cut -d":" -f3)" echo "操作系统版本:$(cat /etc/redhat-release)" echo "内核版本: $(uname -r)" echo "CPU型号: $(cat /proc/cpuinfo|grep "model name"|uniq -c|cut -d":" -f2)" echo "内存大小: $(free -m | head -n2 |tail -n1|tr -s " " ":"|cut -d":" -f2)" echo "硬盘大小: $(fdisk -l | grep "GB"|cut -d":" -f2|cut -d"," -f1)" 2.编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中 #!/bin/bash cp -r /etc/ /root/etc"$(date +%F)" 3.编写脚本/root/bin/disk.h,显示当前硬盘分区中空间利用率最大的值 #!/bin/bash max=$(df |tr -s " " ":"|cut -d ":" -f5|egrep -o "[[:digit:]]"|sort -nr|head -n1) echo "当前硬盘分区中空间利用率最大的值为: $max" 4.编写脚本/root/bin/links.sh,显示正连接本主机的每个远程主机的IPv4地址和连接数,并按连接数从大到小排序 #!/bin/bash links=$(netstat -tan| grep "^[t]|[u]"|tr -s " " ":"|cut -d":" -f6|uniq -c|sort -nr|egrep "<(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"|tail -n1) echo "连接数和IP地址分别为:$links" exit 0 5.编写脚本/root/bin/sumid.sh,计算etc/passwd文件中的第十个用户个第二十个用户的ID之和 #!/bin/bash usera=$(cat -n /etc/passwd | head |tail -n1|cut -d":" -f3) echo "id为10的uid:$usera" userb=$(cat -n /etc/passwd | head -n20|tail -n1|cut -d":" -f3) echo "id为20的uid:$userb" # userall=$usera+$userb let usera=$usera+$userb echo "id和为: $usera" exit 0 6.编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和。 #!/bin/bash a=$(cat $1|grep "^[[:space:]]$"|wc -l) b=$(cat $2|grep "^[[:space:]]$"|wc -l) #let a=$a+$b let c=$a+$b echo "$1,$2两个文件的空白行之和为$c" exit 0 7.编写脚本/root/bin/sumfile.sh,统计/etc,./var,/usr目录中共有多少个一级子目录和文件 #!/bin/bash ef=$(ls /etc/ | grep ".[:]$"|wc -l) ed=$(ls /etc/ | grep -v ".[:]$"| grep -v "^[[:space:]]$"|wc -l) vf=$(ls /var/* | grep ".[:]$"|wc -l) vd=$(ls /var/ | grep -v ".[:]$"| grep -v "^[[:space:]]$"|wc -l) uf=$(ls /usr/* | grep ".[:]$"|wc -l) ud=$(ls /usr/ | grep -v ".[:]$"| grep -v "^[[:space:]]$"|wc -l) echo "/etc目录中一共有$ef个一级子目录,$ed个文件" echo "/var目录中一共有$vf个一级子目录,$vd个文件" echo "/usr目录中一共有$uf个一级子目录,$ud个文件" 8.写一个生成脚本的脚本,/root/bin/createsh.sh当执行如/root/bin/createsh.sh test .sh时,会自动在/root/bin下新建一个名为test.sh的新文件,该文件会自动给上执行权限,同时自动在文件头上加上#!及注释信息。注释信息如下: #!/bin/bash # ------------------------------------------ # Filename: test.sh(此处会根据文件名自动更换) # Revision: 1.0 # Date: 2017-01-22(此处会自动变换为当前日期) # Author: Nanyibo # Email: nanyibo@gmail.com # ------------------------------------------ # Copyright: 2017 nanyibo # License: GPL 之后,自动使用vim打开,等待用户开始编写脚本正文 #!/bin/bash touch /root/bin/$1 chmod +x /root/bin/$1 echo "#!/bin/bash # ------------------------------------------ # Filename: $1(此处会根据文件名自动更换) # Revision: 1.0 # Date: $(date +%F)(此处会自动变换为当前日期) # Author: xiaoyu # Email: 851812316@qq.com # ------------------------------------------ # Copyright: 2018 xiaoyu # License: GPL" > /root/bin/$1 vim /root/bin/$1