Linux输入输出管理完全指南:从重定向到管道的魔法之旅

IT疑难杂症诊疗室 10w+人浏览 771人参与

你以为Linux命令行只能简单输入输出?学会这些技巧,效率提升10倍!

理解Linux的输入输出系统

字符设备:数据的通道

Linux中有一类特殊的"文件"叫做字符设备,它们是程序与硬件通信的桥梁:

常见字符设备解析

/dev/tty:当前终端

/dev/null:黑洞设备,写入的数据永远消失

/dev/zero:无限提供空字符的源

/dev/random:真随机数生成器

程序的三个标准数据流

每个程序都有三个默认的数据通道:

 

通道文件描述符默认设备用途
标准输入 stdin0键盘程序接收输入
标准输出 stdout1屏幕程序正常输出
标准错误 stderr2屏幕程序错误信息

查看实际运行

重定向:改变数据流向

将原本要输出到屏幕上的内容,重新输入到其他设备中或文件中

输出重定向:让结果去该去的地方

基础输出重定向

输入重定向:从文件读取输入

单行输入重定向

多行输入重定向:

高级用法:Here String:

追加模式:积累而不是覆盖

追加定向类型符号作用
>>追加正确输出到文件
2>>追加错误输出到文件
&>>追加所有输出到文件

它会把 find  命令执行产生的标准输出内容(也就是查找过程中匹配到文件的正常提示信息),以“追加”的方式写入到 lee.out  文件里。如果 lee.out  文件原本就存在,新内容会添加在文件已有内容的末尾;要是文件不存在,就会自动创建该文件。

管道:命令协作的桥梁

基础管道操作

处理错误输出的管道2>&1

如果有权限错误,错误信息直接显示在屏幕,不进入管道

解决方案:合并错误输出到标准输出

Tee命令:分叉数据流

作用是双向输出——既把命令的标准输出显示在终端屏幕上,同时又将其保存到指定文件中,相当于“复制一份输出,一份看、一份存”。


1. 基本语法


命令 | tee [选项] 文件名

既查看结果又保存到文件

总结

Linux的输入输出管理就像给数据流动安装了一个智能交通系统:

重定向是单行道,让数据流向指定目的地

管道是立交桥,让不同命令的数据流畅协作

tee命令是分流器,一份数据多个用途

最好的学习方式就是实践!打开终端,尝试本文中的每个例子,很快你就能成为输入输出管理的高手!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值