重定向
標(biāo)準(zhǔn)輸入stdin: 代碼為0, 使用< 或<<
標(biāo)準(zhǔn)輸出stdout: 代碼為1, 使用>或>>
標(biāo)準(zhǔn)錯(cuò)誤輸出stderr: 代碼為2, 使用2>或2>>
特殊寫法:將stdout和stderr同時(shí)寫入一個(gè)文件,使用2>&1
# 將ll的結(jié)果重定向到out.txt文件中,如果文件中有內(nèi)容則覆蓋 ll /home > out.txt # 將ll的結(jié)果追加到out.txt文件中 ll /etc >> out.txt # stdout和stderr寫入同一個(gè)文件 find /home -name .bashrc > out.txt 2>&1 # 注意2>&1寫在最后 find /home -name .bashrc &> out.txt # 或者使用&>
管道
使用command A | command B | command C命令,將A命令產(chǎn)生的標(biāo)準(zhǔn)輸出作為B命令的標(biāo)準(zhǔn)輸入(注意只能接收前一個(gè)命令的標(biāo)準(zhǔn)輸出)。
每個(gè)管道后必須接指令,且指令必須可以接收stdin才可以。如less, more, head, tail 都可以,ls, cp, mv 則不行。
如果要接收前一個(gè)命令的stdout,則需要使用2>&1將stdout轉(zhuǎn)換為stdin。
tee命令
tee [OPTION]... [FILE]...
將stdin讀取,寫入stdout和file。
結(jié)合上面的管道,:
# 將ll結(jié)果同時(shí)顯示在屏幕和記錄到文件中 ll /home | tee list_home.out # 將find結(jié)果(正常和錯(cuò)誤)同時(shí)顯示在屏幕和記錄到文件中 find /home -name .bashrc 2>&1 | tee find.out
xargs命令
xargs [options] [command [initial-arguments]]
xargs讀取stdin,以空格或換行作為分隔符,將stdin分割為參數(shù)。
# 將find的結(jié)果作為參數(shù),傳給ls -lh命令 find /usr/sbin -perm /7000 | xargs ls -lh # 將find結(jié)果作為參數(shù),傳給du命令 find /home -name "*.go" | xargs du -cb
文本處理 - vim, grep, awk, sed, sort, wc, uniq, cut, tr
grep
grep [OPTION...] PATTERNS [FILE...]
從文本中查找符合某個(gè)模式的文本。
# 查找list.out中包含rvs字符的行 [leadcom@localhost test]$ grep rvs list.out drwx------ 4 rvs rvs 127 12月 16 18:41 rvs drwxrwxrwx 16 root root 285 8月 4 10:03 rvslocal drwxrwxrwx 2 root root 6 5月 10 2021 rvsremote # 結(jié)合管道查找前一個(gè)命令中包含某個(gè)字符的行 ps -ef | grep postgres
cut
cut OPTION... [FILE]...
根據(jù)option將文件中的每行做處理,輸出到到標(biāo)準(zhǔn)輸出。
cut 命令從文件的每一行剪切字節(jié)、字符和字段并將這些字節(jié)、字符和字段寫至標(biāo)準(zhǔn)輸出。
如果不指定 File 參數(shù),cut 命令將讀取標(biāo)準(zhǔn)輸入。必須指定 -b、-c 或 -f 標(biāo)志之一。
# 以:為分割符,取第一個(gè)元素 gw1@gw1-PC:~$ echo $PATH /home/gw1/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/sbin:/usr/sbin gw1@gw1-PC:~$ echo $PATH | cut -d ":" -f 1 /home/gw1/.local/bin gw1@gw1-PC:~$ export declare -x DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" declare -x DISPLAY="localhost:10.0" declare -x HOME="/home/gw1" declare -x LANG="zh_CN.UTF-8" declare -x LANGUAGE="zh_CN" declare -x LOGNAME="gw1" ... # 只取export每行的declare -x之后內(nèi)容,即第12個(gè)字符后內(nèi)容 gw1@gw1-PC:~$ export | cut -c 12- DBUS_SESSION_BUS_ADDRESS="unix:path=/run/user/1000/bus" DISPLAY="localhost:10.0" HOME="/home/gw1" LANG="zh_CN.UTF-8" LANGUAGE="zh_CN" LOGNAME="gw1" ...
awk
gawk [ POSIX or GNU style options ] -f program-file [ -- ] file ... gawk [ POSIX or GNU style options ] [ -- ] program-text file ...
用法一
awk '{[pattern] action}' {filenames} # 行匹配語(yǔ)句 awk '' 只能用單引號(hào)
# 每行按空格或TAB分割,輸出文本中的1、4項(xiàng) [leadcom@localhost test]$ cat log.txt 2 this is a test 3 Are you like awk This's a test 10 There are orange,apple,mongo [leadcom@localhost test]$ awk '{print $1,$4}' log.txt 2 a 3 like This's 10 orange,apple,mongo
用法二awk -F #-F相當(dāng)于內(nèi)置變量FS, 指定分割字符
[leadcom@localhost test]$ awk -F, '{print $1,$4}' log.txt 2 this is a test 3 Are you like awk This's a test 10 There are orange
sed
sed [OPTION]... {script-only-if-no-other-script} [input-file]...
sed [-hnV][-e
主站蜘蛛池模板:
国产精品va一区二区三区|
复古毛片|
色天使美国|
日韩免费|
欧美一级一一特黄|
yiren22亚洲综合高清一区|
haodiaose在线精品免费观看|
国产午夜精品福利|
清纯漂亮小美女准备啪啪|
色一情一乱一乱91av|
国产美女被艹|
69xx女xo69|
国内视频一区二区三区|
亚洲丁香|
欧美性猛交xxxxbbbb|
精品卡1卡2卡三卡免费视频
|
亚洲一区欧美二区|
被暗卫肉高h|
色色色色色色色色色色色色色色|
人与性www|
国产精品99r8免费视频2022|
亚洲精品美女久久久久网站|
99色婷婷|
日本在线视|
婷婷色香五月激情综合2020|
亚洲欧美视频一区二区三区|
xxxx日本老师hd|
久久精品国产99精品最新|
亚洲艹|
欧美日本一区二区三区|
国产成人精品三级|
欧美一级免费看|
免费国产午夜在线观看|
免费网站在线视频美女被|
1024你懂的国产精品|
99精品在免费线视频|
日本在线亚洲|
色免费看|
成人三级视频|
亚洲天天在线|
99精品国产第一福利网站|