Linux中输入输出重定向的问题
Linux 命令默认从标准输入设备(stdin)获取输入,将结果输出到标准输出设备(stdout)显示。一般情况下,标准输入设备就是键盘,标准输出设备就是终端,即显示器。
输出重定向:命令的输出不仅可以是显示器,还可以很容易的转移向到文件,这被称为输出重定向。
命令输出重定向的语法为:
输出重定向会覆盖文件内容,请看下面的例子: $ echo line 1 > users $ cat users line 1 如果不希望文件内容被覆盖,可以使用 >> 追加到文件末尾,例如: $ echo line 2 >> users $ cat users line 1 line 2 输入重定向 和输出重定向一样,Unix 命令也可以从文件获取输入,语法为:
Here Document Here Document 目前没有统一的翻译,这里暂译为”嵌入文档“。Here Document 是 Shell 中的一种特殊的重定向方式,它的基本的形式如下:
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
- $ command > file
- $ who > users

- command < file
- 标准输入文件(stdin):stdin的文件描述符为0,Unix程序默认从stdin读取数据。
- 标准输出文件(stdout):stdout 的文件描述符为1,Unix程序默认向stdout输出数据。
- 标准错误文件(stderr):stderr的文件描述符为2,Unix程序会向stderr流中写入错误信息。
- $command 2 > file
- $command 2 >> file
- $command > file 2>&1
- $command >> file 2>&1
- $command < file1 >file2
- $command &>>file
命令 | 说明 |
command > file | 将输出重定向到 file。 |
command < file | 将输入重定向到 file。 |
command >> file | 将输出以追加的方式重定向到 file。 |
n > file | 将文件描述符为 n 的文件重定向到 file。 |
n >> file | 将文件描述符为 n 的文件以追加的方式重定向到 file。 |
n >& m | 将输出文件 m 和 n 合并。 |
n <& m | 将输入文件 m 和 n 合并。 |
<< tag | 将开始标记 tag 和结束标记 tag 之间的内容作为输入。 |
- command << EOF
- document
- EOF
- 结尾的EOF 一定要顶格写,前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 缩进。
- 开始的EOF前后的空格会被忽略掉。
- #!/bin/bash
- cat << EOF
- This is a simple lookup program
- for good (and bad) restaurants
- in Cape Town.
- EOF
- #!/bin/sh
- filename=test.txt
- vi $filename <<EndOfCommands
- i
- This file was created automatically from
- a shell script
- ^[
- ZZ
- EndOfCommands
- $ command > /dev/null
- $ command > /dev/null 2>&1

更多精彩