简单shell脚本习题

习题1

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

答案

#!/bin/bash  IPADDR=$(ifconfig | head -2 |tail -1 |awk {'print $2'})
SYSINFO=$(cat /etc/redhat-release)
KERNEL=$(uname -r)
CPU=$(lscpu | head -13 |tail -1 |awk {'print $2,$3,$4'})
Mem=$(free -h | awk {'print $2'} | head -2 | tail -1) echo "hostname is: `hostname`" echo "ipaddress is: ${IPADDR}" echo "systerm version is: ${SYSINFO}" echo "kernel version is: ${KERNEL}" echo "CPU is: ${CPU}" echo "Memory size is: ${Mem}" echo "Hard disk information:" df -h

习题2

编写脚本/root/bin/backup.sh,可实现每日将/etc/目录备份到/apps/backup/etc-YYYY-mm-dd.tar.gz。

答案

#!/bin/bash  [[ -d /apps/backup ]] ||mkdir -p /app/backup cd /apps/backup
tar -zcvf etc-`date +%F`.tar.gz /etc/ echo "backup is complete" 

习题3

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

答案

#!/bin/bash  percent=$(df -h | awk {'print $5,$6'} |sort -nr |awk {'print $1'}|head -1)
name=$(df -h | awk {'print $5,$6'} |sort -nr |awk {'print $2'}|head -1) echo "The most useful harddisk is ${name},has used ${percent}" 

习题4

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

答案

#!/bin/bash  w |grep -v -e "FROM" -e "user" -e ":0\>" |awk {'print $1,$3'} |uniq -c |sort -nr

习题5

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

答案

#!/bin/bash  ID1=$(head -10 /etc/passwd | tail -1 |cut -d":" -f3)
ID2=$(head -20 /etc/passwd | tail -1 |cut -d":" -f3) let sum=$ID1+$ID2 echo "第十个用户ID为${ID1},第二十个用户ID为${ID2},其ID和为${sum}" 

习题6

编写脚本/root/bin/sumspace.sh,传递两个文件路径作为参数给脚本,计算这两个文件中所有空白行之和。

答案

#!/bin/bash/ [ ! -e $1 ] && echo "无${1}文件" && exit 1 [ ! -e $2 ] && echo "无${2}文件" && exit 2 file1=$(cat $1 |grep "^$" |wc |tr -s " " |awk '{print $1}')
file2=$(cat $2 |grep "^$" |wc |tr -s " " |awk '{print $1}') let sum=$file1+$file2 echo "第一个文件为$1,第二个文件为$2,总计空行数量为$sum"

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

(2)
zerozero
上一篇 2017-04-10 21:27
下一篇 2017-04-10 22:38

相关推荐

  • day6总结

    主要内容: useradd与usermod对比 groupadd与groupmod对比 passwd与chage对比 gpasswd与groupmems对比 切换用户 chown与chgrp用法 一般权限与特殊权限 chmod用法   useradd创建用户的初始信息存放在/etc/login.defs和/etc//default/useradd文…

    系统运维 2016-08-08
  • 常见HTTP code大全

    1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。 代码 说明 100 (继续) 请求者应当继续提出请求。服务器返回此代码表示已收到请求的第一部分,正在等待其余部分。  101 (切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换。 2xx (成功)表示成功处理了请求的状…

    Linux干货 2016-09-19
  • 管道,用户组管理

    管道 |          把左边的命令执行结果输送到右边的命令作为参数执行,可以多管道多任务执行     这就是linux的哲学思想之一,链接程序,共同完成复杂任务     错误输出默认不能通过管道…

    Linux干货 2016-08-04
  • N22-第七周作业

    1、创建一个10G分区,并格式为ext4文件系统;   (1) 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;   (2) 挂载至/data/mydata目录,要求挂载时禁止程序自动运行,且不更新文件的访问时间戳; 在扩展分区/dev/sda4下新建一个10G的分…

    Linux干货 2016-10-25
  • samba

    Samba 简介:      Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块 ,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。…

    系统运维 2016-11-01
  • X86平台系统启动流程 (Blog 9)

    POST –> BootSeqence(BIOS) –> Bootloader(MBR) –> Kernel(initrd) –> init(/etc/inittab)

    2017-11-27

评论列表(1条)

  • renjin
    renjin 2017-04-12 12:03

    虽然内容不多,但能够给人眼前一亮的感觉,总结了bash脚本的练习。排版非常好,内容要是再多一些就更好了。