Linux操作之输入输出重定向和管道
2011-03-01 20:24
176 查看
Unix下使用标准输入stdin和标准输出stdout,来表示每个命令的输入和输出,还使用一个标准错误输出stderr用于输出错误信息。这三个标准输入输出系统缺省与控制终端设备相联系在一起的。因此,在标准情况下,每个命令通常从它的控制终端中获取输入,将输出打印到控制终端的屏幕上。
但是也可以重新定义程序的输入 stdin和输出stdout,将它们重新定向。最基本的用法是将她们重新定义到一个文件上去,从一个文件获取输入,输出到另外的文件中等。
$ ls > ls.out
$ cat < ls.out
这种输入输出重定向带来了极大的灵活性,可以将输出结果记录下来,也可以将程序所需要的输入使用文件提前准备就绪,这样一来多次执行就不需要重新输入。
$ echo “ today is “ > out
$ date >> out
使用 >>标记表示输出结果采用添加的方式,将结果附加在文件out后面,而不是简单的将原有文件重新覆盖的方式。
更为灵活的方式是将输入输出和一个执行命令联系起来,而不是一个固定的文件。
$ ls -l | grep mbox
上面的命令,将 ls -l的输入作为grep的输入,这种方式称为管道。Unix提供了很多功能强大的小命令,但使用管道将这些命令组合起来,就形成了非常强大的工具组合,能完成非常复杂的工作。
Unix系统提供了一些特殊的设备文件,用在一些特殊情况下。例如一个特殊设备文件为/dev/null,永远无法写满,写入的内容被系统立即丢弃。如果不想看到程序的输出,可以使用它作输出。
$ make world > /dev/null
去除了屏幕输出,使整个程序执行过程非常平静。
但是也可以重新定义程序的输入 stdin和输出stdout,将它们重新定向。最基本的用法是将她们重新定义到一个文件上去,从一个文件获取输入,输出到另外的文件中等。
$ ls > ls.out
$ cat < ls.out
这种输入输出重定向带来了极大的灵活性,可以将输出结果记录下来,也可以将程序所需要的输入使用文件提前准备就绪,这样一来多次执行就不需要重新输入。
$ echo “ today is “ > out
$ date >> out
使用 >>标记表示输出结果采用添加的方式,将结果附加在文件out后面,而不是简单的将原有文件重新覆盖的方式。
更为灵活的方式是将输入输出和一个执行命令联系起来,而不是一个固定的文件。
$ ls -l | grep mbox
上面的命令,将 ls -l的输入作为grep的输入,这种方式称为管道。Unix提供了很多功能强大的小命令,但使用管道将这些命令组合起来,就形成了非常强大的工具组合,能完成非常复杂的工作。
Unix系统提供了一些特殊的设备文件,用在一些特殊情况下。例如一个特殊设备文件为/dev/null,永远无法写满,写入的内容被系统立即丢弃。如果不想看到程序的输出,可以使用它作输出。
$ make world > /dev/null
去除了屏幕输出,使整个程序执行过程非常平静。
相关文章推荐
- linux下的基本操作11(输入输出重定向及管道)
- linux基本操作学习04:管理输入输出 (重定向、管道符)、vim、gedit
- Linux输入输出重定向以及管道
- Linux中强大的输入输出重定向和管道
- linux输入输出重定向及管道
- linux常用命令-重定向与管道操作
- linux命令温故知新:输入输出重定向/管道
- linux - 输入输出重定向 及 管道
- linux 输入输出重定向以及管道
- Linux中输入输出重定向和管道
- Linux输入输出重定向以及管道
- linux的输入输出重定向和管道
- 【学习Linux】输入输出的重定向,管道
- Linux基本功八:输入输出重定向及管道
- [置顶] 【linux 命令】输入输出重定向及管道
- Linux曲径通幽:Shell编程(别名、历史、输入输出重定向、多命令顺序执行、管道符、通配符)
- Linux 变干边学 学习笔记之Linux进程、管道和重定向命令
- 【Unix/Linux编程实践】理解I/0重定向和管道
- linux 标准输入输出重定向
- Linux学习笔记之基本命令四(输入输出管道邮件)