Linux shell入门基础(三)

时间:2024-09-03 08:07:55
三、输入输出重定向及管道
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