三、輸入輸出重定向及管道
01.過濾器
Linux過濾器分三種:
1.過濾器(重定向只對過濾器有作用)
#gzip a(將a作為輸入源,涉及到輸入輸出)
2.編輯器
3.交互式工具
#setup
02.標准輸入輸出
03.改變標准輸出
#ls >(將正確的輸出輸出去) /tmp/aaa
#ls /tttt 2>(標准的錯誤的消息) /tmp/aaa(把后邊的文件清空,將前邊
的文件加入到后邊的文件)
#> b (創建新文件)
#> passwd (清空文件)
#find / -name asdfasdfadf > /tmp/findfile 2>&1
#echo aaa >> a(追加到a文件)
#cat > a.txt
hello! this is a test!
good for you
hello world
Ctrl+d(退出)
#cat a.txt
04.輸出的種類
正確的信息和錯誤的信息
#find / -name asdfasdfadf > /tmp/findfile 2>&1(將兩類信息:正確的
信息和錯誤的信息重定向到指定文件)
#find / -name asdfasdfadf &> /tmp/findfile(功能同上)
#echo aaa > a
#cat a
a
#echo aaa >> a
#echo aaa >> a
aaa
aaa
#cat << EEE
>adsfasdfa
>adfasdfasdf
>asdfads
Ctrl+d(或者輸入EEE,結束輸入)
adsfasdfa
adfasdfasdf
asdfads
05.改變輸入
#tr "a-z" "A-Z"
hello
HELLO
#tr "a-z" "A-Z" /etc/passwd
改:
#tr "a-z" "A-Z"(指明輸入源) < /etc/passwd
# cat > a.txt <<EEE
>hello
>world
>!
Ctrl+d(EEE)
#cat a.txt
hello
world
!
#vi b.sh
cat > b.txt <<(讓系統將一次鍵盤的全部輸入,先送入虛擬的‘當前文
檔’,再一次性輸入追加到文檔尾部) DDD
this is a text
asdfasdf
asdfadsf
asdfadsf
asdfadsf
asdfa
DDD
:wq
#chmod a+x b.sh
#./b.sh /tmp/bbb/b.sh
#./b.sh
#cat b.txt
this is a text
asdfasdf
asdfadsf
asdfadsf
asdfadsf
asdfa
# >(清空)2>(錯誤信息重定向)&>(正確和錯誤信息重定向
)2>&1(同&>輸出重定向)
#<<<(輸入重定向)追加
#>>(兩個輸出重定向)追加
#ls /etc/ |wc -l(包含多少行,多少個文件)
#ls(只是顯示出來)
byf sherk todd
#ls /etc/ > a
#cat a
byf
sherk
todd
06.管道
#ls /etc/ -l |(|前邊的輸出作為后邊指令的輸入,這就是管道,只能對
過濾器起作用)grep '^d'|wc -l(查看有多少個文件夾)
#ls /etc/ -l | grep '^-'|wc -l (有多少個普通文件)
#ls /etc/ -l | grep '^l'|wc -l (有多少個連接)
#ls /etc/ -l | grep '^l'|tee(復制從此|位置的前邊的輸出到bbb文件)
bbb|wc -l
07.實例
#tr '"a-m""n-z""A-M""N-Z"' '"N-Z""A-M""n-z""a-m"'
i love you very much
V YBIR LBH IREL ZHPU
#tr '"a-m""n-z""A-M""N-Z"' '"N-Z""A-M""n-z""a-m"' < /etc/passwd
文件加密,輸出重定向成abc.txt
#tr '"a-m""n-z""A-M""N-Z"' '"N-Z""A-M""n-z""a-m"' < /etc/passwd >
abc.txt
#tr '"a-m""n-z""A-M""N-Z"' '"N-Z""A-M""n-z""a-m"' < /etc/passwd >
|mail(也是一個過濾器) -s "For you" 312358196@163.com