linux 运维shell习题
生活随笔
收集整理的這篇文章主要介紹了
linux 运维shell习题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1. linux如何掛在windows下的共享目錄?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #匿名共享 [root@node2?~]#?mount.cifs?//192.168.174.1/isos?/media/ [root@node2?media]#?ls CentOS-6.8-x86_64-bin-DVD1.iso?????????????????????????????ubuntu-16.04.2-desktop-amd64.iso CentOS-7-x86_64-Everything-1511.iso????????????????????????win_7激活工具.exe coreos_production_iso_image.iso????????????????????????????系統映像WindowsServer2003SP2EnterpriseEdition.iso SW_DVD5_Win_Pro_7w_SP1_64BIT_ChnSimp_-2_MLF_X17-59526.iso #認證共享 [root@node2?/]#?umount?/media/ [root@node2?/]#?cd?/media/ [root@node2?media]#?ls [root@node2?media]#?cd?.. [root@node2?/]#?mount.cifs?//192.168.174.1/isos?/media/?-o?username=ftp1 Password?for?ftp1@//192.168.174.1/isos:??********* [root@node2?/]#?cd?/media/ [root@node2?media]#?ls CentOS-6.8-x86_64-bin-DVD1.iso?????????????????????????????ubuntu-16.04.2-desktop-amd64.iso CentOS-7-x86_64-Everything-1511.iso????????????????????????win_7激活工具.exe coreos_production_iso_image.iso????????????????????????????系統映像WindowsServer2003SP2EnterpriseEdition.iso SW_DVD5_Win_Pro_7w_SP1_64BIT_ChnSimp_-2_MLF_X17-59526.iso [root@node2?media]# |
2.使用for循環在/oldboy目錄下通過隨機小寫10個字母加固定字符串oldboy批量創建10個html文件,名稱例如為:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@localhost?~]#?sh?create_html.sh? [root@localhost?~]#?ls?/oldboy/ bdjcfhebff_oldboy.html??dffgcabcci_oldboy.html??fgjeaafbaf_oldboy.html??iadfffigib_oldboy.html bjggfdaafa_oldboy.html??dfhbffaaaa_oldboy.html??gfbabcadjc_oldboy.html cbdeaacfdd_oldboy.html??efeaffhgab_oldboy.html??hbcdjicacg_oldboy.html [root@localhost?~]#?cat?create_html.sh? #!/bin/bash for?i?in?{1..10} do ????name=`echo?$RANDOM|md5sum|cut?-c?1-10?|tr?'[0-9]'?'[a-z]'` ????touch?/oldboy/"$name"'_oldboy.html' done [root@localhost?~]# |
3.請使用兩種方法將上題的oldboy改成oldgirl并將html該為HTML。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #方法一 [root@localhost?~]#?sh?modify_html.sh? [root@localhost?~]#?ll?/oldboy/ total?0 -rw-r--r--?1?root?root?0?Jul?27?19:47?bdjcfhebff_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?bjggfdaafa_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?cbdeaacfdd_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?dffgcabcci_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?dfhbffaaaa_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?efeaffhgab_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?fgjeaafbaf_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?gfbabcadjc_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?hbcdjicacg_oldgirl.HTML -rw-r--r--?1?root?root?0?Jul?27?19:47?iadfffigib_oldgirl.HTML [root@localhost?~]#?cat?modify_html.sh? #!/bin/bash cd?/oldboy/ for?name?in?`ls` do ????x=`echo?$name?|sed?'s/html$/HTML/g'` ????y=`echo?$x?|?sed?'s/boy/girl/g'` ????mv?"$name"?"$y" done [root@localhost?~]# #方法二 [root@localhost?~]#?cat?modify_html_2.sh #!bin/bash cd?/oldboy/ rename?'html'?'HTML'?* rename?'boy'??'girl'?* [root@localhost?~]# |
4.批量創建10個賬號oldboy01-oldboy10 密碼為隨機8個字符串。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | [root@localhost?~]#?sh?useradd_batch.sh Changing?password?for?user?oldboy01. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy02. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy03. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy04. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy05. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy06. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy07. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy08. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy09. passwd:?all?authentication?tokens?updated?successfully. Changing?password?for?user?oldboy10. passwd:?all?authentication?tokens?updated?successfully. [root@localhost?~]#?cat?useradd_batch.sh? #!/bin/bash for?i?in?{01..10} do ????PassWord=`echo?$RANDOM|md5sum|cut?-c?1-8` ????UserName='oldboy'"$i" ????useradd?-M?$UserName ????echo?$PassWord?|passwd?--stdin?$UserName done [root@localhost?~]#?grep?'oldboy'?/etc/passwd oldboy01:x:1000:1000::/home/oldboy01:/bin/bash oldboy02:x:1001:1001::/home/oldboy02:/bin/bash oldboy03:x:1002:1002::/home/oldboy03:/bin/bash oldboy04:x:1003:1003::/home/oldboy04:/bin/bash oldboy05:x:1004:1004::/home/oldboy05:/bin/bash oldboy06:x:1005:1005::/home/oldboy06:/bin/bash oldboy07:x:1006:1006::/home/oldboy07:/bin/bash oldboy08:x:1007:1007::/home/oldboy08:/bin/bash oldboy09:x:1008:1008::/home/oldboy09:/bin/bash oldboy10:x:1009:1009::/home/oldboy10:/bin/bash [root@localhost?~]# |
5.寫一個腳本,判斷192.168.174.0/24 有多少在線IP?
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | [root@localhost?~]#?sh?ping_batch_2.sh UP:?4?DOWN:?250 #單進程的ping耗時太長 #本來想用命名管道的,但是沒有成功 #借助一個文件來實現并發的ping,但是這個文件沒有加鎖,這樣不安全 [root@localhost?~]#?cat?ping_batch_2.sh?? #!/bin/bash ip=192.168.174 UP=0 DOWN=0 for?i?in?{1..254} do ????IP="$ip"'.'"$i" ????ping?-c?3?$IP?>/dev/null?2>&1?&&?echo?"1?$IP"?>>?.npipe_ping?||?echo?"0?$IP"?>>?.npipe_ping?& done wait cat?.npipe_ping?|awk?'{host[$1]++;}?END{print?"UP:?"host[1],"DOWN:?"host[0];}' rm?-f?.npipe_ping [root@localhost?~]# |
6.請用兩種方法實現for循環打印下面這句話字母數不大于 6的單詞。
| 1 | I?am?oldboy?teacher?welcome?to?oldboy?training?class |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | [root@localhost?~]#?x="I?am?oldboy?teacher?welcome?to?oldboy?training?class" [root@localhost?~]#?echo?$x?|?awk?'END{for(i=1;i<=NF;i++){if(length($i)<=6){print?$i}}}' I am oldboy to oldboy class [root@localhost?~]#?for((i=1;;i++));do?split=`echo?$x|cut?-d"?"?-f$i`;if?[?"$split"?==?""?];then?break;fi;?echo?$split;done I am oldboy teacher welcome to oldboy training class |
7.提取文件test.log中FAILD與SUCCESSFUL的字符但不包括DONE的行,然后以:為隔符,提取第三列
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | [root@localhost?~]#?cat?text.log? FAILD:SUCCESSFUL:DONE:CRITICAL FAILD:SUCCESSFUL:NO:GOOD FAILD:NO:DO:QINGYUN SUCCESSFUL:DONE:CRITICAL::CRITICAL [root@localhost?~]#?cat?text.log?|grep?-E?"(SUCCESSFUL|FAILD)"|grep?-v?"DONE"?|cut?-d":"?-f3 NO DO [root@localhost?~]#?cat?text.log?|grep?-E?"(SUCCESSFUL|FAILD)"|grep?-v?"DONE"?|awk?-F':'?'{print?$3}' NO DO [root@localhost?~]# |
8.mysql多實例啟動腳本
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | [root@localhost?~]#?cat?mysql_muti.sh #!/bin/bash PORT=(3306?3307) user=root passwd=12345678 function?start()?{ ??for?port?in?${PORT[*]} ??do ????mysqld_safe?--defaults-file="/data/$port/conf/my.cnf"?&>/dev/null?& ????[?$??-eq?0?]?&&?{?echo?-e?"mysql:$port?Start?\033[32m?Success...?\033[0m";?}?||?echo?-e??"mysql:$port?Start?\033[33m?Failed...?\033[0m" ??done } function?stop()?{ ??for?port?in?${PORT[*]} ??do ????mysqladmin?-u$user?-p$passwd?-S?"/data/$port/mysql.sock"?shutdown?&>/dev/null? ????[?$??-eq?0?]?&&?echo??-e?"mysql:$port?Stop?\033[32m?Success...?\033[0m"?||?echo?-e??"mysql:$port?Stop?\033[33m?Failed...\033[0m" ??done } function?restart()?{ ??stop? ??sleep?3 ??start? } case?$1?in start) ????start ;; stop) ????stop ;; restart) ????restart ;; *) ????full_path=`cd?$(?dirname?$0)?&&??pwd` ????echo?"Use:?sh?$full_path/`basename?$0`?start|stop|restart" ;; esac |
9.shell 簡單跳板機
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | [root@localhost?~]#?cat?signal_trapper.sh? #!/bin/bash function?trapper() { ??trap?''?INT?EXIT?TSTP?TERM?HUP? } function?describe() { ??echo?' ????1)?k8s_2 ????2)?exit ' ??read?-p?'??Choice:?'?C ??return?$C } function?action() { ??case?$1?in ??1) ??ssh?`whoami`@'192.168.174.131' ??;; ??2) ???exit? ??;; ??*) ??clear ??;; ??esac } function?main()?{ while?true do ????? ????trapper ????describe ????action?$? done } if?[?$UID?-ne?0?] then main fi |
10.統計最常用的命令
| 1 | [root@localhost?~]#??history?|?awk?'{CMD[$2]++;count++;}?END?{?for(a?in?CMD)?{print?CMD[a]?"?"?CMD[a]/count*100?"%?"?a}}'?|grep?-v?"./"|column?-c3?-s?"?"?-t|sort?-nr?|nl|head?-10 |
本文轉自 chaunceyjiang? 51CTO博客,原文鏈接:http://blog.51cto.com/cqwujiang/1952097,如需轉載請自行聯系原作者 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀
總結
以上是生活随笔為你收集整理的linux 运维shell习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 正则表达式grep sed awk总结
- 下一篇: spring整合redis缓存