第十一章 输入输出重定向及管道

第十一章  输入输出重定向及管道

我们将要学习:我们将要学习:

1 .  什么是过滤器

2 .  什么是标准输入输出

3 .  怎样改变标准输出

4 .  输出的种类

5 .  改变输入

6 .  管道

1、Linux过滤器

Linux 工具/命令分为三种:

1)过滤器  2)编辑器   3)交互式的工具

2、标准输入输出与重定向

?  输入:过滤器数据来源

–标准输入stdin (0):默认是键盘)

?  输出:过滤器数据去向

–标准输出stdout (1) :默认是终端屏幕

?  错误输出 :报错讯息与标准输出走不同的I/O通道

–标准错误输出stderr(2) :默认是终端屏幕

? 重定向:标准输入输出与错误输出,都可以

用特定符号改变数据来源或去向

[root@localhost li]# ls

[root@localhost li]# > a.sh     > 有清空文件,新建文件,重定向一个文件

[root@localhost li]# ll

total 0

-rw-r--r--. 1 root root 0 Jun 30 13:57 a.sh

> 有清空文件,新建文件,把正确的消息重定向一个文件

>2 把一个错误消息重定向过去,或是清空文件

find / -name shrek > a.sh  2>&1 或是find / -name shrek  &>a.sh

&>或是2>&1  把正确或是不正确的消息重定向到文件中

>>输出

< 和<<输入重定向

ls /tmp  -l  |grep  ^d |tee  a.sh | wc –l   显示所有/tmp中的文件夹的信息保存到a.sh文件中,并在屏幕上显示有多少个文件夹个数

[root@localhost tmp]# ls  /tmp -l  | grep ^d |tee /tmp/b.sh | wc-l

13

[root@localhost tmp]# cat /tmp/b.sh

drwxr-xr-x. 2 liwei liwei        6 Jun 2419:24 hsperfdata_liwei

中间的省略……….

drwxr-xr-x. 2 root  root         6 Jun 23 17:38 hsperfdata_root

[root@localhost tmp]#

tee复制一份到指定的地方

3、输入重定向

?  使用“<”来重定向输入

? 很多工具都设置其后接文件名为输入源

? 也有一些过滤器需要添加 “<”以明确输入源

4、从当前文档输入 追加

? 用 使用 “<<” 让系统将一次键盘的全部输入,先送入虚拟的‘ 当前文档’,再一次性输入追加到文档尾部

? 需要一对字母、符号或字符串作为起始终结标识符

? 选择任意符号作为起始终结标识符

5、输出重定向

?使用 “>” 改变数据输出目标

?  实例:

ls –l /etc > listfile

–将文件以长模式显示, 后写入listfile文件

–文件已有内容会被替代

6、提示:覆盖与追加

?  使用“>”进行输出重定向,文件的原内容会被覆盖

ls –l  aa.txt  > vi.txt

?  使用>>,可以将输出追加入文件

ls –l aa.txt >> vv.txt

管道

? 用 使用 “|”管道符号将前一个过滤器的输出直接输入到后一个过滤器

ls –l | grep hosts.conf

?  允许多重管道

? 管道前过滤器的输出与管道后过滤器的输入数据类型匹配

例子

? ls /dev |wc –l   统计/dev下有多少文件

? du  -a | sort –n –r    显示所有文件大小,并按从大到小排序

? ls –l /etc|grep “^d”   显示/etc文件夹下所有文件夹

? dmesg| more   分屏显示内核信息

猜你喜欢

转载自blog.csdn.net/I_love_xiao/article/details/80866799