shell指令碼中常用的命令

2021-09-27 05:43:19 字數 3351 閱讀 6441

一,,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 以合併的方式來顯示檔案內容的不同12

3456

78910

1112

1314

1516

1718

1920

2122

2324

2,cut命令:cut命令多用與字元擷取

cut -d 指定分隔符

cut -f 1,7|1-7 指定擷取的列

cut -c 1,4|1-4 指定擷取的字元位置12

33,uniq:重複字元做相應的處理

uniq -u 顯示唯一的行

uniq -d 顯示重複的行

uniq -c 每行顯示一次並統計重複次數12

34,sort:多用於字元排序

sort -n 純數字排序

sort -r 倒序

sort -u 去掉重複數字

sort -o 輸出到指定檔案中

sort -t 指定分隔符

sort -k 指定要排序的列12

3456

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" ] #如果檔案為乙個字元特殊檔案,則為真;12

3456

78910

1112

1314

1516

1718

1920

216,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的行

#準確匹配關鍵字:

\《關鍵字

關鍵字\>

\《關鍵字\>12

3456

78910

112)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,6p』 fstab

sed -n 『2,6!p』 fstab

d模式操作

sed 『/^uuid/d』 /etc/fstab

sed 『/^#/d』 /etc/fstab

sed 『/^$/d』/etc/fstab #顯示以空格開頭,空格結尾

sed 『1,4d』/etc/fstab

sed –n 『/^uuid/!d』 /etc/fstab

shell 指令碼中常用的命令

1.顯示當前的ip ifconfig eth0 grep bcast awk f cut d f 1 2.查詢檔案裡是否含有某些字段 grep test test.txt 3.前乙個命令正確列印出來的是0 echo 4.判斷某個目錄是否存在,不存在則建立 if d test then mkdir t...

shell指令碼中常用的命令

date y m d h m s 列印年月日時分秒 echo e 033 32m color this word 033 0m 輸出時新增顏色,32m是綠色,31m是紅色 find name log type f size 1m mtime 30 perm 755 查詢到小於1m的30天內修改了的 ...

shell中常用的命令 tr命令

tr命令主要功能是轉化 引數 說明 c c 字串替換,要求字符集為ascii d刪除字元 s刪除所有重複出現字串行,只保留第乙個 即將重複出現字元壓縮為乙個字串 t刪除第一字符集較第二字符集多出的字元 引數 說明 gidit 所有數字 graph 所有可列印字元,不包括空格 lower 所有小寫字元...