Linux学习 -> 数据重定向

linux有三种标准输出设备, 分别是 标准输出标准错误输出标准输入

标准输出标准错误输出对应的物理设备为屏幕
标准输入 对应的物理设备为键盘

可以通过命令 ls /dev/std* 查看

所以我们写程序时所有的打印语句都是输出到标准输出的, 而非屏幕

linux提供上述三种标准设备的重定向操作

  1. 标准输出
    • >或者1> 覆盖式标准输出重定向
    • >>或者1>> 追加式标准输出重定向
  2. 标准错误输出
    • 2> 覆盖式标准错误输出重定向
    • 2>> 追加式标准错误输出重定向
  3. 标准输入
    • < 标准输入重定向
    • << 标准输入重定向,指定具体的结束符

这里主要写一下标准输入,例如

cat > ~/out.txt < .bashrc

上述将指令将cat的输出内容重定向到~/out.txt,而cat指令读取的内容通过标准输入重定向符从.bashrc中读取, 如果无法理解的小伙伴可以这样试试

cat ~/.bashrc
cat < ~/.bashrc
cat < ~/.bashrc >> ~/out.txt

这里需要注意的是cat ~/.bashrc指令是通过参数去寻找文件读取,而cat < ~/.bashrc是读取的标准输入

在说<<之前, 先看一下linux默认的标准输入

cat - > ~/out.txt

输入上述指令后,可以通过键盘输入任何内容,最后使用^d就可以结束输入了

那么知道标准输入之后,此标准输入重定向符 << 就是在标准输入的基础上增加了可以指定结束符, 如

cat << EOF > ~/out.txt

输入上述指令后,与标准输入唯一个区别就是,既可以通过^d结束输入,也可以通过EOF+Enter结束输入,但是需要输入的是结束符必须在一行行首并且前后不能有任何多余字符

1638877126847

你可能感兴趣的:(Linux学习 -> 数据重定向)