生活随笔
收集整理的這篇文章主要介紹了
Bash shell脚本练习(一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?一、此題來源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值,進行判斷
?
?
?
?
轉載于:https://blog.51cto.com/liyaoyi/824522
總結
以上是生活随笔為你收集整理的Bash shell脚本练习(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。