linux的管道符
❶ linux系統符號說明
01 系統特殊符號
02 系統通配符號
03 系統正則符號
說明: 查詢信息的時候,會帶來便利
1) 基礎符號系列
$
a 調取變數信息
b 區分用戶類型 $ 普通用戶
c 結合awk對文件進行取列
xargs -n 2 <test01.txt|awk '{print $2}'
!
a 強制的作用 wq!
b 可以實現取反
awk '!/oldgirl/' test02.txt (排除oldgirl)
find /oldboy_dir/ ! -type f (排除文件)
c !信息 可以快速調取執行歷史命令(慎用)
cat ~/.bash_history -- 記錄歷史命令信息, 但是不會實時記錄
history -- 顯示所有輸入過的歷史命令
|
a 實現管道功能
將前一個命令執行的結果交給管道後面的命令進行處理
一般管道符號 會經常和xargs命令配合使用
批量刪除操作
find /oldboy -type f -name "oldboy*.txt"|xargs rm
find /oldboy_dir/ -type f -delete
find /oldboy_dir/ -type f -exec rm -f {} \;
查找指定數據信息進行復制
find /oldboy -type f -name "oldboy*.txt" |xargs -i cp {} /oldgirl/
find /oldboy -type f -name "oldboy*.txt" |xargs cp -t /oldgirl/
find /oldboy -type f -name "oldboy*.txt" -exec cp -a {} /oldgirl \;
查找指定數據信息進行移動
find /oldboy -type f -name "oldboy*.txt" |xargs -i mv {} /oldgirl/
find /oldboy -type f -name "oldboy*.txt" |xargs mv -t /oldgirl/
find /oldboy -type f -name "oldboy*.txt" -exec mv {} /oldgirl \;
xargs(火眼金睛)後面跟的命令,不識別別名信息
#
a 表示對配置文件信息進行注釋
b 表示用戶的身份信息 超級管理員用戶
2) 引號符號系列
"" 基本上和單引號功能類似 但是可以對一些特殊符號做出解析 $ `命令`==$(命令)
'' 裡面編寫的什麼內容就輸出什麼內容 所見即所得
作用:
01. 指定需要輸出的信息
02. 利用引號將空格分隔的信息匯總為一個整體
``($()) 將引號裡面命令執行結果,交給引號外面命令進行使用
3) 重定向符號
>/1> 標准輸出重定向符號
>>/1>> 標准輸出追加重定向符號
2> 錯誤輸出重定向符號
2>> 錯誤輸出追加重定向符號
< 標准輸入重定向符號
tr xargs
<< 標准輸入追加重定向符號
4) 邏輯符號系列
邏輯: 在完成一件事情的時候,有合理先後順序
&& 前一個命令操作執行成功了,再操作執行後面的命令
|| 前一個命令操作執行失敗了,再操作執行後面的命令
mkdir /old_dir && echo "create dir sucess" || echo "create dir failed"
create dir sucess
mkdi /old_dir && echo "create dir sucess" || echo "create dir failed"
-bash: mkdi: command not found
create dir failed
什麼通配符號: 用於匹配文件名稱信息, 便於快速查找文件信息 find
* 匹配所有信息
find /oldboy -type f -name "oldboy*" ---以oldboy開頭的信息都查詢出來
find /oldboy -type f -name "*oldboy" ---以oldboy開頭的信息都查詢出來
find /oldboy -type f -name "oldgirl*oldboy"
---以oldgirl 開頭的信息
以oldboy 結尾的信息都查詢出來
{} 產生序列信息
連續序列:
echo {01..05}
echo {a..z}
echo {A..Z}
生成不連續序列
a 有規律的不連續序列
echo {01..05..2}
01 03 05
echo {a..z..2}
b 沒規律的不連續序列
echo {www,bbs,blog}
www bbs blog
生成組合序列
echo {1,2}{a,b}
1a 1b 2a 2b
echo {1,2}{a,b}{A,B}
1aA 1aB 1bA 1bB 2aA 2aB 2bA 2bB
echo A{a,b}
Aa Ab
A=oldboy.txt
echo oldboy.txt{a,b}
oldboy.txta oldboy.txtb
echo A{,b}
A Ab
A=oldboy.txt
b=.bak
cp oldboy.txt{,.bak} == cp oldboy.txt oldboy.txt.bak
快速備份文件命令
cp oldboy.txt{,.bak}
快速還原數據方法
cp oldboy.txt{.bak,}
echo A{B,}
AB A
oldboy.txt{.bak,} == cp oldboy.txt.bak oldboy.txt
基礎正則符號:basic regular expression (BRE)
擴展正則符號:extended regular expression (ERE)
基礎正則符號:
a 尖角符號:^
以什麼開頭的信息進行過濾出來
grep -v "^#" nginx.conf.default >nginx.conf(對不需要關注的信息取反)
常見錯誤
find / -type f -name "^oldboy" 錯誤
find / -type f -name "oldboy*" 正確
b 美元符號:$
以什麼結尾的信息進行過濾出來
以m結尾信息, 並且顯示上1行 和 下2行的信息
grep "m$" -A 2 -B 1 test.txt
常見錯誤:
如果過濾不出來,確認每行結尾是否有空格信息
方法一:
cat -A test.txt
方法二
vim 底行模式輸入命令 --- :set list
c 尖角美元符號:^$
取出文件中空行信息
grep "^$" test.txt
grep -v "^$" test.txt
d 點符號: .
表示匹配任意一個且只有一個字元
grep "." test.txt -o(更直觀的顯示過程)
e 星號符號: *
匹配星號前面一個字元連續出現0次或多次
f 點和星號組合: .*
匹配所有信息
說明: 正則符號在匹配數據信息的時候具有貪婪特性
避免貪婪特性的方法,是在指定一行信息中唯一節點信息
g 轉譯符號: \
1) 將一些有意義的符號進行轉譯, 變為一個普通符號
grep "\.$" ~/oldboy_test.txt
2) 將一些沒有意義的符號進行轉譯,變為有意義符號
\n 換行符號 linux
3) 可以將擴展正則符號轉換成普通正則讓grep sed命令可以直接識別'
grep "o\?" test.txt
h 括弧符號:[]
匹配括弧中每一個字元,並且匹配的關系是或者的關系
需求: 找出文件中oldboy 和 oldbey兩個單詞信息
grep "oldb[oe]y" test.txt
企業應用: 找尋文件中字母 數字信息
grep "[0-9a-zA-Z]" test.txt
i 尖號和中括弧組合使用 : [^]
對中括弧裡面匹配的字元信息進行排除
grep "[^0-9a-zA-Z]" test.txt --- 將字母數字都排除,只留下符號信息
尖號和中括弧組合使用 : ^[]
以中括弧裡面匹配的字元作為一行開頭的字元
grep "^[zx]" test.txt
正則符號注意事項
按照每行信息進行過濾處理
注意正則表達符號禁止中文
附上顏色信息進行正則過濾 --color=auto/--color
基礎正則符號可以被三劍客命令直接識別 grep sed awk
擴展正則符號不可以被三劍客命令中老二和老三直接識別
sed命令想識別正則符號: sed -r
grep命令想識別正則符號: egrep / grep -E
a 加號符號:+
匹配加號前面一個字元連續出現1次或者多次
b 豎線符號:|
或者關系符號
egrep "oldboy|oldbey" test.txt
c 括弧符號:()
將多個字元信息進行匯總為一個整體
egrep "(oldboy)" test.txt
進行後向引用前向的一個操作(sed)
echo "123456"|sed -r "s#(..)(..)(..)#<\1><\2><\3>#g"
修改配置文件內容
sed -rn "s#(^S.*UX=).*#\1enforcing#gp" /etc/selinux/config
SELINUX=enforcing
d 括弧符號:{}
指定花擴號前一個字元連續匹配多少次
* 連續匹配 0 次 或 多次
+ 連續匹配 1 次 或 多次
1) {n,m} n表示最少連續匹配多少次 m表示最多連續匹配多少次
2) {n} n表示只連續匹配n次
3) {n,} n表示至少連續匹配n次,至多沒有限制
4) {,m} m表示至多連續匹配n次,至少0次
e 問號符號:?
表示匹配問號前面一個字元出現0次或者1次
❷ 16. Linux 管道符( 『|』 )
利用Linux所提供的管道符「|」將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。 連續使用管道意味著第一個命令的輸出會作為 第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推。下面來看看管道是如何在構造一條Linux命令中得到應用的。
注意:
1、管道命令只處理前一個命令正確輸出,不處理錯誤輸出。
2、管道命令右邊命令,必須能夠接收標准輸入流命令才行。
這條命令使用一個管道符「|」建立了一個管道。管道將rpm -qa命令的輸出(包括系統中所有安裝的RPM包)作為grep命令的輸入,從而列出帶有licq字元的RPM包來。
這條命令使用了兩個管道,利用第一個管道將cat命令(顯示passwd文件的內容)的輸出送給grep命令,grep命令找出含有「/bin /bash」的所有行;第二個管道將grep的輸出送給wc命令,wc命令統計出輸入中的行數。這個命令的功能在於找出系統中有多少個用戶使用bash。
區別是:
1、左邊的命令應該有標准輸出 | 右邊的命令應該接受標准輸入
左邊的命令應該有標准輸出 > 右邊只能是文件
左邊的命令應該需要標准輸入 < 右邊只能是文件
2、管道觸發兩個子進程執行"|"兩邊的程序;而重定向是在一個進程內執行
這些都是網上總結很多的,其實只要多加清楚用法,也一定有自己的一份不同描述。
❸ linux裡面什麼是管道符
題主你好,
首先,linux下的管道符使用"豎杠"表示:
|
它的作用是:
連接兩個命令,將第一個命令的輸出作為第二個命令的輸入.
形象一點的比喻:
管道符好比流水線上的傳送帶,比如,一個流水線是由兩步組成的,先由第一道工序將黃桃洗凈,然後通過傳送帶將洗凈的黃桃送到第二道工序裝罐,用管道的思維去處理這個過程就是:
清洗黃桃|裝罐
需要注意的是,其實每個過程都是由"動作+被作用對象"組成,也就是說,上面的例子其實是:
清洗黃桃
裝罐洗凈的黃桃
這兩步組成的,但由於管道符的使用,除了第一道工序需要"被作用對象"外,後面的工序使用的是管道符傳過來的"前一道工序處理過的對象".
舉例來說,使用ls和grep這兩個命令實現只輸出文件的詳細信息,不輸出目錄的詳細信息.正常情況下這倆半個命令的用法是:
ls選項路徑
grep模式文件流
而使用管道連在一起的寫法:
ls-l/root/ok/tmp|grep '^-'
*.在使用管道符的組合命令中,只有第一個命令需要"被作用對象"
希望對題主有幫助,歡迎追問
❹ Linux中的管道如何理解
簡單來說就是,一個命令的結果作為另外一個命令(結果)的輸入,管道是linux提供的一種常見的進程通信工具,也是很多shell命令能夠靈活組合產生強大用途的一個重要工具。
管道是Linux由Unix那裡繼承過來的進程間的通信機制,它是Unix早期的一個重要通信機制。其思想是,在內存中創建一個共享文件,從而使通信雙方利用這個共享文件來傳遞信息。由於這種方式具有單向傳遞數據的特點,所以這個作為傳遞消息的共享文件就叫做「管道」。
在管道的具體實現中,根據通信所使用的的文件是否具有名稱,有「匿名管道」和「命名管道」。
❺ Linux文本操作常用命令
在Linux系統里常用於文本查看、操作、統計的命令:
通過多敲鍵盤,形成手感 肌肉記憶 ,熟練掌握這些命令,在以後生信分析中游刃有餘。以下是每個命令的詳細的介紹(主要是跟著 生信技能樹小郭老師 學習做的筆記)
接下來通過示例把10個命令的常用參數和用法展示出來:
參數的用法介紹:
注意事項:
用 cat 命令可以 查看文本 ,也可以 編輯文本 ,編輯文本要加 > 符號,退出時,另起一行,按 control C 退出
zcat可以查看壓縮的文本文件,tac逆向查看
結合 管道符| 使用
head / tail -n :查看文件的前 / 後 n 行,默認 10 行 (在R語言里head和tail默認是前6行)。
less命令用得最多 ,more命令用得比較少
3.1 less命令
less [參數] 文件名
less命令重要的補充用法1 :
需要注意 退出 :只要使用less命令, 按q鍵
less命令重要的補充用法2 :
參數用法:
less命令 不加參數 查看文件:
less命令加 -N參數 查看文件:顯示行號
less命令加 -S參數 查看文件:單行顯示,非常規整
對比:less和cat命令顯示文本行號的用法:less -N,cat -n
3.2 more命令
**more ** 逐頁查看,按空格翻頁,按回車換行 ,more命令一般很少用,熟練掌握less命令就好
查看壓縮文件
wc 統計字元是也把換行符統計進去,但是別的命令不一定會把換行符算進去,。
常見參數:
切記:用less命令,按q退出
cut命令是按關鍵詞來切的
常見參數:
排列前:
排列後:
解釋:1和0比,1大;7和0比,7大…在sort字典排序里,100816比1737小,所以100816排在前面。
命令行查看一個表格結構時,因為製表符對齊的原因,出現一個錯位的現象。還有 字典排序 可能和我們平時的認知不一樣,所以 加上-n參數 , 讓數值有數學意義上的大小來排序 。
uniq命令去重,只有兩行出現重復,而且是相鄰的兩行,如果不相鄰,即使出現兩行一模一樣,不會去重。
uniq命令通常和sort命令搭配使用
換其它文件試試
總之,uniq命令使用時經常和sort一起
常見參數:
常見用法1:
paste file1 file2
-s :按行合並 演示
常見用法2 : paste - -
常見參數:
要養成一個好習慣,原始數據不要輕易修改,修改的東西另外保存,文本保存用> (重定向)或是 >>(追加)
1. 用 less 查看 example.gtf ,然後管道符傳遞給 wc
2. 截取 example.gtf 第 9 列的內容
3. 在第2步的基礎上截取分號分割的第1列
4. 在第3步的基礎上排序、去重復並統計
5. 在第4步的基礎上,將空格替換成製表符
補充小知識 :
清屏 :control L
查看歷史(輸入過的)命令 :history
❻ linux命令中「|」符號是什麼意思
這個符號叫做管道符號。
❼ Linux 系統中「|」管道的作用是什麼
「|」是管道命令操作符,簡稱管道符。利用Linux所提供的管道符「|」將兩個命令隔開,管道符左邊命令的輸出就會作為管道符右邊命令的輸入。連續使用管道意味著第一個命令的輸出會作為 第二個命令的輸入,第二個命令的輸出又會作為第三個命令的輸入,依此類推。
它僅能處理經由前面一個指令傳出的正確輸出信息,也就是 standard output 的信息,對於 standard error 信息沒有直接處理能力。
用法示例:
ls -l | more
該命令列出當前目錄中的文檔,並把輸出送給more命令作為輸入,more命令分頁顯示文件列表。