連續組合命令:linux
1.連續執行命令,命令之間不存在判斷的符號;bash
例如:sync;sync;shutdown -h now -----連續同步磁盤後再關機,這裏無論前面命令是否執行成功
less
2.連續執行相關性命令,前面的命令執行成功後纔會繼續執行下一條鏈接符&&ide
例如:ls /tmp/abc && touch /tmp/abc/test.txt ---若是不存在該目錄那麼後面也不會建立文件3d
3.連續命令前面命令執行失敗繼續往下執行鏈接符||unix
例如:ls /tmp/abc || mkdir /tmp/abcblog
以上的命令能夠組合使用:ls /tmp/test && echo "exist" || echo "no exist" 排序
例如:ls /tmp/abc || mkdir /tmp/abc && touch /tmp/abc/test.txtip
命令的自由組合實現不一樣的功能ci
數據流重定向:
1.將輸出正確和錯誤的信息分別保存到不一樣的文件中。
find /home/ -name .bashrc >/tmp/abc/list_right 2>/tmp/abc/list_error
2.將產生的錯誤信息忽略不顯示也不存儲,能夠將輸出重定向到/dev/null這個黑洞設備。
find /home -name .bashrc 2>/dev/null
其實大多用在一些量大但沒有什麼有用信息的輸出上。在平常工做中能夠將一些操做成功的信息從輸出信息中過濾出來重定向到指定的文件中方便查詢排錯,或者下一步操做
3.將輸出的正確或者錯誤信息都寫到一個文件中,如下的兩句的執行結果同樣。
find /home -name .bashrc >/tmp/abc/list 2>&1
find /home -name .bashrc &>/tmp/abc/list
4.將指定文本中的內容重定向到新建的文件中
cat >list_error <test.txt 也就是將test.txt中的內容複製到了list_error中<會覆蓋本來內容
管道命令的應用結合:
1.按照順序處理標準正確輸出less
ls -al /etc/ | less 輸出面屏連續顯示
2.顯示出按照:分割開的第2足字符cut
echo $PATH | cut -d ':' -f 2 等同於 echo $PATH | awk -F: '{print $2}'
3.剪切出export的12列字符後的全部字符
export | cut -c 12-
export | cut -c 12-16 只顯示12-16列的內容,即每行5個字符。
對比輸出內容就知道怎麼回事是吧?
4.顯示以前登陸過的全部用戶cut、grep
last | cut -d ' ' -f1 這裏-d是自定義分割符,-f1顯示第一列
5.顯示出非root的登陸用戶
last | grep -v 'root'
6.將man.config中的MANPATH取出來加以顏色grep
grep --color=auto 'MANPATH' /etc/man.config
7.將系統下的用戶帳號排序sort
cat /etc/passwd | sort -------默認按首字母
cat /etc/passwd | sort -t ':' -k 3 ---------------以:符號分開的第三列排序
cat /etc/passwd | sort -t ':' -k 3 -n ------------以:符號分開的第三列的數字來排序
cat /etc/passwd | sort -t ':' -k 3 -n | cut -d ':' -f3 顯示第三列
8.列出登陸過此係統的全部用戶名
last | cut -d ' ' -f1 | sort
last | cut -d ' ' -f1 | sort | uniq ----------不重複的列出uniq
last | cut -d ' ' -f1 | sort | uniq -c --------不重複的列出並統計次數
last | cut -d ' ' -f1 | sort | uniq -c | sed 's/^/&統計:/g' -----這樣更直觀嘛
注意:這裏的''符號中間是空格符,不然會報錯
9.統計出文檔中的行、字數、字符數wc
cat /etc/man.config | wc
last | grep [a-zA-Z] | grep -v 'wtmp' | wc -l 統計出登陸系統的總人次取出非空白行和排除wtmp後統計的行數
10.將輸出保存到last.list中去tee
last | tee last.list | cut -d ' ' -f1 -----先將輸出保存到文檔中後,輸出分割後的第一列
11.保存一份到文件中並顯示在屏幕上
ls -l /home/ | tee /tmp/homefile | more
ls -l /etc/ | tee -a /tmp/etcfile | more -a參數可使輸出追加到文件中而不是覆蓋文件內容
12.將輸出中的小寫字母所有替換成大寫tr
last | tr '[a-z]' '[A-Z]' ---可用於解決文檔內容規範化問題,利於後期處理
cat /etc/passwd | tr -d ':' -----------刪除文檔中的:號
cat -A /etc/passwd
cp /etc/passwd /root/passwd && unix2dos /root/passwd ---將文本複製並以dos斷行保存
cat /root/passwd | tr -d '\r' >/root/passwd.linux ---去掉轉換後的文本中的斷行符並保存
file /etc/passwd /root/passwd 比較兩個文檔格式
13.顯示出文檔中的特殊按鍵
cat -A /etc/man.config ---顯示出文檔中的特殊的字符$^等
cat /etc/man.config | col -x | cat -A | more ----------將原來的[tab]鍵替換成空格
tail -n 20 /etc/man.config | col -x | cat -A | tr -d '$' --還能夠去掉尾部的$符號
14.將有相同部分的文件整合join
join -t ':' /etc/passwd /etc/shadow -----將第一字段相同的兩文檔鏈接在一塊兒
join -t ':' -1 4 /etc/passwd -2 3 /etc/group ---將第一個文檔第4字段和第二文檔的第3字段鏈接
15.將文件中對應的兩行鏈接在一塊兒paste
paste /etc/passwd /etc/shadow --組合在一塊兒顯示出來
cat /etc/group | paste /etc/passwd /etc/shadow -| head -n 3 ----只取輸出的前3行
16.文檔中的[tab]按鍵,用cat -A顯示成^I
grep '^MANPATH' /etc/man.config | head -n 3 | cat -A
grep '^MANPATH' /etc/man.config | head -n 3 | expand -t 6 - | cat -A 將以上的^I換成6個空格
17.進入到/tmp/文件下,將文件切割成30K一份,名字termcap自動添加split
cd /tmp/;split -b 30k btts_14_to.zip btts_14_to.zip
cat termcap* >>termcapback ------------------------將多個文檔組合成一個文件