Linux常用命令——输入输出重定向 详解
命令介绍: 在Linux系统中,输入输出重定向是一个强大的功能,用于将命令的输入和输出重定向到文件或其他命令。通过重定向,可以将标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)重定向到不同的地方。
标准输入和输出:
1、标准输入(stdin): 文件描述符为 0,通常从键盘输入。
2、标准输出(stdout): 文件描述符为 1,通常输出到终端。
3、标准错误输出(stderr): 文件描述符为 2,通常输出到终端,用于输出错误信息。
输入输出重定向规则和标准
1、重定向标准输出
- 使用 > 重定向标准输出到文件,会覆盖原来文件内容。
- 例: 把 “Hello, World!” 输出到 output.txt 文件,如果文件存在将覆盖内容。
echo "Hello, World!" > output.txt
- 使用 >> 重定向标准输出到文件,会追加到原来文件末尾。
- 例: 把 “Append this line” 追加到 output.txt 文件的末尾。
echo "Append this line" >> output.txt
2、重定向标准错误输出
- 使用 2> 重定向标准错误输出到文件,会覆盖原来文件内容。
- 例: 这将把错误信息输出到 error.log 文件。
ls non_existing_file 2> error.log
- 使用 2>> 重定向标准错误输出到文件,会追加到原来文件末尾。
- 例: 把错误信息追加到 error.log 文件的末尾。
ls another_non_existing_file 2>> error.log
3、重定向标准输入
- 使用 < 将文件内容作为命令的标准输入。
- 例: 将把 input.txt 文件的内容作为 wc -l 命令的输入,并计算文件的行数。
wc -l < input.txt
4、同时重定向标准输出和标准错误输出
- 使用 &> 或者 command > 文件 2>&1 同时重定向标准输出和标准错误输出到同一个文件,会覆盖原来文件内容。。
- 例: 把标准输出和标准错误输出都重定向到 output_and_error.log 文件。
command &> output_and_error.log
command > output_and_error.log 2>&1
- 使用 &>> 或者 command >> 文件 2>&1 同时重定向标准输出和标准错误输出到同一个文件,会追加到原来文件末尾。
- 例: 把标准输出和标准错误输出都追加到 output_and_error.log 文件。
command &>> output_and_error.log
command >> output_and_error.log 2>&1
5、将标准输出和标准错误输出分开重定向
- 使用 > 和 2> 分开重定向标准输出和标准错误输出到不同的文件。
- 例: 把标准输出重定向到 output.log 文件,标准错误输出重定向到 error.log 文件。
覆盖:
command > output.log 2> error.log
追加:
command >> output.log 2>> error.log
6、将标准输出和标准错误输出既输出到屏幕也输出到指定文件
- 需要结合管道符搭配 tee 命令。
- 例: 把标准输出和标准错误输出都追加到 output_and_error.log 文件,同时也在屏幕上输出。
command 2>&1 | tee -a output_and_error.log
更多命令请参考 Linux命令大全 专栏。