シェル三剣客


一、shellスクリプトでよく使われるコマンド:1、diffコマンド:diffコマンドは、テキストファイルの異同箇所を行単位で比較します.このコマンドでディレクトリの比較を指定すると、サブディレクトリファイルの比較操作を行わずに、ディレクトリ内の同じファイル名を持つファイルが比較されます.使用規則:
diff  [options]  target1 target2
diff file1 file2
diff direcory1 directory2

#      :
[num1,num2][a|c|d][num3,num4]
num1,num2            
a    ----add
c    ----change
d    ----delete
           ,---   
num3,num4            
2,4c2,4                                    

#  :
-b --ignore-space-change            
-B --ignore-blank-lines        
-c        ,       
-i --ignore-case           
-p:       C         ,           ;
-q --brief:       ,        
-r --recursive:         
-u                 

2,cutコマンド:cutコマンド多用と文字切り取り
cut -d               
cut -f  1,7|1-7           
cut -c  1,4|1-4          

3,uniq:対応する処理を繰り返す文字
uniq -u           
uniq -d           
uniq -c                  

4,sort:文字ソートに使用されることが多い
sort -n          
sort -r       
sort -u           
sort -o             
sort -t          
sort -k            

5,testコマンド:testコマンドと[]はtest"A"=="A"="B"と同等["A"="A"="B"]
[ "$A" == "$B" ]                        #           
[ "$A" != "$B" ]                        #       
[ "$A" -eq "$B" ]                        #  
[ "$A" -ne "$B" ]                        #   
[ "$A" -le "$B" ]                        #    
[ "$A" -lt "$B" ]                        #  
[ "$A" -ge "$B" ]                        #    
[ "$A" -gt "$B" ]                        #  
[ "$A" -ne "$B" -a "$A" -gt "$B" ]                #  1     2     1    2
[ "$A" -ne "$B" -o "$A" -gt "$B" ]              #  1     2     1    2
[ -z "$A" ]                            #          
[ -n "$A" ]                            #         
[ "file1" -ef "file2" ]                     #            ,      。               inode。      
[ "file1" -nt "file2" ]                     #    1     2 
[ "file1" -ot "file2" ]                     #    1     2 
[ -e "file" ]                           #      ,   ;
[ -f "file"  ]                          #           ,   ;
[ -S "file" ]                           #              ,   ;
[ -b "file" ]                               #            ,   ;
[ -d "file" ]                           #         ,   ;
[ -c "file" ]                           #             ,   ;

6,shellでのテキスト処理:1)grepコマンドは強力なテキスト検索ツールであり、ユーザーが指定した「モード」に基づいてターゲットテキストをマッチングチェックし、マッチングした行を印刷する
grep                    
  
        grep          root      passwd   #    root  
        grep         ^root      passwd   #   root    
        grep          root$        passwd   #   root    
        grep       -i    root       passwd   #    root  
        grep      -E    "root|ROOT" passwd   #         root  
#       :
\
\

2)sed行エディタstream editor(ストリームエディタ)は、純粋なASCIIコードのテキスト処理を操作する際に、現在処理されている行を一時バッファに格納、「パターン空間」(pattern space)とは、どの行sedがパターン条件に合致するかのみを処理する処理が条件に合致しない処理が完了した後、バッファの内容を画面に送り、次の行を処理するかを指定し、ファイルの末尾まで繰り返します.
sed対文字の処理p表示d削除a追加c置換w書き込みi挿入
pモード動作sed-n'/:/p'fstab sed-n'/UUID$/p'fstab sed-n'/^UUID/p'fstab sed-n'2,6 p'fstab sed-n'2,6!p’ fstab
dモード操作sed'/^UUID/d'/etc/fstab sed'/^#/d'/etc/fstab sed'/^$/d'/etc/fstab#はスペースで始まり、スペースでsed'1,4 d'/etc/fstab sed–n'/^UUID/!d’/etc/fstab