概念:cut命令用來截取某一個字段 格式:cut -d '分割字符' [-cf] n,這裏的n是數字,該命令選項有以下幾個: - d 後面跟分割字符,分割字符要用單引號括起來 - c 後面接的是第幾個字符 - f 後面接的是第幾個區塊
[root@localhost do]# cat /etc/passwd |head -2
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@localhost do]# cat /etc/passwd |head -2 |cut -d ':' -f 1
root
bin
[root@localhost do]# cat /etc/passwd |head -2 |cut -d ':' -f 1,2
root:x
bin:x
[root@localhost do]# cat /etc/passwd |head -2 |cut -d ':' -f 1-3
root:x:0
bin:x:1linuxcat passwd這個文件,head只查看前兩行,cut -d截取分割符號爲「:」, -f 1 表示截取第一段,1,2表示前兩段,1-3表示頭三段。
sort命令用於排序 格式:sort [-t 分隔符] [-kn1,n2] [-nru] 這裏-n1和n2指的是數字,其餘選項以下: -t 後面跟分割字符,做用跟cut -d選項同樣,截取符號是什麼; -n 表示使用純數字排序,字母及特殊符號表示爲0; -r 表示反向排序; -u 表示除去重複; -kn1,n2 表示由n1區間排序到n2區間,能夠只寫-kn1,即對n1字段排序。
[root@localhost /]# head -n5 /etc/passwd |sort
#查看passwd前五行,輸出給sort(排序)執行,按默認升序排序。
adm:x:3:4:adm:/var/adm:/sbin/nologin
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
root:x:0:0:root:/root:/bin/bashshell
例2:把passwd配置文件前10行寫到3.txt,再加幾個特殊符號數字進行排序。bash
如圖所示,咱們用sort來進行排序,以數字排序 -n
[root@localhost do]# sort -n 3.txt #-n表示正序,特殊符號及字母表示爲0
如第一張圖所示,咱們-r 給反向排序看看
[root@localhost do]# sort -r 3.txt #-r表示反序
測試
概念:wc命令用於統計文檔的行數,字符數或詞數。 選項: -l 統計行數 -m 統計字符數 -w 統計詞數,以空格做爲區分
[root@localhost do]# wc /etc/passwd #查看這個文檔的行數,詞數及字數
19 27 846 /etc/passwd
[root@localhost do]# wc -l /etc/passwd #統計行數
19 /etc/passwd
[root@localhost do]# wc -m /etc/passwd #統計字數
846 /etc/passwd
[root@localhost do]# wc -w /etc/passwd #統計行數
27 /etc/passwdspa
概念:uniq命令用來刪除重複的行,更名了只有-c選項比較經常使用; 它表示統計重複的行數,並把行數寫在前面。
編寫一個文件,示例以下:.net
[root@localhost do]# touch 4.txt #建立一個文本
[root@localhost do]# vi 4.txt #編輯內容
111
222
333
111code
[root@localhost do]# cat 4.txt #查看裏面的內容
111
222
333
111
[root@localhost do]# uniq 4.txt #測試一下看看不排序管用麼,無論用的
111
222
333
111
[root@localhost do]# sort 4.txt |uniq #sort排序4.txt文件,再輸出給uniq刪除重複行
111
222
333
[root@localhost do]# sort 4.txt |uniq -c #統計重複的有行,有多少
2 111
1 222
1 333blog
tee命令後面跟文件名,起做用相似於重定向>,但它比重定向多一個功能; 把echo輸出的結果,經過管道符「|」 tee輸出給後面的文件並在屏幕上顯示。
[root@localhost do]# touch 1.txt #建立一個文本
[root@localhost do]# echo "1321asd123" | tee 1.txt #把echo的內容經過管道符號,輸出給 tee命令,到1.txt文件,而且在屏幕顯示結果。
1321asd123排序
tr命令用於替換字符,經常使用來處理文檔中出現的特殊符號; 如DOS文檔中出現的符號^M,該命令經常使用的選項以下: -d 表示刪除某個字符,後面跟要刪除的字符; -s 表示刪除重複的字符。
[root@localhost do]# echo "linux" > 1.txt
[root@localhost do]# cat 1.txt
linux
[root@localhost do]# echo "linux" | tr '[l]' '[L]' #把前面的小l,改爲L
Linux文檔
split命令用於切割文檔,經常使用的選項爲-b和-l -b 表示依據大小來分割文檔,默認單位爲byte(字節) -l 表示依據行數來分割文檔
先搜索出來個內容,而且全部的內容cat出來,追加劇定向到一個文件去
[root@localhost /]# find /etc/ -type f -name "*conf" -exec cat {} >> /tmp/do/1.txt \;
#find 搜索 /etc/ 下的文件 名字問conf結尾的文件,cat {}查看出來的內容,追加到1.txt文件中。
[root@localhost /]# du -sh /tmp/do/1.txt #查看這個文件的大小
212K /tmp/do/1.txt
示例1:這個文件有212K,咱們給他切割指定大小爲100K試試,示例以下:
#這裏,-b 指定帶下100K,不加單位默認是以字節顯示。
#x開頭的文件,是示例1的結果,不須要看他,看123開頭的文件,造成一個對比。
重點章節,之後會常常用到``` #### 特殊符號 $ - 符號$能夠用做變量前面的標識符,還能夠和!結合起來使用,示例以下: >[root@localhost do]# [root@localhost do]# ls /tmp/do/ 123aa 1.txt 2.txt 3.txt 4.txt a.txt xaa xab xac [root@localhost do]# !ls ls /tmp/do/ 123aa 1.txt 2.txt 3.txt 4.txt a.txt xaa xab xac !$表示上條命令中的最後一個變量。 #### 特殊符號 ; - 若是想在一行中運行兩個或兩個以上的命令,須要在命令之間加符號;示例以下: >[root@localhost dior1]# mkdir 123 ; touch 1.txt ; touch 2.txt ; ls 123 1.txt 2.txt 如上含義,建立了個目錄,又建立了2個文件,而且最後ls查看執行 #### 特殊符號 ~ - 符號~ 表示用戶的家目錄,root用戶的家目錄是/root,普通用戶是/home/username #### 特殊符號 & - 若是想把一條命令放到後臺執行,則須要加上符號&,它一般用於命令運行時間較長的狀況,能夠用在sleep(休眠),示例以下: >[root@localhost ~]# sleep 30 & [1] 40966 [root@localhost ~]# jobs [1]+ 運行中 sleep 30 & #### 重定向符號> 、>> 、2> 、 2>> 、 &> 的用法
概念:>、>>他們分別表明取代(>)和追加(>>)的意思;
當咱們運行一個命令報錯時,報錯信息會輸出到當前屏幕;
若是想重定向到一個文本,則須要用重定向符號2>或2>>;
他們分別表示錯誤重定向和錯誤追加劇定向。
&>表示錯誤和正確的重定向輸入到一個文件裏去
#### 中括號[] - 中括號內爲字符組合,表明字符組合中的任意一個。(上一章節有提到) #### 特殊符號 &&和|| - 使用||時,表示或者,意思是說 若是兩條命令用||分割的話,第一條執行成功後,第二條就不會執行,假如第一條命令是錯誤的話,執行失敗就會執行第二條。 > 示例1,假設兩個命令都是正確的 > [root@localhost do]# ls 1.txt || wc -l 2.txt 1.txt >示例2: 假設第一條命令是錯誤的,而第二條命令是正確的,就會執行第二條 [root@localhost do]# ls 111111.txt || wc -l 2.txt #在這裏 根本就沒有一串1的txt文件 ls: 沒法訪問111111.txt: 沒有那個文件或目錄 0 2.txt - 使用&& 表示前面的命令執行成功之後,纔會執行後面的命令,若是前面命令執行不成功,後面的命令就不會執行。用&&分割,用來判斷的。 >示例1,兩條命令都是正確的狀況下 >[root@localhost do]# ls 1.txt && wc -l 2.txt #ok,在這裏兩條命令都生效 1.txt 0 2.txt >示例2,假如第一條命令不成功,後面的命令就不會執行。 >[root@localhost do]# ls 111.txt && wc -l 2.txt ls: 沒法訪問111.txt: 沒有那個文件或目錄 # 普通特殊符號介紹