linux中常用的基礎指令
diff 指令
patch 指令
grep 指令
Cut 指令
sort 指令
uniq 指令
tr 指令
sed 命
1.diff 指令 比較兩個檔案的不同 用于建立更新檔檔案
diff -u file file.new >file.path ##生成更新檔檔案
yum install patch -y ##安裝打更新檔工具
(1)patch -b file file.path ##給老檔案件打更新檔,并且對老檔案進行備份
更新檔版替換原始檔案 , 但當指定 -b 選項時 , 可以制作備份。将用 .orig 檔案名字尾
重命名原始檔案
17 vim file ##建立file
18 vim file1##建立file1
19 cat file ##檢視file
20 cat file1 ##檢視file
21 diff file file1 ##比較兩個檔案的不同
22 diff -c file file1 ## -c 顯示上下文周圍的行
23 diff -u file file1 ## -u 使用統一的輸出格式
24 diff -u file file1 > file.path ##建立更新檔檔案
25 cat file.path ##檢視更新檔檔案
26 yum install patch -y ##安裝打更新檔工具
27 patch file file.path ##給檔案打更新檔,檔案在前,更新檔檔案在後
28 cat file ##檢視檔案
34 ls
40 vim file
41 patch -b file file1
42 patch -b file file.path ##給老檔案件打更新檔,并且對老檔案進行備份
43 ls
44 cat file.orig 檢視備份檔案
45 cat file 檢視新檔案
46 history
<a href="https://s2.51cto.com/wyfs02/M01/93/51/wKiom1kJ_z_D6Fa_AACy--2bwlo588.png-wh_500x0-wm_3-wmp_4-s_2018294973.png" target="_blank"></a>
<a href="https://s2.51cto.com/wyfs02/M01/93/4F/wKioL1kJ_z-wbB2aAADx_u_WvjE204.png-wh_500x0-wm_3-wmp_4-s_3971941389.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M01/93/4F/wKioL1kJ_0DylUOrAABfprKXF7o127.png-wh_500x0-wm_3-wmp_4-s_4062600473.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/93/51/wKiom1kJ_0CCniXpAACZiP6HSWw121.png-wh_500x0-wm_3-wmp_4-s_3871571878.png" target="_blank"></a>
(2)patch 可用于将簡單的更新檔檔案應用于使用以下文法的單個檔案
– [root@host etc]# patch issue patchfile
Patching file issue
(3)以下指令顯示如何使用通過 diff -Naur 建立的更新檔檔案。使用者更改為
與從中建立更新檔檔案的原始目錄相似的可比較目錄後 , 将執行patch
– [user@host orig-dir]$ patch -b < /tmp/patchfile
Patching file hosts
Patching file network
2.grep指令
grep 将顯示檔案中與模式比對的行。
grep -i ##忽略大小寫
-v ##反向過濾
-E "關鍵字1|關鍵字2|....." ##過濾多個關鍵字
1 cd/mnt/
2 ls
3 cp /etc/passwd /mnt/ ##将/etc/passwd複制到/mnt
22 vim passwd ##編輯passwd文本
23 cat passwd ##檢視passwd文本
24 grep -i test passwd ##顯示檔案中含有test的行,忽略test大小寫
25 grep test passwd ##顯示檔案中含有test的行
26 grep -i test passwd -v ##顯示檔案中不含有test的行,忽略test大小寫
27 grep -E "TEST|root" passwd ##顯示檔案中含有TEST或root"的行
28 grep -E "test|root" passwd##顯示檔案中含有test或root的行
29 grep -E "test|ROOT" passwd##顯示檔案中含有test或ROOT的行
30 grep -E "^test|ROOT" passwd##顯示檔案中行首是test或含有ROOT的行
31 grep -E "test|ROOT$" passwd##顯示檔案中含有test或行尾是ROOT的行
32 grep -E -i "^test|ROOT" passwd
##顯示檔案中行首是test或含有ROOT的行,忽略大小寫
33 grep test passwd | grep -i testpasswd -v
##顯示檔案中不含有test的行,忽略test大小寫
34 grep test passwd | grep -E "^test|root$" -v
顯示檔案中行首不是test或不含有root的含有test的行
35 grep test passwd | grep -E "^test|test$" -v
顯示檔案中行首不是test或不含有test的含有test的行
36 grep test passwd | grep -E "^root|root$" -v
顯示檔案中行首不是root或不含有root的含有test的行
<a href="https://s2.51cto.com/wyfs02/M01/93/51/wKiom1kJ_33AujzyAAAlaiBrxXA090.png-wh_500x0-wm_3-wmp_4-s_1370561394.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M01/93/4F/wKioL1kJ_37zWcp6AAEUZlxJ0vU387.png-wh_500x0-wm_3-wmp_4-s_3813865905.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M00/93/51/wKiom1kJ_3_DMV3eAADoef5Kves243.png-wh_500x0-wm_3-wmp_4-s_2124185008.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M02/93/51/wKiom1kJ_3-y2SbpAACpSS6rPtk618.png-wh_500x0-wm_3-wmp_4-s_500669772.png" target="_blank"></a>
grep -r 關鍵字 目錄 ##在目錄中過濾還有關鍵字的檔案
-n ##顯示結果所在行的行号
-c ##結果個數
練習
提取ifconfig eth0 中的ip位址
<a href="https://s3.51cto.com/wyfs02/M02/93/51/wKiom1kJ_9_A_ZhPAADl484kCWI104.png-wh_500x0-wm_3-wmp_4-s_891589440.png" target="_blank"></a>
<a href="https://s5.51cto.com/wyfs02/M02/93/51/wKiom1kKAHHiDJVHAADLBLAOut4267.png-wh_500x0-wm_3-wmp_4-s_134941817.png" target="_blank"></a>
3.cut 指令
##-d指定用于提取字段的分隔符
##-f 指定要從每行中提取的字段
##-c 指定要從每行中提取的文本列
2 cd /mnt/
3 cp /etc/passwd .
4 vim passwd
5 cat passwd
6 cut -d : -f 1,7 passwd ##剪切每行中的1和7字段,并提取字段的分隔符
-d : -f 一起用,不能分開
7 cut -d : -f 1,3 passwd ##剪切每行中的1和3字段,并提取字段的分隔符
8 cut -d : -f 1-3 passwd ##剪切每行中的1到3字段,并提取字段的分隔符
9 cut -c 1-3 passwd ##剪切每行中的1到3列文本
3.sort 排序
-n ##純數字
-r ##倒序
-u ##去掉重複行
-t ##指定分隔符
-k ##指定排序的列
4.uniq
處理重複行
-c ##統計重複行的個數
-u ##顯示唯一的行
-d ##顯示重複行
1 vim file
2 sort -n file ##純數字排序
3 sort -rn file ##倒序
4 sort -rnu file ##去掉重複行
5 sort -rn file | uniq -c ##統計重複行的個數,倒序
6 sort -rn file | uniq -u ##顯示唯一的行,倒序
7 sort -rn file | uniq -d ##顯示重複行,倒序
11 vim file
12 cat file
13 sort -t : -k 3 -n file ## 排序分隔符分的第三列
14 sort -t : -k 3 -n file | uniq -c##排序分隔符分的第三列,并統計重複行的個數
15 sort -t : -k 1 -n file | uniq -c##排序分隔符分的第1列,并統計重複行的個數
17 sort -t : -k 2 file | uniq -c ##排序分隔符分的第2列,并統計重複行的個數
18 sort -t : -k 3 -n file | uniq -u##排序分隔符分的第三列,顯示唯一的行
19 sort -t : -k 3 -n file | uniq -d##排序分隔符分的第三列,顯示重複行
<a href="https://s4.51cto.com/wyfs02/M00/93/51/wKiom1kKAHLgOzqmAABlJbIArR8861.png-wh_500x0-wm_3-wmp_4-s_955547239.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M02/93/50/wKioL1kKAO2ATaVfAABTZqRgMs0302.png-wh_500x0-wm_3-wmp_4-s_3480063618.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/93/50/wKioL1kKAO6DE-qhAABPQP9zY6g430.png-wh_500x0-wm_3-wmp_4-s_386733471.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M00/93/50/wKioL1kKAO-jVmweAADO7I2INUs819.png-wh_500x0-wm_3-wmp_4-s_1711839005.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/93/50/wKioL1kKAZKRWh02AAC0WMsPGbY774.png-wh_500x0-wm_3-wmp_4-s_1248774280.png" target="_blank"></a>
5.tr 轉換字元大小寫
4 vim file
5 cat file
6 tr 'a-z' 'A-Z' < file ##把file中所有小寫字元轉換成大寫
7 tr 'A-Z' 'a-z' < file ##把file中所有大寫字元轉換成小寫
8 history
<a href="https://s1.51cto.com/wyfs02/M00/93/51/wKiom1kKAZKQXCghAABkiT_ism8798.png-wh_500x0-wm_3-wmp_4-s_691820024.png" target="_blank"></a>
6.sed 控制流輸出
sed 指令是流編輯器 , 用于對文本資料流執行編輯。假定要處理一個檔案名 , sed 将對檔案中的所有行執行搜尋和替換 , 以将修改後的資料發送到标準輸出 ; 即 , 其實際上并不修改現有檔案。與 grep 一樣 , sed 通常在管道中
9 cat passwd
10 cat passwd -b > westos ##将passwd中的内容輸入到westos中 并且顯示行數
11 cat westos
12 sed 's/nologin/westos/g' westos ##替換輸出中的nologin為westos
16 sed -e 's/nologin/westos/g' -e 's/sbin/lee/g' westos
##多條替換政策用-e連接配接
18 sed '1,3s/nologin/westos/g' westos
##替換輸出中1-3行的nologin為westos
20 sed 3,7d westos ##不顯示檔案中的3-7行
21 sed 3,7p westos ##重複顯示檔案中的3-7行
22 sed -n 3,7p westos ##隻顯示檔案中的3-7行
23 sed 3d westos ##不顯示檔案中的第三行
<a href="https://s1.51cto.com/wyfs02/M00/93/50/wKioL1kKAZOytfuBAADKTob8nig654.png-wh_500x0-wm_3-wmp_4-s_2833762090.png" target="_blank"></a>
<a href="https://s3.51cto.com/wyfs02/M01/93/50/wKioL1kKAi-iG9taAABmf6NyFrA675.png-wh_500x0-wm_3-wmp_4-s_4287869421.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M02/93/50/wKioL1kKAjDDgdSFAABkR0tgrQc662.png-wh_500x0-wm_3-wmp_4-s_1439437802.png" target="_blank"></a>
<a href="https://s4.51cto.com/wyfs02/M00/93/52/wKiom1kKAjDANuVVAABcyAt-WVc388.png-wh_500x0-wm_3-wmp_4-s_183868870.png" target="_blank"></a>
将修改後的資料發送到标準輸出 ; 其實際上并不修改現有檔案。
27 sed -e 's/nologin/westos/g' -e 's/sbin/lee/g' westos
##多條替換政策用-e連接配接
28 cat westos
<a href="https://s2.51cto.com/wyfs02/M02/93/50/wKioL1kKAjHg9pUlAAC7BxbRDlU489.png-wh_500x0-wm_3-wmp_4-s_968201358.png" target="_blank"></a>
-i将輸出導入westos, 修改現有檔案
30 sed -e 's/nologin/westos/g' -e 's/sbin/lee/g' -i westos
##多條替換政策用-e連接配接
31 cat westos
<a href="https://s3.51cto.com/wyfs02/M00/93/50/wKioL1kKAjKjEh6IAABuovouLGA673.png-wh_500x0-wm_3-wmp_4-s_2242023239.png" target="_blank"></a>
sed -ne 3p -ne 7p westos ##隻顯示檔案中的3,7行
[root@westos mnt]# cat rule ##規則檔案内容
s/nologin/westos/g
s/sbin/lee/g
[root@westos mnt]# sed -f rule file ##使用規則檔案更改輸出
1 root:x:0:0:root:/root:/bin/bash
2 bin:x:1:1:bin:/bin:/lee/westos
3 daemon:x:2:2:daemon:/lee:/lee/westos
4 adm:x:3:4:adm:/var/adm:/lee/westos
本文轉自 如何何如 51CTO部落格,原文連結:http://blog.51cto.com/12778805/1922056,如需轉載請自行聯系原作者