简单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

相关推荐

  • Linux文件查找之find秘笈

    前言     Linux的基本特点之一是一切皆文件,在系统管理过程中难免会需要查找特定类型的文件,那么问题来了:如何进行有效且准确的查找呢?本文将对Linux系统中的文件查找工具及用法进行详细讲解。 常用工具对比     常用的文件查找工具主要有locate(非实时查找)和find(实时查找)。locate查找依赖于索…

    2015-03-23
  • 马哥教育网络第21期-第十三周课程练习

    1、建立samba共享,共享目录为/data,要求:(描述完整的过程)   1)共享名为shared,工作组为magedu;   2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; &n…

    Linux干货 2016-12-26
  • CentOS上配置rsyslog客户端用以远程记录日志

    rsyslog是一个开源工具,被广泛用于Linux系统以通过TCP/UDP协议转发或接收日志消息。rsyslog守护进程可以被配置成两种环境,一种是配置成日志收集服务器,rsyslog进程可以从网络中收集其它主机上的日志数据,这些主机会将日志配置为发送到另外的远程服务器。rsyslog的另外一个用法,就是可以配置为客户端,用来过滤和发送内部日志消息到本地文件…

    Linux干货 2015-02-14
  • 程序包管理的前端工具YUM及案例一二

    程序包管理前端工具–YUM        yum:yellowdog update modifier        yum工具为CS架构 yum仓库(yum repository):yum repo   &n…

    Linux干货 2016-08-24
  • vim简单操作

    vim第一讲 光标在屏幕文本中的移动既可以用箭头键,也可以使用 hjkl 字母键。 h (左移) j (下行) k (上行) l (右移) 欲进入 Vim 编辑器(从命令行提示符),请输入:vim 文件名 <回车> 欲退出 Vim 编辑器,请输入 <ESC> :q! <回车> 放弃所有改动。 或者输入 <ESC&gt…

    Linux干货 2017-07-29
  • gdisk用法

    gdisk用法   gdisk  – Interactive GUID partition table (GPT) manipulator GPT  fdisk (aka gdisk) is a text–mode menu–driven program for creation and ma…

    Linux干货 2017-04-24

评论列表(1条)

  • renjin
    renjin 2017-04-12 12:03

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