Linux 输出输入重定向、tee命令详解

目录

一、输出重定向

方式一:直接重定向到文件

[方法 二:追加到文件(不覆盖原有内容)](#方法 二:追加到文件(不覆盖原有内容))

方式三:管道|

二、输入重定向

1、基本输入重定向<

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

[3、<<< 将单个字符串作为输入](#3、<<< 将单个字符串作为输入)

三、tee命令详解

基本语法:

常见OPTIONS:

常见功能:

1.同时输出到屏幕和文件

2.追加文件(不覆盖)

3.写入多个文件

4.忽略中断信号(-i)


一、输出重定向

是一种将命令的输出发送到文件或其他位置;

以errno命令为例,如何把errno -l查看的内容保存到文件里:

方式一:直接重定向到文件

bash 复制代码
errno -l > errno.txt

╰(*´︶`*)╯说明:> 会覆盖errno.txt的内容,如果errno.txt原本不存在,会自动创建在当前目录下,不用提前创建

方法 二:追加到文件(不覆盖原有内容)

bash 复制代码
errno -l >> errno.txt

╰(*´︶`*)╯说明:>> 会将输出追加到文件末尾,而不会覆盖原有内容。

方式三:管道|

将前一个命令的输出作为后一个命令的输入;

实例: 同时输入到屏幕和文件

bash 复制代码
errno -l | tee errno.txt

**╰(*´︶`*)╯:**加-a可追加内容:

bash 复制代码
errno -l | tee -a errno.txt

二、输入重定向

允许将文件 或其他来源的数据作为命令的输入

1、基本输入重定向<

将文件内容作为命令的输入

bash 复制代码
command < file.txt
#command指命令

示例:

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

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

示例:

三、tee命令详解

tee 是 Linux 中一个强大的分流命令 ,用于同时将数据输出到屏幕(标准输出)和文件

基本语法:

bash 复制代码
command | tee [OPTIONS] FILE1 FILE2 ... 

**╰(*´︶`*)╯:**file1 file2......数据将被写入的文件,可指定多个

常见OPTIONS:

|----|-----------------|
| -a | 追加到文件(默认是覆盖) |
| -i | 忽略终端信号(如Ctrl+C) |
| -p | 诊断非管道输入的错误 |

常见功能:

1.同时输出到屏幕和文件

2.追加文件(不覆盖)

1/2的例子,前文已示例过了,这里不再复述

3.写入多个文件

示例:

cpp 复制代码
dmesg | tee log1.txt log2.txt /dev/null
#输出的同时写入log1.txt、log2.txt、/dev/null
#/dev/null相当于一个黑洞

两个文件的MD5一致,说明写入的内容是一样的

因为tee默认会输出到屏幕,所以想要只保存文件但不输出屏幕可以这样

4.忽略中断信号(-i)

即使命令被中断后,已捕获的数据仍会保存

相关推荐
zylyehuo5 小时前
Linux 彻底且安全地删除文件
linux
用户8055336980318 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户0340952979118 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
乘云数字DATABUFF19 小时前
5分钟部署开源APM Databuff:OpenTelemetry全链路追踪入门实战
运维·后端
Web3探索者3 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo3 天前
Linux系统中网线与USB网络共享冲突
linux
荣--3 天前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森3 天前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜3 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10154 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux