009-Linux的管道和重定向

news2024/11/16 11:57:29

文章目录

前言

一、重定向

1.1、FD简介

1.2、FD举例

1.3、重定向简介

1.3.1、输出重定向

正确输出:

错误输出

案例1:正确输出重定向

案例2:错误输出重定向

​编辑

案例3:正确和错误都输出重定向到相同位置

1.3.2、输入重定向

标准输入:

案例1:输入重定向发送邮件

二、管道

2.1、|

2.1.1、进程管道Piping

案例1:分别执行下面三个命令,查看管道的作用

2.1.2、tee管道

案例1:将 cat /etc/passwd 输出的内容保存一份到 text.txt 文件,同时将文件内容传递给后面的命令

2.2、参数传递Xargs

案例1:根据文件中的内容删除对应的文件

总结


前言

我们有时候会将一个命令的输出当作另一个命令的输入或者将文件中的内容当作命令的输入,这时候就会用到重定向和管道。


一、重定向

1.1、FD简介

file descriptors,FD,文件描述符,进程使用文件描述符来管理打开的文件。

FD是访问文件的标识,即链接文件。省去了冗长的绝对路径;

0              是键盘只读

1,2           是终端可以理解是屏幕

3+            是文件,可读可写

1.2、FD举例

通过我们非常熟悉的VIM程序,来观察一个进程的FD信息:

1、通过一个终端,打开一个文本:vim 666.txt

2、通过另一个终端,查询文本程序的进程号:ps aux | grep "vim 666.txt"

3、根据进程号,在/proc目录中查看文本程序的FD:ls -l /proc/进程号/FD


4、其中0、1、2、3就是FD,/dev/pts/2 表示终端,/root/.666.txt.swp 表示文件

1.3、重定向简介

1.3.1、输出重定向

输出重定向分为正确输出和错误输出

正确输出:

1> ,也可以简写成 > ,覆盖输出

1>> ,也可以简写成 >> ,追加输出

错误输出

2> ,覆盖输出

2>> , 追加输出

案例1:正确输出重定向

将命令的正确输出重定向到其他位置

date > out.txt
或
date 1> out.txt

案例2:错误输出重定向

将命令的错误输出重定向到其他位置

ls /abcd 2> out.txt
案例3:正确和错误都输出重定向到相同位置

将命令的正确和错误输出都重定向到相同的位置

ls /home /abcd &> out.txt

1.3.2、输入重定向

标准输入:

0<:可以简写为<

案例1:输入重定向发送邮件

将 test 文件中的内容作为邮件正文

mail -s "打招呼" yuqlf <test

二、管道

2.1、|

2.1.1、进程管道Piping

管道命令可以将多条命令组合起来,一次性完成复杂的处理任务。

语法        command1 | command2 | command3 | ...

案例1:分别执行下面三个命令,查看管道的作用

可以看到管道会把前面的输出当作后面命令的输入。

cat /etc/passwd

cat /etc/passwd | grep nologin

cat /etc/passwd | grep nologin | head -5

2.1.2、tee管道

tee管道:三通管道,即交给另一个程序处理,又保存一份副本。

案例1:将 cat /etc/passwd 输出的内容保存一份到 text.txt 文件,同时将文件内容传递给后面的命令
cat /etc/passwd | tee test.txt | tail -1

2.2、参数传递Xargs

一些特殊的命令不接收管道传递的内容,这时候就需要用到 xargs。

案例1:根据文件中的内容删除对应的文件

创建5个文件

touch /root/file{1..5}.txt

创建 file.txt 文件,文件内容如下:

根据 file.txt 文件中的内容删除对应的 file 文件,先不使用参数:xargs

cat /root/file.txt | rm -rvf

可以看到文件没有被删除

使用参数:xargs

cat /root/file.txt | xargs rm -rvf

可以看到 /root/file1.txt 和 /root/file3.txt 文件已经被删除


总结

提示:这里对文章进行总结:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1712624.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

学而后思,思学并进。学而不思则罔,思而不学则殆。

最后呢&#xff0c;我们学完这本书&#xff0c;读完这本书&#xff0c;得看他&#xff0c;这本书能不能去帮我们看清楚&#xff0c;很多的&#xff0c;现实社会中的事情的真实的本相&#xff0c;以及他所处的时代的事情的本相&#xff0c;因为学习&#xff0c;我们是为了学以致…

开源博客项目Blog .NET Core源码学习(28:App.Hosting项目结构分析-16)

本文学习并分析App.Hosting项目中后台管理页面的用户管理页面。   用户管理页面用于显示、检索、新建、编辑、删除用户数据&#xff0c;其附带一新建及编辑页面&#xff0c;以支撑新建和编辑用户数据&#xff0c;同时还附带重置密码页面&#xff0c;以重置用户密码。整个页面…

记录一次Redisson使用synchronized和分布式锁不生效的原因

最近在开发的过程中&#xff0c;遇到了一个并发场景&#xff0c;用户进行方案复制的时候&#xff0c;当快速点击两次操作的时候&#xff0c;出现了复制方案重名的情况&#xff0c;实际上是复制方案的方案名称&#xff0c;是由后端根据数据库已有的方案名称和当前要复制的方案名…

【测试SQLite】测试SQLite支持的SQL语句分类

测试SQLite支持的SQL语句分类 为了全面测试SQLite支持的SQL语句&#xff0c;需要设计一个包含多种类型的表结构&#xff0c;并编写各种SQL语句来测试这些功能。目前按照以下分类进行测试&#xff1a; 数据定义语言&#xff08;DDL&#xff09;数据操作语言&#xff08;DML&am…

【全网最全】2024电工杯数学建模B题53页成品论文+完整matlab代码+完整python代码+数据预处理+可视化结果等(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片链接&#xff0c;那是获取资料的入口&#xff01; 【全网最全】2024电工杯数学建模B题53页成品论文完整matlab、py代码19建模过程代码数据等&#xff08;后续会更新&#xff09;「首先来看看目前已有的资…

4. 排序算法

文章目录 1.简单排序1.1 冒泡排序1.1.1 步骤核心思想1.1.2 参考代码1.1.3 时间复杂度1.1.4 空间复杂度1.1.5 优化 1. 2. 选择排序1.2.1 核心思想1.2.2 步骤1.2.3 参考代码1.2.4 时间复杂度1.2.5 空间复杂度1.2.6 优化 1.3 插入排序1.3.1 思想1.3.2 步骤1.3.3 参考代码1.3.4 时间…

工控一体机10.1寸显示器电容触摸屏(YA1308101JK)产品规格说明书

如果您对工控一体机有任何疑问或需求&#xff0c;或者对如何集成工控一体机到您的业务感兴趣&#xff0c;可移步控芯捷科技。 一、硬件功能介绍 YA1308101JK产品介绍&#xff1a; YA1308101JK搭载 Android10 主流操作系统&#xff0c;具有系统版本更高、占用内存更低、运行效率…

Orcle查询组合字段重复的数据

oracle拼接字符串 在Oracle中&#xff0c;可以使用||运算符或CONCAT函数来拼接字符串。 使用||运算符&#xff1a; SELECT Hello, || World! AS concatenated_string FROM dual;使用CONCAT函数&#xff1a; SELECT CONCAT(Hello, , World!) AS concatenated_string FROM d…

Python的解析网页【XPath】

XPath 什么是XPath XPath&#xff08;XML Path Language&#xff09;是一种用于在XML文档中定位和选择节点的语言。它是W3C&#xff08;World Wide Web Consortium&#xff09;定义的一种标准查询语言&#xff0c;广泛用于解析和操作XML文档。 安装配置 安装lxml&#xff1…

微软Build开发者大会速览,OpenAI CEO站台剧透新模型

5月22日凌晨&#xff0c;微软Build 2024开发者大会在美国西雅图召开。微软CEO萨蒂亚纳德拉在会上发表主题演讲&#xff0c;宣布了超过50项产品更新&#xff0c;涵盖AI基础设施、模型产品以及生产力工具等多个领域。纳德拉强调&#xff0c;微软一直致力于让人工智能理解人类并帮…

AI工具助力:打造完美答辩PPT的秘诀

很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT可以根据以下分为以下几部分来写。 1.研究的背景和…

时间|基于SprinBoot+vue的时间管理系统(源码+数据库+文档)

时间管理系统 目录 基于SprinBootvue的时间管理系统 一、前言 二、系统设计 三、系统功能设计 1管理员功能模块 2用户功能模块 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农…

Unity版本使用情况统计(更新至2024年4月)

UWA发布&#xff5c;本期UWA发布的内容是第十四期Unity版本使用统计&#xff0c;统计周期为2023年11月至2024年4月&#xff0c;数据来源于UWA网站&#xff08;www.uwa4d.com&#xff09;性能诊断提测的项目。希望给Unity开发者提供相关的行业趋势作为参考。 2023年11月 - 2024年…

ChatGPT实现法语口语练习APP

使用ChatGPT实现一个法语口语练习APP可以提供一个强大的工具&#xff0c;帮助学习者提高他们的口语能力。以下是一个详细的实现流程&#xff0c;包括需求分析、技术选型、开发、测试和部署。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合…

考研数学|张宇《1000题》正确率达到多少算合格?

张宇1000题是考研数学难度较大一些的题集&#xff0c;题目难&#xff0c;计算量大&#xff0c;第一次做题时&#xff0c;如果正确率能达到60%&#xff0c;那就已经算是不错了。有些题目设计得挺巧妙&#xff0c;有时候第一次见&#xff0c;想不出解题思路也是正常的。 传统习题…

C51单片机开发--库函数

知不足而奋进 望远山而前行 目录 系列文章目录 文章目录 前言 目标 内容 开发过程回顾 使用库函数点灯 什么是库函数? 面向库函数和面向寄存器开发 使用delay模块延时 总结 前言 在嵌入式系统开发中&#xff0c;使用库函数是提高开发效率、简化编程的重要手段之一…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《基于优先指数的配电网分布式储能序次规划》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

我国赤泥年产量庞大 政策引导下赤泥绿色利用率将不断提升

我国赤泥年产量庞大 政策引导下赤泥绿色利用率将不断提升 赤泥是指从铝土矿中提炼氧化铝后产生的强碱性工业固体废渣&#xff0c;由于含大量氧化铁&#xff0c;表面呈现红色&#xff0c;而得名赤泥。   赤泥通常包含氧化铝、氧化铁、二氧化硅、氧化钙、碱金属及其他微量元素&…

【深度 Q 学习-01】 Q学习概念和python实现

文章目录 一、说明二、深度 Q 学习概念三、python实现四、结论 关键词&#xff1a;Deep Q-Networks 一、说明 在强化学习 &#xff08;RL&#xff09; 中&#xff0c;Q 学习是一种基础算法&#xff0c;它通过学习策略来最大化累积奖励&#xff0c;从而帮助智能体导航其环境。它…

SAP实施方法论

SAP新实施方法论 RDS Activate