linux shell 输入输出重定向
linux 系统通常从终端接受用户输入,处理完成后将结果输出到终端。标准输入设备通常是键盘输入,当然也可以将输入重定向为文件或其他设备。标准输出设备通常是显示器终端窗口,当然也可以将输出重定向到文件或其他设备。下面简单介绍 linux shell 环境下常用的输入输出重定向的用法。
在 linux 环境下,通常使用文件描述符 0 代表标准输入(stdin),1 代表标准输出(stdout),2 代表标准错误输出(stderr),在使用命令行时,可直接使用 0,1,2 表示对应的标准输入和输出。
1. 输入重定向
# 将 file 文件内容作为输入,传递给程序 command command < file # 示例:将 test.sql 文件传递给 mysql 客户端执行 mysql < test.sql
2. 输出重定向
(1)标准输出重定向
command > log 或者 command 1> log # 示例1,将 date 命令输出的内容重定向到文件 date.log 中,覆盖写入 date > date.log # 示例2,将 date 命令输出的内容重定向到文件 date.log 中,追加写入 date >> date.log # 示例3,1表示标准输出 date 1> date.log
(2)标准错误输出重定向
command 2> log # 示例1,date 命令不能识别 -error 参数,报错信息输出到 stderr,重定向到文件 error.log 中 date -error 2> error.log # 示例2,追加模式写入 date -error 2>> error.log
(3)标准输出和标准错误输出合并后一起重定向
command > log 2>&1 或者 command >> log 2>&1 # 示例1,date 命令重定向 date > date.log 2>&1 # 示例2,追加模式写入 date >> date.log 2>&1
3. 标准输入输出合并重定向
可以在一个命令中同时使用输入重定向和输出重定向,如将 infile 作为输入,outfile 作为输出,如下:
command1 < infile > outfile
4. 特殊的 /dev/null 文件
/dev/null 可以理解为是一个垃圾桶,任何标准输出,包含标准错误输出,都可以重定向到这个特殊的文件中,如下所示:
command > /dev/null 或 command > /dev/null 2>&1
5. 带有回车的文本作为标准输入
如果标准输入的内容是一段文本,其中包含多个回车符,这样的文本也可以通过标准输入传递给命令,如下:
# 示例 cat << EOF this is text1 this is text2 this is text3 EOF
文章评论
共0条评论