Linux学习7天(管道和重定向)------ days05
(一) 重定向
标准输入 输出 标准错误输出
012是特殊的FD,进程打开的文件FD从3开始。0123....只是保存文件描述符的编号,是一个数组的下标。
一般标准输出重定向:
默认情况输出到当前的终端
1) 重定向到 文件 2) 重定向到文件描述符,用&文件描述符 3)重定向到设备文件。
一般标准输入重定向:
默认情况从键盘输入
案例1:
seek跳过多少个块,才开始从zero读取一次,所以9.6P是假的文件大小。
案例2:mysql表结构导入
案例3:创建多行文件,手动执行shell命令
案例4:在脚本中使用重定向
(二) 管道
管道分为命名管道和匿名管道,命名管道用mkfifo命令创建一个管道文件,这一点在shell中有提到,而匿名管道就是|。
管道用于将命令的输出作为另一个命令的输入
在控制输出的方面来说: 管道和重定向都是针对一个进程的输出进行处理,不同的是,重定向是重定向到一个file,而管道是重定向到program
注意看上面的图,第一个命令的 输出 作为 第二个命令的 输入
案例1:按用户UID排序 /etc/passwd 中的内容
案例2:统计处最占cpu的5个进程
案例3:统计/etc/passwd 中用户使用的shell类型
案例4:统计网站的访问情况
案例5:打印当前所有IP
案例6:打印根分区已用空间的百分比(仅打印数字)
(三)tee管道: tee管道既可以重定向到program,也可重定向到file