1、 第五讲:过滤器、输入输出及管道
Linux中的应用工具分为三种:
l 交互工具
l 过滤器
l 编辑器
能够接受数据,过滤再输出的工具,称为过滤器。
对过滤器和进程,存在着输入源与输出对象
一 、 输入、输出、重定向 可以查看记录 ls –l /dev/sdt*
输入: 过滤器的数据来源
——标准输入stdin(0): 默认是键盘
输出: 过滤器的数据去向
——标准输出stdout(1): 默认是终端屏幕
错误输出:报错讯息与标准输出走不同的I/O通道
——标准错误输出stderr(2): 默认是终端屏幕
重定向: 标准输入、输
2、出与错误输出,都可以用特定符号改变数据来源或去向
1. 输入重定向
a. 使用”<”来重定向输入源
b. 大多数工具都会以其后的文件名为输入源
c. 有一些过滤器一定需要添加 < 以明确输入源
2. 从当前文档输入
a. 使用 << 让系统将一次键盘的全部输入,先送入虚拟的 ‘当前文档’ ,然后一次性输入
例 : 1.txt
Cat > 1.txt < 改变数据输出目标
3、
范例:
ls –l > listfile //将当前目录下的文件以长模式显示,然后写入listfile文件
d. 文件已有内容会被消除
3 . 从错误输出重定向
a. 系统错误与标准输出使用的I/O管道不同
b. 默认情况下,系统报错会显示到终端屏幕上
c. 使用 2> 将报错讯息重定向入一个文件
l Find / -type s 2> /dev/null
d. 使用2>> 将报错讯息追加入一个文件
l Find / -name passwd 2>> results
例: ls-l 2> err //覆盖
ls - 2>>err
4、 //追加
4. 双重输出重定向
使用 > 和 2> 可以将一次操作的正确、错误输入,被单独地送到不同的地方:
Find / -perm -2 2> error >results
使用&>将所有输入都送向同一个地方:
Find / -perm +6000 >file
例:正确、错误重定向输入同一个文件里
find /etc –name passwd &>allout
find /etc –name passwd > allout 2>&1 //推荐使用这种方法
二 。 覆盖与追加
使用 > 进行输出重定向,文件的原内容会被覆盖
ls –l > listfil
5、e
使用 >>,可以将输出追加入文件
ls –l >> listfile
三. 管道
l 使用 | 将前一个过滤器的输出直接送入后一个过滤器的输入
ls –l | grep pass //grep是截取的功能
ls –l /etc | more //可以起到翻页作用
l 允许多重管道
l 注意管道前过滤器的输出与管道后过滤器的输入数据类型匹配
ls –l | more //分屏显示当前目录下的文件
cat < filea > fileb //拷贝filea 到fileb
cat file*> file //将数个以file开头的小文件合并成file
cat filea fileb > file //将filea、fileb合并成file
——oracle_1010个人笔记