shell中的常用命令

1.diff命令

1)diff命令作用

diff命令是用來比較兩個文件或目錄的不同

diff [options] target1 target2
diff file1 file2
diff direcory1 directory2

在這裏插入圖片描述
在這裏插入圖片描述

2)diff在比較文件過程中結果讀取方式

[num1 , num2][a|c|d][num3,num4]
num1,num2 表示在第一個文件中的行數
a 表示添加 ----add
c 表示更改 ----change
d 表示刪除 ----delete
< 表示第一個文件中的內容
> 表示第二個文件中的內容
分割線
num3,num4 表示在第二個文件中的行數

測試:
在這裏插入圖片描述

[root@shell_example mnt]# diff file1 file2
3c3,4    ##改變第一個文件中的第三行才能匹配第二個文件中的第三行和第四行
< 2 		##第一個文件中的第三行內容
---
> 02		##第二個文件中的第三行和第四行內容
> 27

3)diff在比較目錄過程中結果的讀取

Only in directory/:filename
directory 表示在哪個目錄中
filename 表示不同的那個文件

測試:

在這裏插入圖片描述

[root@shell_example mnt]# diff test1/ test2/
Only in test1/: hello     ##不同的文件爲test1目錄下的hello文件

4)diff中常用的參數

-b 或 --ignore-space-change 不檢查空格字符的不同
-B 或 --ignore-blank-lines 不檢查空白行
-c 顯示全部內文,並標出不同之處
-i 或 --ignore-case 不檢查大小寫的不同
-p 若比較的文件爲 C 語言的程序碼文件時,顯示差異所在的
函數名稱
-q 或 --brief 僅顯示有無差異,不顯示詳細的信息
-r 或 --recursive 比較子目錄中的文件
-u 以合併的方式來顯示文件內容的不同

示例:

ddif -b file1 file2    ##不檢查空格字符的不同

在這裏插入圖片描述

diff -B file1 file2      ##不檢查空白行

在這裏插入圖片描述

diff   -c  file1 file2         ##顯示全部內文,並標出不同之處
*** file1	2019-02-28 01:02:00.274991808 -0500   ##***表示的文件爲file1
--- file2	2019-02-28 01:01:20.320991808 -0500   ##---表示的文件爲file2
***************
*** 1,4 ****              ##file1文件一共4行
  hello world
  welcome
! ds						##!所標示的行爲與另一個文件不同的行
! hai
--- 1,3 ----				##file2文件一共3行
  hello world
  welcome
! he

在這裏插入圖片描述

diff -i  file1 file2  ##不檢查大小寫的不同

在這裏插入圖片描述

diff  -q   file1 fil2     僅顯示有無差異,不顯示詳細的信息

在這裏插入圖片描述

diff   -r    test1/     test2/     比較子目錄中的文件

在這裏插入圖片描述

diff -u file1 file2    ##以合併的方式來顯示文件內容的不同(常用來生成補丁)

在這裏插入圖片描述

2.pacth

 用於兩不同文件打補丁

1)服務下載

yum install pacth -y

2)命令格式

diff -u file1 file2 > file.path				##生成補丁
patch    file.old file.path					##向老文件打補丁
patch   -b   file.old file.path    			##保留原文件,執行後會出現一個後綴爲.orig的文件,其內便是原文件內容

測試:
在這裏插入圖片描述
保留原文件:
在這裏插入圖片描述

3.cut命令

1)cut 命令作用

 cut命令多用與字符截取

2)cut命令用法

cut -d 指定分隔符
cut -f 1,7/1-7 指定截取的列 (,爲第幾列和第幾列 -爲第幾列到第幾列,實際運用需要加上-d指定分隔符)
cut -c 1,4/1-4 指定截取的字符位置

測試:

 cut -d : -f 1,7 passwd
 cut -d : -f 1-7 passwd

在這裏插入圖片描述

cut -c  1,4   passwd
cut -c  1-4   passwd

在這裏插入圖片描述

4.sort命令

1)sort命令作用

sort命令多用於字符排序

2)sort命令用法

sort -n 純數字排序
sort -r 倒序
sort -u 去掉重複數字
sort -o 輸出到指定文件中
sort -t 指定分隔符
sort -k 指定要排序的列
sort -n test		##純數字排序

在這裏插入圖片描述

sort -nr test     ##純數字倒敘排列

在這裏插入圖片描述

sort -u   test    ##去掉重複數字

在這裏插入圖片描述

sort  -n test -o test1   輸出到test1文件中

在這裏插入圖片描述

sort  -t  :   -k 2   -n  test   ##對以:爲分隔符的第二列純數字排序

在這裏插入圖片描述

5.uniq命令

1)作用

對重複字符做相應的處理,常與sort -n 一同使用

2)用法

uniq -u 顯示唯一的行
uniq -d 顯示重複的行
uniq -c 每行顯示一次並統計重複次數
sort -n test | uniq -c    ##對test進行排序每行顯示一次並統計重複次數
      1 1         ##一個2
      3 3			##三個3
      1 4
      2 6			##兩個6
      1 12
      1 24
      1 66

在這裏插入圖片描述

uniq   -u		##顯示唯一行

在這裏插入圖片描述

uniq -d 			##顯示重複行

在這裏插入圖片描述

6.test 命令

test 命令和 [ ] 等同

test "$A" == "$B" 等同 [ "$A" == "$B" ]

用法

[ "$A" = "$B" ]       ##A等於B
[ "$A" != "$B" ]      ##A不等於B
[ "$A" -eq "$B" ]      ##A等於B
[ "$A" -ne "$B" ]     ##A不等於B
[ "$A" -le "$B" ]     ##A小於或或等於B
[ "$A" -lt "$B" ]     ##A小於B
["$A" -ge "$B" ]      ##A大於或等於B
["$A" -gt "$B" ]      ##A大於B
["$A" -ne "$B" -a "$A" -gt "$B" ]  ##A不等於B 且 A大於B
["$A" -ne "$B" -o "$A" -gt "$B" ]  ##A不等於B 或者 A大於B
[ -z "$A" ]    ##A是否存在
[ -n "$A" ]    ##A是否不存在
["file1" -ef "file2" ]      ##file1和file2創建時間是否相同
["file1" -nt "file2" ]      ##file1是否比file2創建時間晚(是否比他新)
["file1" -ot "file2" ]      ##file1是否比file2創建時間早(是否比他老)
[-e "file" ]		##文件是否存在
[-f "file" ]		##文件是否爲純文本
[-L "file" ]		##文件是否爲鏈接
[-S "file" ]		##文件是否爲套接字
[-b "file" ]		##文件是否爲塊設備(磁盤)
[-d "file" ]		##文件是否爲目錄
[-c "file" ]		##文件是否爲字符設備

補充:
顯示大小寫的替換:

tr 'a-z' 'A-Z' < test

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章