Linux 第九天: 练习和作业

Linux 第九天: 练习和作业

 

 

 

编写脚本/root/bin/systeminfo.sh 显示当前主机系统信息 包括主机名 ipv4地址 操作系统版本 内核版本 CPU信号 内存大小 硬盘大小

server_ip=`ifconfig|grep'inet\b'|grep -v '127.0.0.1'|tr-s ' '|cut -d' ' -f3`
CPUmod=`lscpu|grep -i "model name:"`
Meminfo=`free -h|sed -n '2p'|tr -s ' '|cut -d' ' -f2`
DISKinfo=`fdisk -l |sed -n '2p'|sed -r 's/.*[[:space:]][0-9].*GB).*/\1/g`

echo 'hostname:' $(hostname)
echo 'hostIP:' ${server_ip}
echo 'OS version:' $(cat /etc/redhat-release)
echo 'Kernel version:' $(uname -r)
echo 'CPU:' $CPUmod
echo 'Memory:' $Meminfo
echo 'Harddisk:' $DISKinfo

 

 

编写脚本/root/bin/backup.sh 可实现每日将/etc/目录备份到/root/etcYYYY-mm-dd中

backupdir="/root/etc$(date +%F)"
cp -a /etc $backdir
echo "backup $backdir finished."

 

 

编写脚本/root/bin/disk.sh显示当前硬盘分区中空间利用率最大值

maxused=`df -h|grep '/dev/sd' |tr -s ' '|sort -nr -t' ' -k5 |head -l |cut -d' ' -f5`
echo'硬盘分区利用率最大值为:'$maxused

 

 

编写脚本/root/bin/links.sh显示正连接本主机的每个远程主机IPv4地址和连接数, 并按连接数多少排序

netstat -nt |tr -s ' '|cut -d' ' -f5|tr -cs'0-9.' '\n'|egrep'([0-9]+.){3}[0-9]+'|sort |uniq -c|sort -nr|tr -s ' ' '\t'

 

 

写一个脚本/root/bin/sumid.sh 计算/etc/passwd文件中的第10和20个用户ID之和

dir=/etc/passwd
n=10
m=20
id_10=`cat $dir|head -$n|tail -1|cut -d: -f3`
id_20=`cat $dir|head -$m|tail -1|cut -d: -f3`
num=$[id_10+id_20]

UID1=`sed -n '10p'/etc/passwd |cut -f: -f3`
UID2=`sed -n '20p'/etc/passwd |cut -d: -f3`
let Sumid=$UID1+$UID2

 

 

写一个脚本/root/bin/sumspace.sh 传递两个文件路径作为参数给脚本 计算这两个文件中所有空白行之和
File1=`grep'^$' $1|wc -l`
File2=`grep'^$' $2|wc -l`
let Sumspace=$File1+$File2
echo "the sum of $1 + $2 spacelines is $Sumspace"
unset File1
unset File2
unset Sumspace

 

 

写一个脚本/root/bin/sumfile.sh 统计/etc /var /usr 共有多少一级子目录和文件

File1=`ls -A /etc |wc -l`
File2=`ls -A /var |wc -l`
File3=`ls -A /usr |wc -l`
let Sumfile=$File1+$File2+$File3
echo "the sum is $Sumfile"
unset File1
unset File2
unset File3
unset Sumfile

 

 

写一个脚本/root/bin/argsmun.sh 接受一个文件路径作为参数 如果参数小于1 则提示用户"至少应该给一个参数" 并立即退出 如果参数个数不小于1 则显示第一个参数说指向的文件中空白行数

[[$# -lt 1]] && echo "input a file at least" ||(grep '^$'$1 |wc -l)

 

 

 

写一个脚本/root/bin/argsnum.sh 接受一个文件IPv4作为参数 测试是否可以连通 如果ping通 则提示用户"该ip地址可以访问" 如果不可ping通 则提示用户"该IP地址不可访问"

ping -w1 -c1 $1 &>/dev/null
[[$? -eq 0]] && echo "该IP地址可以访问"||echo "该IP地址不可以访问"

 

 

chmod -rw /tmp/file1 编写脚本/root/bin/per.sh 判断当前用户对/tmp/file1是否不可读不可写

[! -r $1 -a ! -w $1 ] && echo "can't r & w" || echo " can r or w"

 

 

编写脚本/root/bin/nologin.sh和login.sh 实现禁止和允许普通用户登录系统

[-e $1] && echo "you can login" || (rm -rf /home/`whoami`; echo "you can login")
[-e $1] && (rm -rf /home/`whoami`; echo "you can not login")||echo "you can login"

 

 

写一个脚本/root/bin/hostping.sh,接受一个主机的IPv4地址做为参数,先判断是否合格IP,否,提示IP格式不合法并退出,是,测试是否可连通。如果能ping通,则提示用户“该IP地址可访问”;如果不可ping通,则提示用户“该IP地址不可访问”

echo $1 | egrep -o '([0-9]|([1-9][0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.([0-9]|([1-9][0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.

([0-9]|([1-9][0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\.([0-9]|([1-9][0-9])|(1[0-9]{2})|(2[0-4][0-9])|(25[0-5]))\>'&>/dev/null
[ $? -ne  0 ] && echo "这是个不合格的IP" && exit 213
ping -w1 -c1 "$1" &>/dev/null &&  (echo "该IP地址可访问") || (echo "该IP无法访问")

 

 

计算1+2+3+…+100的值
[root@qzx ~]# seq 1 100 |tr '\n' '+' | egrep -o '.*[^+]' |bc

 

 

计算从脚本第一参数A开始,到第二个参数B的所有数字的总和,判断B是否大于A,否提示错误并退出,是则计算之

[ $2 -gt $1 ] && (seq $1 $2 |tr '\n' '+' | egrep -o '.*[^+]' |bc) || (echo "输入的数字不正确")

 

原创文章,作者:dengjian,如若转载,请注明出处:http://www.178linux.com/35731

(0)
dengjiandengjian
上一篇 2016-08-15 09:22
下一篇 2016-08-15 09:22

相关推荐

  • httpd配置支持https

    httpd配置支持https 建一台私有CA 配置httpd支持ssl协议以及使用证书 测试基于https访问的相应主机 rpm包安装的httpd https https 超文本传输安全协议(英语:Hypertext Transfer Protocol Secure,缩写:HTTPS,也被称为HTTP over TLS,HTTP over SSL或HTTP …

    Linux干货 2016-12-21
  • 马哥教育网络班22期第三周课程练习1

    1、who | awk {'print $1'} | sort | uniq  2、last | head -n1 3、awk -F":" {'print $7'} /etc/passwd |  awk '{for(i=1;i<=NF;i++)a[$i]++}EN…

    Linux干货 2016-08-29
  • linux中的几种压缩工具

    文件压缩 compress 不能自动补齐 .Z -d 解压缩 uncompress zcat X.Z > X -c 将结果打印到屏幕上,配合重定向,不会覆盖原文件,但权限会变。 -f 默认不对硬链接数为2及以上的文件压缩,加上f,强制压缩指定文件,而其他同inode的文件硬链接数减1. -v 显示详细过程。 ———&…

    2017-08-11
  • Linux下which、locate、find 命令查找文件

    在Linux下我们经常要查找某个文件,但是又不记得文件位置,可以使用一些命令来搜索,目前接触到的文件命令有以下几个 which 查看可执行文件的位置 locate 基于数据库查找文件位置 find 实时搜索文件 1、 Which   语法:which 可执行二进制文件名称   Which是通过PATH环境变量查找文件的,在PATH 指定的…

    2017-08-14
  • Linux发展及简单命令

    一 计算机的组成及其功能 冯·诺依曼提出的计算机体系结构:计算机由控制器、运算器、存储器、输入设备、输出设备五部分组成。 二 Linux的发行版 Linux发行版主要有三个分支:Debian、Slackware、Redhat。 (1)Debian:(以社区的方式运作) Ubuntu:基于Debian开发的开源Linux操作系统,主要针对桌面和服务器; Lin…

    2018-03-02
  • 电子眼find

     1、摩根定律。         话不多说,先上图。          如图:A和B交集为3    A = 4 + 3  &nbs…

    Linux干货 2016-08-16