第11章 管道(Pipe)——让命令开始合作
如果前面十章是学习工具那么从这一章开始我们学习 Linux 的思想。很多人说Linux 最厉害的是命令。其实不是。Linux 真正厉害的是把很多简单命令组合起来完成复杂任务。这一章就是整个 Linux 学习过程中的第一个分水岭。本章目标学完这一章你将能够理解什么是管道|。学会把多个命令组合起来。明白 Unix 组合优于复杂的设计思想。理解为什么很多 Linux 命令看起来简单却能解决复杂问题。第一节 为什么需要管道假设你有一个日志文件server.log里面有INFO Server Started INFO User Login ERROR Database INFO Logout ERROR Timeout老板说只给我所有 ERROR。上一章我们学过grep ERROR server.log没问题。但是再来一个需求。老板又说ERROR 有很多我只看最后 5 条。以前学过tail现在学过grep是不是开始思考能不能让 grep 的结果直接交给 tail答案就是可以。第二节 什么是管道来看grep ERROR server.log | tail -5中间这个|叫Pipe管道。想象一下工厂里面第一台机器负责筛选。第二台机器负责包装。中间有一条传送带。原料 │ ▼ grep │ 管道 │ ▼ tail │ ▼ 结果Linux 也是一样第一条命令输出结果。第二条命令直接接收。不需要保存文件。不需要复制粘贴。第三节 管道到底传递什么这是一个很多新手容易误解的地方。管道传递的不是文件。而是第一条命令的输出。例如ls输出Documents Downloads Pictures如果ls | ...真正进入管道的是Documents Downloads Pictures不是目录本身。而是这几行文字。这一点。以后非常重要。第四节 第一个经典组合假设。当前目录Documents Downloads Music Pictures Videos如果只想看包含Doc命令ls | grep Doc流程ls ↓ Documents Downloads Music Pictures ↓ grep ↓ Documents两个命令突然变成了一个新的工具。第五节 为什么不用一个超级命令很多人第一次学管道都会问为什么不直接设计list --contains Doc因为Unix 有一句非常著名的话Do one thing, and do it well.翻译过来每个程序只做好一件事情。所以ls负责列出。grep负责筛选。组合以后功能无限。第六节 再来看日志上一章学tail server.log看最后几行现在结合管道。例如tail server.log | grep ERROR什么意思先取最后10 行。再筛选ERROR。比直接搜索整个100 万行日志效率高很多第七节 管道可以无限连接例如命令A ↓ 命令B ↓ 命令C ↓ 命令D中间全部用|连接。例如A | B | C | D所以Linux 又有人叫流水线式操作系统。第八节 一个真实案例假设网站日志100 万行。老板说找今天所有 ERROR只看最后 20 条。以后你会写出类似这样的命令其中一些参数后面会学grep ERROR server.log | tail -20甚至更长cat server.log | grep ERROR | tail -20其实第二种写法虽然能工作但并不是最佳实践。因为grep本身就能读取文件。所以直接grep ERROR server.log通常更高效。后面学习更多工具以后。你会越来越理解什么时候该用管道什么时候没必要。第九节 一个错误示范例如pwd | ls其实没有意义。因为pwd输出只有/home/x而ls并不会从管道读取这个路径它默认列出当前目录。所以这两个命令根本不能这样配合。所以不是所有命令都适合接管道。关键在于后面的命令是否会读取前一个命令的输出。第十节 Linux 最经典的一句话Linux 最大的特点是什么Everything is composable.一切都可以组合。 企业里的真实场景假设运维值班。凌晨两点报警网站异常。真正的工程师可能不会打开图形界面。而是在终端里快速组合命令几秒钟就筛选出关键信息。随着后续学习会掌握越来越多这样的组合方式而不是依赖某一个万能按钮。⚠️ 新手最容易犯的错误错误一认为管道传递文件。实际上传递的是文本输出。错误二看到两个命令就加|其实只有后面的命令能够处理前面的输出。管道才有意义。本章总结今天真正学会了 Linux 最重要的思想。不是一个命令。而是多个命令合作。请牢牢记住命令A ↓ 输出 ↓ | ↓ 命令B ↓ 结果这就是Linux。 工程师视角不要急着追求会几十个命令。如果你真正理解了lsgrepfindtailless再加上|你已经拥有了解决很多实际问题的基础。真正的高手不一定知道更多命令而是知道如何把简单工具组合成解决方案。

相关新闻

Betaflight配置器:让无人机飞控调参变得像玩游戏一样简单

Betaflight配置器:让无人机飞控调参变得像玩游戏一样简单

Betaflight配置器:让无人机飞控调参变得像玩游戏一样简单 【免费下载链接】betaflight-configurator Cross platform configuration and management application for the Betaflight firmware 项目地址: https://gitcode.com/gh_mirrors/be/betaflight-configurat…

2026/7/24 21:54:42 阅读更多 →
地域环境对家电设备的损耗分析:贵阳本地维保方案实测与经验总结

地域环境对家电设备的损耗分析:贵阳本地维保方案实测与经验总结

作为长期扎根贵阳的居家技术爱好者,我一直习惯从设备工况、环境适配、损耗逻辑、运维成本的角度,复盘家用及小型商用电器的使用问题。在日常交流中发现,很多用户存在一个普遍性认知误区:家电故障、耗电激增、寿命缩短,…

2026/7/24 21:54:42 阅读更多 →
agx orin适配xcDeserializer3.0+gmsl双sensor

agx orin适配xcDeserializer3.0+gmsl双sensor

这里固定双sensor使用portA口,vc0->/dev/video1 vc1->/dev/video0 //tegra234-p3737-camera-zuojisi-overlay.dts // SPDX-License-Identifier: GPL-2.0-only // SPDX-FileCopyrightText: Copyright (c) 2018-2023, NVIDIA CORPORATION & AFFILIATES. All rights r…

2026/7/24 21:53:42 阅读更多 →

最新新闻

UCD3138数字电源控制器:DPWM与PCMC核心原理与PSFB实战配置

UCD3138数字电源控制器:DPWM与PCMC核心原理与PSFB实战配置

1. 项目概述:从模拟到数字的电源控制跃迁在电源设计领域,从模拟控制转向数字控制早已不是趋势,而是现实。作为一名在工业电源和服务器电源领域摸爬滚打了十多年的工程师,我亲眼见证了数字电源控制器如何从实验室里的“概念验证”一…

2026/7/24 22:02:45 阅读更多 →
DP83TC811R-Q1以太网PHY芯片RGMII与SMI接口配置实战指南

DP83TC811R-Q1以太网PHY芯片RGMII与SMI接口配置实战指南

1. 项目概述与核心价值在嵌入式网络设备开发中,选对一颗PHY芯片只是第一步,真正让它在你的板子上“活”起来,跑得稳,才是工程师价值的体现。我最近在几个车载网关和工业控制器的项目里,都深度使用了德州仪器的DP83TC81…

2026/7/24 22:02:45 阅读更多 →
入门高速PCB设计一

入门高速PCB设计一

文章目录一、如何判别信号是否为高速信号?二、传输线类别2.1 共轴传输线2.2 微带线2.3 带状线三、什么是特性阻抗?3.1 传输线与特性阻抗的关系3.2 特性阻抗与哪些因素有关3.3 PCB如何计算特性阻抗3.4 不控阻抗会造成什么影响3.5 特性阻抗分了哪几种类型四…

2026/7/24 22:02:45 阅读更多 →
Mac NTFS读写革命:开源工具Nigate如何颠覆你的跨平台文件传输体验

Mac NTFS读写革命:开源工具Nigate如何颠覆你的跨平台文件传输体验

Mac NTFS读写革命:开源工具Nigate如何颠覆你的跨平台文件传输体验 【免费下载链接】Free-NTFS-for-Mac Nigate: An open-source NTFS utility for Mac. It supports all Mac models (Intel and Apple Silicon), providing full read-write access, mounting, and ma…

2026/7/24 22:02:45 阅读更多 →
DLP3010 DMD芯片组:光学接口、热管理与系统可靠性设计实践

DLP3010 DMD芯片组:光学接口、热管理与系统可靠性设计实践

1. DLP3010 DMD芯片组:从微镜到系统的工程实践如果你正在设计一个微型投影仪、3D打印机的光固化单元,或者任何需要高速、高精度空间光调制的系统,那么德州仪器(TI)的DLP技术很可能在你的候选名单上。DLP3010作为一款0.…

2026/7/24 22:02:45 阅读更多 →
达梦数据库-学习-61-标准化部署

达梦数据库-学习-61-标准化部署

目录 一、环境信息 二、说点什么 三、实操步骤 1、用户组创建 2、创建逻辑卷 3、创建目录并挂载 4、开机自动挂载 5、赋予目录权限 5、自动化部署脚本下载链接 6、运行自动化部署脚本 (1)单机部署-兼容Oracle (2)主备…

2026/7/24 22:01:45 阅读更多 →

日新闻

用Highcharts 创建可拖拽三维散点立方体3D图表

用Highcharts 创建可拖拽三维散点立方体3D图表

该案例基于Highcharts scatter3d 三维散点图实现空间立方体散点可视化,核心特色:三维 X/Y/Z 三轴空间,所有散点分布在 0~10 立方体空间内;散点使用径向渐变实现立体 3D 圆球质感;支持鼠标 / 触屏拖拽画布,…

2026/7/24 0:00:29 阅读更多 →
AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口

AppCertDlls:进程创建路径上的 DLL 入口 AppCertDlls 位于 HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls。本文的程序功能是只读列出这个键在 64 位和 32 位注册表视图中的全部值,并显示每条值的来源、名称、类型和可安全显示的数…

2026/7/24 0:00:29 阅读更多 →
我的编程之路:第一篇博客

我的编程之路:第一篇博客

大家好,我是一名编程初学者,同时这也是我编程学习之路上的第一篇博客。在这里,我想要向大家介绍我的一些想法和规划。a.自我介绍我是一个刚刚接触编程的新手,目前在学习c语言,我对编程世界充满了强烈的好奇。当然&…

2026/7/24 0:00:29 阅读更多 →

周新闻

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

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

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

2026/7/24 3:59:20 阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

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

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

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

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

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

2026/7/24 18:52:18 阅读更多 →

月新闻