设为首页 收藏本站
查看: 1076|回复: 0

Bash shell脚本练习(一)

[复制链接]

尚未签到

发表于 2018-8-19 14:02:13 | 显示全部楼层 |阅读模式
  一、此题来源51cto linux论坛版
  

  用户输入A;B;C;D;E;F;G
  输入A的话就查看/etc/passwd最后5个系统用户,只要显示用户名和UID就行了,其他不要
  输入B的话就显示系统开机时间多久了
  输入C的话就判断当前磁盘根目录使用情况是否超过50%,如果超过50%就显示“disk space is used over 50%”;如果没超过50%就显示“disk space is user below 50%”
  输入D的话就显示出系统当前处于LISTEN状态的PID进程程序名称,以“program-name(pid)”这种形式显示。
  输入E的话获取系统的IP和掩码,以"IP/NETMASK"形式显示
  输入F的话添加系统用户,完了后添加该用户密码(记得给以提示操作)
  输入G的话显示系统使用率最多的10条命令,还有使用的次数
  还有一点,执行脚本的时候要说清楚下ABCDEFG各个选项的作用!
  如果输入其他非ABCDEFG选项的错误选项,就显示“your input is wrong”消息
  


  • [root@shell ~/shell]# cat test.sh
  • #!/bin/bash

  • read -p "A B C D E F G:" u


  • case $u in
  •         [aA])
  •                 tail -5 /etc/passwd | awk -F: '{print $1,$3}'
  •         ;;
  •         [bB])
  •                 echo "你的系统运行了:"`uptime | awk '{print $3}' | sed 's/\,//'`
  •         ;;
  •         [cC])
  •         User=`df | grep "/$" | awk '{print $5}'| sed 's/%//'`

  •         if [ "$User" -gt 50 ]; then

  •                 echo "disk space is used over 50%"

  •         else

  •                 echo "disk space is user below 50%"
  •         fi
  •         ;;
  •         [dD])
  •                 netstat -tulp | grep "LISTEN" | awk '{print $7}' | awk -F/ '{print $2"("$1")"}'
  •         ;;
  •         [eE])
  •                 ip=`ifconfig eth0 | grep "inet addr"| awk '{print $2}' | awk -F: '{print $2}'`
  •                 Mask=`ifconfig eth0 | grep "Mask"| awk '{print $4}' | awk -F: '{print $2}'`
  •                 echo "系统IP:" $ip\/$Mask
  •         ;;
  •         [fF])
  •                 read -p "please input you username:" username
  •                 read -p "please input you password:" password

  •                 useradd $username
  •                 echo "$password" | passwd --stdin $username
  •                 echo "用户建立完成"
  •         ;;
  •         [gG])
  •                 cat ~/.bash_history | sort | uniq -c | sort -nk 1 | tail
  •         ;;
  •         *)
  •                 echo "you input is wrong"

  • esac
  

  二、判断主机类型
  


  • #!/bin/bash

  • ip="192.168.209."
  • LOG="/tmp/ip.log"
  • for i in `seq 1 254`
  • do

  •         ping -c 2 "$ip$i">/tmp/log.txt

  •         if [ $? -ne 0 ]; then
  •                 continue
  •         fi

  •         okip=`cat /tmp/log.txt | grep ttl |awk -F '[: =]' '{print $4}'|sort|uniq `
  •         ttl=`cat /tmp/log.txt | grep ttl | awk -F '[: =]' '{print $9 }'|uniq`
  •         if [ $ttl -eq 64 ]; then
  •                 echo "check $okip is linux"
  •         elif [ $ttl -eq 128 ]; then
  •                 echo "check $okip is windows"
  •         else
  •                 echo "other"
  •         fi
  • done
  

  判断原理:根据ping返回ttl值,进行判断



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-553921-1-1.html 上篇帖子: linux-shell scripts 脚本的初步认识 下篇帖子: Linux下shell与子shell及执行Script的几种方式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表