shell 重定向
输出 重定向
cmd >/dev/null 2>&1> 代表重定向到哪里,例如:echo "123" > /home/123.txt /dev/null 代表空设备文件 2> 表示stderr标准错误 & 表示等同于的意思,2>&1,表示2的输出重定向等同于1 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"
# /dev/null 空设备文件
重定向参数
# 标准输出 stdout 和 标准错误 stderr 标准输入stdin cmd 1> fiel # 把 标准输出 重定向到 file 文件中 cmd > file 2>&1 # 把 标准输出 和 标准错误 一起重定向到 file 文件中 cmd 2> file # 把 标准错误 重定向到 file 文件中 cmd 2>> file # 把 标准错误 重定向到 file 文件中(追加) cmd >> file 2>&1 # 把 标准输出 和 标准错误 一起重定向到 file 文件中(追加) cmd < file >file2 # cmd 命令以 file 文件作为 stdin(标准输入),以 file2 文件作为 标准输出 cat <>file # 以读写的方式打开 file cmd < file cmd # 命令以 file 文件作为 stdin
cmd << delimiter
cmd;
#从 stdin 中读入,直至遇到 delimiter 分界符 delimiter
>&n # 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出 <&n # 标准输入复制自文件描述符 n <&- # 关闭标准输入(键盘) >&- # 关闭标准输出 n<&- # 表示将 n 号输入关闭 n>&- # 表示将 n 号输出关闭
文件描述符
标准输入stdin:对应的文件描述符是0,符号是<和<<,/dev/stdin -> /proc/self/fd/0 标准输出stdout:对应的文件描述符是1,符号是>和>>,/dev/stdout -> /proc/self/fd/1 标准错误stderr:对应的文件描述符是2,符号是2>和2>>,/dev/stderr -> /proc/self/fd/2
还有一种打印重定向