通常在 Shell
中执行命令的时候,我们会在输入命令的下方看到执行结果,操作系统默认将命令的执行结果输出到显示器上。当然,我们也可以手动的指定输出路径,或者输入路径,这就是
I/O 重定向。

Linux
命令默认从标准输入设备(stdio)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备是键盘。标准输出设备是终端(显示器)。

  1.标准输出重定向

  使用 cat
命令,命令的执行结果将会打印在屏幕中。

图片 1

  我们使用 >
来进行输出重定向,此时屏幕上不再打印命令执行结果了,而是将执行结果保存到了
./target.xxx 文件中。

图片 2

  来看一下 ./target.xxx
文件中的内容:

图片 3

一般情况下,每个命令运行时都会打开3个文件:

  2.标准输入重定向

  tr 命令可以从键盘上读取标准输入,然后打印出命令的执行结果:

  图片 4

  底下的光标表示 tr
命令在等待用户的输入,然后将它们打印在屏幕上。ctrl + c
可以终止此命令执行。默认情况下,tr 从键盘上读取内容输出,如果我们要在其他文件中读取内容,就要使用标准输入重定向。

图片 5

  • 标准输入文件(stdin):stdin的文件描述符为0。linux程序默认从stdin读取数据
  • 标准输出文件(stdout):stdout的文件描述符为1。linux程序more相stdout输出数据。
  • 标准错误文件(stderr):stderr的文件描述符为2。linux程序会向stderr流中写入错误信息。

  3. >> 和 <<

  在使用 >
进行输出重定向的时候,后一次的输出会覆盖前一次的输出,如果我们不想进行覆盖,就使用
>> 进行追加重定向。

  和 >> 不同的是, <<
并不表示追加重定向,而是进行文档输入,或者多行输入。使用 <<
的时候需要使用定界符标志,关于这个命令,学过 PHP
的同学应该比较了解了。定界符可以任意取名,只要两端保持一致即可。

图片 6

  输入重定向和输出重定向也可以连接配合使用,这里使用
<< 和 >> 举例:

图片 7

澳门微尼斯人手机版 ,输出输出重定向
图片 8
/dev/null文件
/dev/null 是一个特殊的文件,写入到它内部的内容都会被丢弃。

Author

发表评论

电子邮件地址不会被公开。 必填项已用*标注