重定向,管道符,黑洞文件

xiaoxiao2025-12-04  6

输出重定向:

将命令的正常输出结果保存到指定的文件,而不是直接显示到屏幕上

语法:

如果文件不存在,则会创建 > 文件名 表示将标准输出的内容,覆盖写到后面的文件中 >> 文件名 表示将标准输出的内容,追加写到后面的文件中

 

 

将内核的版本信息追加到1.txt文件中

 

 

输入重定向

将命令中接受输入的路径由默认的键盘改为其他文件

 

 

 EOF

本意是End Of File, 表示到了文件末尾,通常与 << 结合使用, 可以理解为分界符 标记符可以使EOF,也可以是ccc,ddd

cat > 1.txt << ccc 之后可以输入内容,直到输入ccc,结束输入

可以看到,文件名前面是 > 是覆盖写入,  >> 是追加写入

 

错误重定向

将命令执行过程中出现的错误信息(选项或参数错误)保存到指定的文件,而不是直接显示到显示器 错误信息保存到文件 操作符 错误重定向符号: 2> 标准输入: 1< 或者简写 < 标准输出: 0> 或者简写 > 2指的是标准错误输出的文件描述符(标准的输入和输出省略了1和0) 在实际应用中,错误重定向可以用来收集执行的错误信息, 为排错提供依据 对于shell脚本还可以将无关紧要的错误信息重定向到空文件/dev/null,保持脚本输出的简介

 

将错误显示的内容和 正确显示的内容分开

接下来查看两个目录

还可以进行简写,将正确的信息 和 错误的信息追加到两个文件

 

 

 

null黑洞, 

把/dev/null看做黑洞,所有写入他的内容都会永远丢失,而尝试从它哪里读取内容则会什么都不会读到 然而/dev/null对命令行和脚本非常有用

 

 zeor空文件

在类UNIX操作系统中,/dev/zero是一个特别的文件,当你读他的时候,他会提供无限的空字符 典型的用法就是产生一个特定大小的空白文件 使用dd命令产生一个50M的文件 参数 if 代表输入文件,如果不指定if,默认就会从stdin中读取输入 of 代表输出文件,如果不指定of,默认就会将stdout作为默认输出 bs 代表字节为单位的快大小 count 代表被复制的块数

 

能查看到文件的大小

 

但是不能显示文件的信息,因为没有内容

 

 

&> 和 >&符号

&表示等于的意思 1>&2 将标准输出重定向到标准错误 2>&1 将标准错误重定向到标准输出

 上图的no.txt文件中多了两个错误文件,是因为追加到文件的

 

将正确结果和错误结果放到一个文件中(简写)

 互动:工作中shell脚本中的 >/dev/null 2>&1 是什么意思

将标准输出和错误输出全部重定向到/dev/null中,也就是将产生的所有信息丢弃

 

 

 

管道 | 的使用

管道命令只处理前一个命令正确输出,不处理错误输出管道右面的命令,必须能够接受标准输入流才行关道符可以吧两条命令连起来,可以链接多个命令使用 ps -aux | grep sshd

 

 

 tee

读取标准输入的数据,并将其内容输出成文件 -a 内容追加到给定的文件 而非覆盖 磁盘使用信息 df -h 将磁盘使用的信息写入到文件 df -h | tee disk.log 将磁盘使用的信息追加写入到文件 df -h | tee -a disk.log

 

转载请注明原文地址: https://www.6miu.com/read-5040317.html

最新回复(0)