1、SHELL編程Find語句案例實戰
1)SHELL編程四劍客工具:Find、Grep、Sed、Awk,通過四劍客可以完成常規Linux指令無法完成或者比較復雜的功能,學好SHELL編程四劍客有助於SHELL編程能力再上一層樓。
2)SHELL編程四劍客之一的Find工具,主要是用於Linux操作系統去查找某個文件和目錄所在的位置的(絕對路徑),Find工具的語法格式:
find(工具) path(路徑) -option(參數) -action(動作); find path -option [ -print ] [ -exec -ok command ]
Path路徑:給定find工具一個大概的范圍,從哪個范圍去查找;
Option參數:按照某些特征:-name、-size、-mtime、-user;
Action動作:找到文件或者目錄之后執行的操作的動作(打印、執行);
3)SHELL編程四劍客Find工具案例操作一,基於Find工具查找Linux系統下eth0網卡配置文件所在的路徑。
find / -name eth0 find / -name ifcfg-eth0 find / -name "*eth0" find /etc/ -name "*eth0" find /etc/sysconfig/network-scripts/ -name "*eth0"
4)SHELL編程四劍客Find工具案例操作二,基於Find工具查找Linux系統下auto_mysql_backup.sh所在的路徑。
find / -name auto_mysql_backup.sh find / -name *mysql_backup*.sh
5)SHELL編程四劍客Find工具案例操作三,基於Find工具查找Linux系統下以.rpm結尾的軟件包,並且找到以mariadb命名開頭的包,排除mariadb-libs包。
find / -name "*.rpm" find / -name "mariadb*rpm" find / -name "*.rpm" -a -name "mariadb*" find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*" find / -name "*.rpm" -a -name "mariadb*" -a ! -name "mariadb-libs*
6)SHELL編程四劍客Find工具案例操作四,基於Find工具查找Linux系統下以.rpm結尾的軟件包,並且找到以mariadb命名開頭的包,排除mariadb-libs包,並且將剩余軟件包拷貝至/tmp/目錄。
for soft in `find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"`;do cp $soft /tmp/;done cp `find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"` /tmp/ \cp $(find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*") /tmp/ find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*" -exec cp {} /tmp/ \; find / -name "*.rpm" -name "mariadb*" ! -name "mariadb-libs*"|xargs -I {}cp {} /tmp/
7)SHELL編程四劍客Find工具案例操作五,查找/data/logs/目錄大於10M並且小於30M的文件,以.log結尾,並且日志文件是3天以前的,並且將其移動至/data/backup/目錄下。
find /data/logs/ -size +10M -size -30M -type f -mtime +3 -name “*.log”-exec mv {} /data/backup/ \;
8)SHELL編程四劍客Find工具案例操作六,查找當前目錄,第一級目錄深度的目錄,排除隱藏文件,並且命名以a開頭的,命令如下:
find . -maxdepth 1 -type d ! -name "\.*" -name "a*"
2、SHELL編程Sed語句案例實戰
1)SHELL編程四劍客之二的Sed工具,主要是用於Linux系統文本文件的編輯、打印的,也稱為非交互模式編輯器(vi|vim交互模式編輯器),Sed工具的語法格式:
sed -option(參數) ‘Command’(命令) file(文件對象)
Option參數:-i(修改)、-n(靜默模式)、-e(擴展)、-l、-b、-c;
Command命令:p(打印)、d(刪除)、N(多行)、G、D;
2)SHELL編程四劍客Sed工具案例操作一,基於Sed工具將list.txt文件中的用戶名root改為jfedu,命令如下:
sed s/jfedu/root/g list.txt sed 's#jfedu#root#g' list.txt sed -i 's#jfedu#root#g' list.txt sed -e '3s/2/100/g' -e '4s/3/100/g' list.txt sed '3s/2/100/g;4s/3/100/g' list.txt sed '3,$s/11/100/g' list.txt
