Linux学习7天(管道和重定向)------ days05

(一)  重定向

标准输入 输出 标准错误输出

012是特殊的FD,进程打开的文件FD从3开始。0123....只是保存文件描述符的编号,是一个数组的下标。

Linux学习7天(管道和重定向)------ days05

一般标准输出重定向:

默认情况输出到当前的终端

1)  重定向到 文件    2) 重定向到文件描述符,用&文件描述符    3)重定向到设备文件。

一般标准输入重定向:

默认情况从键盘输入

案例1: 

Linux学习7天(管道和重定向)------ days05

seek跳过多少个块,才开始从zero读取一次,所以9.6P是假的文件大小。

Linux学习7天(管道和重定向)------ days05

案例2:mysql表结构导入

Linux学习7天(管道和重定向)------ days05

 

案例3:创建多行文件,手动执行shell命令

Linux学习7天(管道和重定向)------ days05

案例4:在脚本中使用重定向

Linux学习7天(管道和重定向)------ days05

(二) 管道

管道分为命名管道和匿名管道,命名管道用mkfifo命令创建一个管道文件,这一点在shell中有提到,而匿名管道就是|。

管道用于将命令的输出作为另一个命令的输入

Linux学习7天(管道和重定向)------ days05

在控制输出的方面来说: 管道和重定向都是针对一个进程的输出进行处理,不同的是,重定向是重定向到一个file,而管道是重定向到program

Linux学习7天(管道和重定向)------ days05

 

注意看上面的图,第一个命令的 输出  作为 第二个命令的 输入

案例1:按用户UID排序 /etc/passwd 中的内容

Linux学习7天(管道和重定向)------ days05

案例2:统计处最占cpu的5个进程

Linux学习7天(管道和重定向)------ days05

案例3:统计/etc/passwd 中用户使用的shell类型

Linux学习7天(管道和重定向)------ days05

案例4:统计网站的访问情况

Linux学习7天(管道和重定向)------ days05

案例5:打印当前所有IP

Linux学习7天(管道和重定向)------ days05

案例6:打印根分区已用空间的百分比(仅打印数字)

Linux学习7天(管道和重定向)------ days05

 

(三)tee管道: tee管道既可以重定向到program,也可重定向到file

Linux学习7天(管道和重定向)------ days05