Skip to content
On this page

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

MIT Licensed | Copyright © 2021 - 2022