pipe
| 构成了管道,它将前面命令的标准输出作为下一个命令的标准输入。
bash
# 读取文件内容,读取前十行,再读取最后三行(十行中的后三行)
cat README.md | head -10 | tail -3
stdin/stdout
标准输入、标准输出,其实就是有特殊的文件描述符。
stdin,fd = 0,直接从键盘中读取数据。stdout,fd = 1,直接将数据打印至终端。stderr,fd = 2,标准错误,直接将异常信息打印至终端。
redirection
>:将文件描述符或标准输出中内容写入文件。会覆盖原内容。>>:将文件描述符或标准输出中内容追加入文件。
heredoc
bash
cat << EOF > README.md
其意思是将标准输入时的内容,写入到 README.md 中。
其中 << EOF,称作 Hear Document,当最终写入 EOF(End of line)时,则 heredoc 会停止输入。
日志重定向
有时,为了不显示日志,可将所有标准输出重定向至 /dev/null。
/dev/null 是一个空文件,对于所有的输入都统统吃下,化为乌有。
bash
# 把标准输出(1)重定向到/dev/null
echo hello > /dev/null
# 如果后边跟一个 2>&1,表示将 stderr (fd 为2) 重定向至 &1 (fd===1 的文件,及 stdout)
# 那么标准错误输出也会重定向到/dev/null
cat hello > /dev/null 2>&1


