重定向,管道符,黑洞文件
Posted sunlizhao
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重定向,管道符,黑洞文件相关的知识,希望对你有一定的参考价值。
输出重定向:
将命令的正常输出结果保存到指定的文件,而不是直接显示到屏幕上
语法:
- 如果文件不存在,则会创建
> 文件名
表示将标准输出的内容,覆盖写到后面的文件中
>> 文件名
表示将标准输出的内容,追加写到后面的文件中
将内核的版本信息追加到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
以上是关于重定向,管道符,黑洞文件的主要内容,如果未能解决你的问题,请参考以下文章