Linux 黑科技:输入输出重定向!命令结果想存就存、想丢就丢
Linux输入输出重定向介绍流程逻辑输入用户通过键盘向stdin输入数据进程从stdin读取这些输入。输出进程将正常结果写入stdout错误信息写入stderr两者默认都显示在终端同时进程也可通过 3 号通道与其他文件进行数据的读写交互。这种模型是 Unix/Linux 系统中 “一切皆文件” 思想的体现让进程能以统一的方式处理不同来源 / 目标的数据也为重定向Redirect等操作如把stdout输出到文件、把文件内容作为stdin输入提供了基础。标准输出重定向到文件#查找 /etc 目录下 文件名是passwd的所有文件[cywcentos7 ~15:32:25]$find/etc/-namepasswdfind: ‘/etc/grub.d’: 权限不够 find: ‘/etc/pki/CA/private’: 权限不够 find: ‘/etc/pki/rsyslog’: 权限不够 /etc/pam.d/passwd find: ‘/etc/dhcp’: 权限不够 /etc/passwd...# 将找到的文件名清单覆盖写入到passwd.list文件中[cywcentos7 ~15:33:07]$find/etc/-namepasswd1passwd,list find: ‘/etc/grub.d’: 权限不够 find: ‘/etc/pki/CA/private’: 权限不够 find: ‘/etc/pki/rsyslog’: 权限不够 find: ‘/etc/dhcp’: 权限不够...[cywcentos7 ~15:33:56]$catpasswd.list /etc/pam.d/passwd /etc/passwd# 补充说明# 1passwd.list可简写为passwd.list# 1和之间不能有空格# 将多个文件内容合并为1个[cywcentos7 ~15:34:13]$cat/etc/fstab /etc/hostsallinone# 将找到的文件名清单追加写入到passwd.list文件中[cywcentos7 ~15:35:31]$find/etc/-namepasswd1passwd,list find: ‘/etc/grub.d’: 权限不够 find: ‘/etc/pki/CA/private’: 权限不够 find: ‘/etc/pki/rsyslog’: 权限不够 find: ‘/etc/dhcp’: 权限不够 find: ‘/etc/selinux/targeted/active’: 权限不够 find: ‘/etc/selinux/final’: 权限不够...[cywcentos7 ~15:36:23]$catpasswd,list /etc/pam.d/passwd /etc/passwd /etc/pam.d/passwd /etc/passwd# 将错误信息覆盖写入到passwd.err文件中[cywcentos7 ~15:37:14]$find/etc/-namepasswd2passwd.err /etc/pam.d/passwd /etc/passwd[cywcentos7 ~15:38:45]$catpasswd.err find: ‘/etc/grub.d’: 权限不够 find: ‘/etc/pki/CA/private’: 权限不够 find: ‘/etc/pki/rsyslog’: 权限不够 find: ‘/etc/dhcp’: 权限不够 find: ‘/etc/selinux/targeted/active’: 权限不够...# 将错误信息扔掉[cywcentos7 ~15:39:15]$find/etc/-namepasswd2/dev/null /etc/pam.d/passwd /etc/passwd# 将错误信息追加写入到passwd.err文件中[cywcentos7 ~15:39:47]$find/etc/-namepasswd2passwd.err /etc/pam.d/passwd /etc/passwd[cywcentos7 ~15:40:42]$catpasswd.err find: ‘/etc/grub.d’: 权限不够 find: ‘/etc/pki/CA/private’: 权限不够 find: ‘/etc/pki/rsyslog’: 权限不够 find: ‘/etc/dhcp’: 权限不够 find: ‘/etc/selinux/targeted/active’: 权限不够 find: ‘/etc/selinux/final’: 权限不够....# 将错误信息、正确信息 覆盖 写入到不同文件[cywcentos7 ~15:40:59]$find/etc/-namepasswdpasswd,list2passwd.err# 将错误信息、正确信息 追加 写入到不同文件[cywcentos7 ~15:42:25]$find/etc/-namepasswdpasswd,list2passwd.err# 用于清空文件内容也可用于创建一个空文件testfile[cywcentos7 ~15:42:43]$testfile# 如果不存在则创建一个文件如果文件存在则啥也不干[cywcentos7 ~15:43:17]$testfile# 同时将错误信息、正确信息 覆盖 写入到相同文件[cywcentos7 ~15:44:51]$find/etc/-namepasswdpasswd.all# 同时将错误信息、正确信息 追加 写入到相同文件[cywcentos7 ~15:46:00]$find/etc/-namepasswdpasswd.all1和之间千万不能有空格否则会出错标准输出重定向到程序管道符|可以将上一个命令的输出作为标准输入传递给下一个命令#查看ext4中含有resize的行# 搜索所有ext4相关手册并保存到ext4.man文件中[cywcentos7 ~15:48:05]$man-kext4exte.man#过滤ext4.man文件中含有resize的行[cywcentos7 ~16:16:02]$grepresize exte.man resize2fs(8)- ext2/ext3/ext4filesystem resizer# 以上两个命令可以和合并为一行[cywcentos7 ~16:17:02]$man-kext4|grepresizer resize2fs(8)- ext2/ext3/ext4filesystem resizer#获取ens33网卡ip地址[cywcentos7 ~16:17:30]$ipaddr|grepens33$|awk{print $2}|cut-d/-f110.1.8.10#注意管道符号后的命令必须能够接收标准输入例如 ls **不**接收管道传递过来的标准输入[cywcentos7 ~16:19:42]$echo/etc/passwd|ls-l总用量24-rw-rw-r--.1cyw cyw6997月1615:34 allinone -rw-r--r--.1cyw cyw3677月1614:47 dhcpd.conf -rw-rw-r--.1cyw cyw12947月1616:17 exte.man lrwxrwxrwx.1cyw cyw97月1519:24 mytmp -/var/tmp/ -rw-rw-r--.1cyw cyw15947月1615:46 passwd.all -rw-rw-r--.1cyw cyw07月1615:44 passwd.err -rw-rw-r--.1cyw cyw07月1615:44 passwd.list -rw-r--r--.1cyw cyw18817月1611:23 profile -rw-r--r--.1cyw cyw18687月1613:42 profile.sh -rw-rw-r--.1cyw cyw07月1615:43 testfile drwxr-xr-x.2cyw cyw67月1410:59 公共 drwxr-xr-x.2cyw cyw67月1410:59 模板 drwxr-xr-x.2cyw cyw67月1410:59 视频 drwxr-xr-x.2cyw cyw67月1410:59 图片 drwxr-xr-x.2cyw cyw67月1410:59 文档 drwxr-xr-x.2cyw cyw67月1410:59 下载 drwxr-xr-x.2cyw cyw67月1410:59 音乐 drwxr-xr-x.2cyw cyw67月1411:08 桌面补充#先创建文件 file-{01..03}再查看[cywcentos7 ~16:31:56]$touchfile-{01..03}[cywcentos7 ~16:33:59]$ls-lfile-{01..06}ls: 无法访问file-04: 没有那个文件或目录 ls: 无法访问file-05: 没有那个文件或目录 ls: 无法访问file-06: 没有那个文件或目录 -rw-rw-r--.1cyw cyw07月1616:33 file-01 -rw-rw-r--.1cyw cyw07月1616:33 file-02 -rw-rw-r--.1cyw cyw07月1616:33 file-03#管道过滤不存在的文件file-06[cywcentos7 ~16:34:15]$ls-lfile-{01..06}|grepfile-06 ls: 无法访问file-04: 没有那个文件或目录 ls: 无法访问file-05: 没有那个文件或目录 ls: 无法访问file-06: 没有那个文件或目录#管道过滤存在的文件file-03[cywcentos7 ~16:35:10]$ls-lfile-{01..06}|grepfile-03 ls: 无法访问file-04: 没有那个文件或目录 ls: 无法访问file-05: 没有那个文件或目录 ls: 无法访问file-06: 没有那个文件或目录 -rw-rw-r--.1cyw cyw07月1616:33 file-03# | 标准错误和标准输出同时传递给下一个命令作为下一个命令的标准输入[cywcentos7 ~16:35:27]$ls-lfile-{01..06}|grepfile-06 ls: 无法访问file-06: 没有那个文件或目录tee命令作用接收管道传递过来的stdin并继续作为stdout输出#清空文件[cywcentos7 ~16:20:33]$passwd.list# 前没有任何东西就会将后面文件的内容覆盖为空[cywcentos7 ~16:21:36]$catpasswd.list[cywcentos7 ~16:21:43]$#文件没有内容# tee命令覆盖保存到文件[cywcentos7 ~16:21:45]$find/etc/-namepasswd2/dev/null|teepasswd.list#file2覆盖到/dev/nullfile1覆盖保存到passwd.list/etc/pam.d/passwd /etc/passwd[cywcentos7 ~16:22:41]$catpasswd.list /etc/pam.d/passwd /etc/passwd# tee命令追加保存到文件[cywcentos7 ~16:28:04]$find/etc-namepasswd2/dev/null|tee-apasswd.list#tee -a :追加保存作用等同于/etc/pam.d/passwd /etc/passwd[cywcentos7 ~16:29:49]$catpasswd.list /etc/pam.d/passwd /etc/passwd /etc/pam.d/passwd /etc/passwd# tee的标准输出继续通过管道传递下去[cywcentos7 ~16:26:02]$man-kpasswd|teepasswd.man|greppasswdchgpasswd(8)- 批量更新组密码 chpasswd(8)- 批量更新密码 gpasswd(1)- administer /etc/group and /etc/gshadow mkpasswd(1)- 为用户产生新口令passwd(5)-(未知的主题)...[cywcentos7 ~16:27:32]$catpasswd.man chgpasswd(8)- 批量更新组密码 chpasswd(8)- 批量更新密码 gpasswd(1)- administer /etc/group and /etc/gshadow mkpasswd(1)- 为用户产生新口令passwd(5)-(未知的主题)...标准输入重定向给程序#常规查看文件[cywcentos7 ~16:44:21]$cat/etc/hosts127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6# cat 命令标准输入数据[cywcentos7 ~16:43:30]$cat/etc/hosts#数据流127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6[cywcentos7 ~16:48:13]$cat#只输入cat,回车hello#输入内容回车hello#显示输入的内容按ctrld退出# shell读取到EOF时候代表标准输入完成[cywcentos7 ~16:58:43]$catEOFhellohegiuajeEOF#按回车后自动结束并退出显示输入内容hello hegiu aje判定一个命令是否接收标准输入最简单的方式就是将文件内容作为标准输入重定向给程序#一次性将多行内容写入到文件中# 方法1使用引号[cywcentos7 ~17:00:52]$ ^C[cywcentos7 ~17:00:56]$echohello world hello python hello linuxlines.txt[cywcentos7 ~17:05:32]$catlines.txt hello world hello python hello linux#方法2使用cat重定向(推荐使用)[cywcentos7 ~17:05:44]$catlines.txtEOFhellohello worldhello linuxEOF hello hello world hello linux[cywcentos7 ~17:07:11]$catlines.txt hello world hello python hello linux

相关新闻

Python自动化抢票脚本实战:基于Selenium与反检测策略

Python自动化抢票脚本实战:基于Selenium与反检测策略

1. 项目概述:为什么我们需要一个“聪明”的抢票脚本? 又到了一票难求的演唱会、音乐节旺季。你定好闹钟,提前十分钟就守在手机或电脑前,手指悬在刷新键上,心跳加速。倒计时结束,你以最快的速度点击&#x…

2026/7/23 10:21:38 阅读更多 →
单总线协议与DS18B20温度传感器应用详解

单总线协议与DS18B20温度传感器应用详解

1. 单总线协议与DS18B20温度传感器概述单总线协议(1-Wire)是Maxim Integrated(现为ADI)开发的一种独特通信协议,仅需一根数据线即可实现双向通信。这根线同时承担数据传输和供电双重职责,通过外部上拉电阻确…

2026/7/23 9:53:06 阅读更多 →
RAG系统构建与召回优化:从向量检索到知识库增强

RAG系统构建与召回优化:从向量检索到知识库增强

本文系统讲解了RAG系统中召回优化的五大核心策略,包含HyDE、混合检索、Rerank等工业级方案,所有代码均可直接运行。 一、RAG的真相:95%的工作在检索 RAG(Retrieval-Augmented Generation,检索增强生成)在20…

2026/7/23 10:21:34 阅读更多 →

最新新闻

AI论文助手哪个好用?2026年4款横评,写作查重降重一站搞定

AI论文助手哪个好用?2026年4款横评,写作查重降重一站搞定

【一句话答案】AI论文助手好不好用,看它能不能覆盖"写作—查重—降重—检测—排版"全流程——毕业之家ai(www.biye.com)从ai生成开题报告到答辩PPT一站配齐,实测一个账号走完整篇论文,不用在多个平台间反复横…

2026/7/23 20:07:26 阅读更多 →
手搓万兆软路由与纯固态NAS:基于LattePanda Mu与开源PCIe扩展板的低成本高性能方案

手搓万兆软路由与纯固态NAS:基于LattePanda Mu与开源PCIe扩展板的低成本高性能方案

手搓万兆软路由与纯固态NAS:基于LattePanda Mu与开源PCIe扩展板的低成本高性能方案 最近很多DIY爱好者和极客朋友都在琢磨,怎么用最小的成本,在家里或者小办公室里搭建一套高性能的网络和存储系统。既要万兆网速飞起,又想用上速度超快的NVMe固态硬盘,但成品设备动辄大几千…

2026/7/23 20:07:26 阅读更多 →
OpenWrt玩家必备:5款高性价比USB无线网卡实测(含NanoPi NEO3兼容清单)

OpenWrt玩家必备:5款高性价比USB无线网卡实测(含NanoPi NEO3兼容清单)

OpenWrt硬件选型实战:五款USB无线网卡在NanoPi NEO3上的深度横评 对于许多热衷于网络改造和智能家居部署的极客而言,NanoPi NEO3凭借其小巧的体积和强大的OpenWrt兼容性,成为了构建软路由、旁路由或轻量级网络服务的理想平台。然而,其本身并未集成无线模块,这让无线网络的…

2026/7/23 20:07:26 阅读更多 →
从零设计立创RK3568B路由器:低成本嵌入式Linux软路由全流程实战

从零设计立创RK3568B路由器:低成本嵌入式Linux软路由全流程实战

从零设计立创RK3568B路由器:低成本嵌入式Linux软路由全流程实战 大家好,我是老张,一个干了十几年网络工程的老兵。最近很多朋友问我,想从单片机转嵌入式Linux,但市面上的开发板动不动就上千块,有没有低成本的学习路径?这不,我正好用业余时间,基于瑞芯微的RK3568芯片,…

2026/7/23 20:07:26 阅读更多 →
基于Jetson平台搭载嵌入式GPU的智能服务机器人视觉系统软件总体设计

基于Jetson平台搭载嵌入式GPU的智能服务机器人视觉系统软件总体设计

一、引言随着科学技术的快速发展和人们生活水平的不断提高,人们对服务机器人的需求正日益增加。目前,服务机器人已逐渐在医疗护理、家庭清洁、娱乐教育等多个领域内发挥重要作用,能够有效地帮助人们从枯燥繁琐的日常工作中解放出来。本论文针…

2026/7/23 20:07:25 阅读更多 →
ESXI 7.0下RouterOS+OpenWRT双软路由避坑指南(含防火墙规则修复)

ESXI 7.0下RouterOS+OpenWRT双软路由避坑指南(含防火墙规则修复)

ESXi 7.0 双软路由部署:从拓扑规划到防火墙规则深度排障实战 最近在帮朋友调试家庭网络时,遇到了一个挺有意思的案例。他按照网上流行的教程,在ESXi 7.0上部署了RouterOS和OpenWRT双软路由,拓扑看起来没问题,配置也照着抄了一遍,但就是有个怪现象:OpenWRT旁路由自己用诊…

2026/7/23 20:06:25 阅读更多 →

日新闻

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:25 阅读更多 →
AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析

更多请点击: https://codechina.net 第一章:AI写作开头钩子设计:为什么你的AI文案完读率不足18%?——基于2,346篇A/B测试报告的归因分析 在对2,346篇跨行业AI生成文案的A/B测试数据进行聚类分析后,我们发现&#xff1…

2026/7/23 0:01:26 阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:01:26 阅读更多 →

周新闻

Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/22 8:58:19 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/22 19:43:43 阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 17:49:47 阅读更多 →

月新闻