一、输出重定向
是一种将命令的输出发送到文件或其他位置;
以errno命令为例,如何把errno -l查看的内容保存到文件里:
方式一:直接重定向到文件
errno -l > errno.txt
╰(*´︶`*)╯说明:> 会覆盖errno.txt的内容,如果errno.txt原本不存在,会自动创建在当前目录下,不用提前创建
方法二:追加到文件(不覆盖原有内容)
errno -l >> errno.txt
╰(*´︶`*)╯说明:>> 会将输出追加到文件末尾,而不会覆盖原有内容。
方式三:管道|
将前一个命令的输出作为后一个命令的输入;
实例:同时输入到屏幕和文件
errno -l | tee errno.txt
╰(*´︶`*)╯:加-a可追加内容:
errno -l | tee -a errno.txt
二、输入重定向
允许将文件或其他来源的数据作为命令的输入
1、基本输入重定向<
将文件内容作为命令的输入
command < file.txt #command指命令
示例:

2、<< 将多行文本作为输入
直到遇到指定的结束标记(如eof):

3、 <<< 将单个字符串作为输入
示例:

三、tee命令详解
tee 是 linux 中一个强大的分流命令,用于同时将数据输出到屏幕(标准输出)和文件。
基本语法
command | tee [options] file1 file2 ...
╰(*´︶`*)╯:file1 file2……数据将被写入的文件,可指定多个
常见options
| -a | 追加到文件(默认是覆盖) |
| -i | 忽略终端信号(如ctrl+c) |
| -p | 诊断非管道输入的错误 |
常见功能
1.同时输出到屏幕和文件
2.追加文件(不覆盖)
1/2的例子,前文已示例过了,这里不再复述
3.写入多个文件
示例:
dmesg | tee log1.txt log2.txt /dev/null #输出的同时写入log1.txt、log2.txt、/dev/null #/dev/null相当于一个黑洞

两个文件的md5一致,说明写入的内容是一样的
因为tee默认会输出到屏幕,所以想要只保存文件但不输出屏幕可以这样:

4.忽略中断信号(-i)
即使命令被中断后,已捕获的数据仍会保存

总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论