第二节:思维导图学习Shell脚本编程之命令之美
生活随笔
收集整理的這篇文章主要介紹了
第二节:思维导图学习Shell脚本编程之命令之美
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章?原始出處?、作者信息和本聲明。否則將追究法律責任。http://dba10g.blog.51cto.com/764602/1607658
介紹一些常用的命令
cat命令一些用法
| 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 43 | #cat?-s命令壓縮空行 ?? [root@beijing?test]#?cat?catinfo.txt 1 2 ?? ?? 3 4 5 100 [root@beijing?test]#?cat?-scatinfo.txt 1 2 ?? 3 4 5 ?? #輸出行號 [root@beijing?test]#?ls?|?cat?-n ????1??1.txt ????2??2.txt ????3??cal.sh ????4??catinfo.txt ????5??cmd.sh ????6??date.sh ????7??func.sh ????8??index.sh ????9??menu.sh ???10??output.session ?? #-T:?tab鍵^顯示 [root@beijing?test]#?cat?catinfo.txt ????????public?class?A{ ?? ????????????????System.out.println("helloshell"); ???????} [root@beijing?test]#?cat?-Tcatinfo.txt ^Ipublic?class?A{ ?? ^I^ISystem.out.println("helloshell"); ^I} |
終端回放
| 1 2 3 4 | #所謂的終端回放,就是捕捉終端命令歷史 #可以使用script命令 script?-t?2>?timing.log?-aoutput.session #注意需要關閉終端,才會保存timing.log |
文件查找
| 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 | #區分大小寫 [root@beijing?test]#?find?.?-name"f*.sh" ./func.sh #不區分大小寫 [root@beijing?test]#?find?.?-iname"f*.sh" ./func.sh ./FUNC.SH #基于路徑查詢(其實就是對路徑進行完整匹配,不要考慮什么層級關系,把路徑當成字符串處理) [root@beijing?~]#?find?/etc?-path"etc/*sysconfig/*network" [root@beijing?~]#?find?/etc?-path"*etc/*sysconfig/*network" /etc/sysconfig/networking/profiles/default/network /etc/sysconfig/network ?? #文件類型查找 #查找文件 ?[root@beijing?test]#?find?-type?f ./out.txt ./index.sh ./cal.sh ./catinfo.txt ./func.sh #查找目錄 [root@beijing?test]#?find?-type?d . ./aaa ?? ?? 基于時間的查找(atime:訪問時間,ctime:變化時間,mtime:修改時間)。這里的變化指的是“元數據”,比如權限、用戶名什么的。 #訪問時間超過七天 find?-atime?+7 #七天前被訪問過的文件 find?-atime?7 ?? 最近七天訪問過的文件 find?-atime?-7 ?? 基于權限 find?-perm 基于大小,支持單位cwbkMG find?-size ?-size?n[cwbkMG] |
xargs
| 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 43 44 45 46 47 | #多行?換成單行 [root@beijing?test]#?cat?xargs.txt 1.txt 2.txt 3.txt 4.txt ?[root@beijing?test]#?cat?xargs.txt?|xargs 1.txt?2.txt?3.txt?4.txt ?? #單行?換成多行 [root@beijing?test]#?cat?xargs1.txt 1???????2??????3???????4???????5?6?6?8?9?10 [root@beijing?test]#?cat?xargs1.txt|xargs 1?2?3?4?5?6?6?8?9?10 [root@beijing?test]#?cat?xargs1.txt|xargs?-n?2 1?2 3?4 5?6 6?8 9?10 #指定分界符【其中1,2,3,4之間就是用tab鍵分割的) [root@beijing?test]#?cat?xargs1.txt|xargs?-n?2?-d?"\t" 1?2 3?4 5?6?6?8?9?10 ?? #測試shell,?僅僅打印參數 [root@beijing?test]#?cat?sayparam.sh #!/bin/bash ?? echo?"$*"#; ?? #模擬參數文件 [root@beijing?test]#?cat?argums.txt param1 param2 param3 ?? [root@beijing?test]#?cat?argums.txt|xargs?-n?2??sh?sayparam.sh param1?param2# param3# [root@beijing?test]#?cat?argums.txt|xargs?-n?1??sh?sayparam.sh param1# param2# param3# [root@beijing?test]#?cat?argums.txt|xargs???sh?sayparam.sh param1?param2?param3# |
排序
| 1 2 3 4 5 6 7 8 9 10 | #-k?排序鍵,從1開始 #-r:反序,就是從大到小 [root@beijing?test]#?cat?argums.txt|?sort?-r?-k?1 param3 param2 param1 [root@beijing?test]#?cat?argums.txt|?sort??-k?1 param1 param2 param3 |
分割文件
| 1 2 | split 可指定生成文件前綴,序號是按數字排列,還是字母排列,分割大小。 |
案例?批量修改某文件夾文件名稱
| 1 2 3 4 5 6 7 8 9 10 11 | #!/bin/bash for?file?in?*.txt;?do ?????????filename=${file%\.*}??#文件名,非貪婪,從右到左匹配 ?????????extention=${file##*.}#獲取后綴名,貪婪從左到右匹配 ?????????????? ?????????result=$filename\_back.$extention; ?????????mv$file?$result?2>/dev/null; ?????????if[[?$??-eq?0?]];?then ???????????????????echo"rename?$file?success" ?????????fi done |
本文出自 “簡單” 博客,請務必保留此出處http://dba10g.blog.51cto.com/764602/1607658
總結
以上是生活随笔為你收集整理的第二节:思维导图学习Shell脚本编程之命令之美的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: websocket 之入门 (一)
- 下一篇: php 图片上传预览(转)