Linux之输入输出重定向和管道

一、是什么

linux中有三种标准输入输出,分别是STDINSTDOUTSTDERR,对应的数字是0、1、2:

  • STDIN 是标准输入,默认从键盘读取信息
  • STDOUT 是标准输出,默认将输出结果输出至终端
  • STDERR 是标准错误,默认将输出结果输出至终端

对于任何linux命令的执行会有下面的过程:

一条命令的执行需要键盘等的标准输入,命令的执行和正确或错误,其中的每一个双向箭头就是一个通道,所以数据流可以流入到文件端(重定向或管道

简单来讲,重定向就是把本来要显示在终端的命令结果,输送到别的地方,分成:

  • 输入重定向:流出到屏幕如果命令所需的输入不是来自键盘,而是来自指定的文件
  • 输出重定向:命令的输出可以不显示在屏幕,而是写在指定的文件中

管道就是把两个命令连接起来使用,一个命令的输出作为另一个命令的输入

两者的区别在于:

  • 管道触发两个子进程,执行 | 两边的程序;而重定向是在一个进程内执行。
  • 管道两边都是shell命令
  • 重定向符号的右边只能是Linux文件
  • 重定向符号的优先级大于管道

二、命令

重定向常见的命令符号有:

  • > : 输出重定向到一个文件或设备 覆盖原来的文件

如果该文件不存在,则新建一个文件

如果该文件已经存在,会把文件内容覆盖

这些操纵不会征用用户的确认

  • >> :输出重定向到一个文件或设备,但是是 追加原来的文件的末尾
  • < :用于制定命令的输入
  • << :从键盘的输入重定向为某个命令的输入

以逐行输入的模式(回车键进行换行)

所有输入的行都将在输入结束字符串之后发送给命令

  • 2> 将一个标准错误输出重定向到一个文件或设备,会覆盖原来的文件
  • 2>> 将一个标准错误输出重定向到一个文件或设备,是追加到原来的文件
  • 2>&1:组合符号,将标准错误输出重定向到标准输出相同的地方

1就是代表标准输出

  • >& 将一个标准错误输出重定向到一个文件或设备覆盖原来的文件
  • |& 将一个标准错误管道输出到另一个命令作为输入

三、应用场景

将当前目录的文件输出重定向到1.txt文件中,并且会清空原有的1.txt的内容

ls -a > 1.txt

或者以追加的形式,重定向输入到1.txt

ls -a >> 1.txt

将标准错误输出到某个文件,可以如下:

$ touch 2> 2.txt
$ cat 2.txt
touch: 缺少了文件操作数
请尝试执行 "touch --help" 来获取更多信息。

通过组合符号将两者结合一起,无论进程输出的信息是正确还是错误的信息,都会重定向到指定的文件里

[root@linguanghui home]# abc &> file.txt
[root@linguanghui home]# cat file.txt 
-bash: abc: command not found

再者通过管道查询文件内容是否包含想要的信息:

cat test.txt | grep -n 'xxx'

上述cat test.txt会将test.txt的内容作为标准输出,然后利用管道,将其作为grep -n 'xxx'命令的标准输入。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

《视觉SLAM十四讲》-- 后端 1(下)

8.2 BA 与图优化 Bundle Adjustment 是指从视觉图像中提炼出最优的 3D 模型和相机参数&#xff08;内参和外参&#xff09;。 8.2.1 相机模型和 BA 代价函数 我们从一个世界坐标系中的点 p \boldsymbol{p} p 出发&#xff0c;把相机的内外参数和畸变都考虑进来&#xff0c;…

2023-2024 年适用于 Windows 电脑的顶级视频录制软件

想捕捉您正在在线观看的视频吗&#xff1f;使用网络摄像头录制视频会议以供日后参考。正在寻找可以完成这些任务的视频捕捉软件&#xff1f;这篇文章说明了一切。以下是一些适用于 Windows PC 的最佳视频录制工具。 什么是视频录制软件&#xff1f; 顾名思义&#xff0c;视频捕…

部署百川大语言模型Baichuan2

Baichuan2是百川智能推出的新一代开源大语言模型&#xff0c;采用 2.6 万亿 Tokens 的高质量语料训练。在多个权威的中文、英文和多语言的通用、领域 benchmark 上取得同尺寸最佳的效果。包含有 7B、13B 的 Base 和 Chat 版本&#xff0c;并提供了 Chat 版本的 4bits 量化。 模…

SM5212 是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器

SM5212 双向防反接功能 1.2A 锂电池线性充电芯片 概述&#xff1a; SM5212 是一款完整的采用恒定电流/恒定电压的单节锂电池线性充电器&#xff0c;并带有锂电池正负极反接保护和 VIN 正负反接保护功能&#xff0c;可以保护芯片和用户安全。 由于采用了内部 PMOSFET 架构&am…

基于Qt 多线程(继承 QObject 的线程)

​ 继承 QThread 类是创建线程的一种方法,另一种就是继承QObject 类。继承 QObject 类更加灵活。它通过 QObject::moveToThread()方法,将一个 QObeject的类转移到一个线程里执行。恩,不理解的话,我们下面也画个图捋一下。 通过上面的图不难理解,首先我们写一个类继承 QObj…

Windows使用ssh远程连接(虚拟机)Linux(Ubuntu)的方法

步骤 1.Windows下载一个SSH客户端软件 要使用SSH连接&#xff0c;当然得先有一个好用的客户端软件才方便。 我这里使用的是WindTerm&#xff0c;一个开源免费的SSH连接工具&#xff0c;用什么软件不是重点。 这里默认你已经生成过SSH的密钥了&#xff0c;如果没有&#xff0c…

基于群居蜘蛛算法优化概率神经网络PNN的分类预测 - 附代码

基于群居蜘蛛算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于群居蜘蛛算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于群居蜘蛛优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

双重预防隐患排查融合巡检系统,对无意义重复工作说不

隐患排查在行动&#xff0c;智能巡检系统在进行&#xff0c;然而有些隐患排查工作与巡检工作内容重复却不能同时上传系统&#xff0c;系统之间无法实现数据互联互通信息共享&#xff1f;融合智能巡检管理系统&#xff0c;不仅可以完美实现双重预防隐患排查管理、生产工艺巡检管…

一篇综述读懂m6A甲基化+分型+免疫浸润+机器学习。快来get

今天给同学们分享一篇生信文章“Comprehensive characterization of tumor microenvironment and m6A RNA methylation regulators and its effects on PD-L1 and immune infiltrates in cervical cancer”&#xff0c;这篇文章发表在Front Immunol期刊上&#xff0c;影响因子为…

八股文-面向对象的理解

近年来&#xff0c;IT行业的环境相较以往显得有些严峻&#xff0c;因此一直以来&#xff0c;我都怀有一个愿望&#xff0c;希望能够创建一个分享面试经验的网站。由于个人有些懒惰&#xff0c;也较为喜欢玩乐&#xff0c;导致计划迟迟未能实现。然而&#xff0c;随着年底的临近…

绿茵场上洒汗水,激情飞扬现活力——碧桂园社区足球课堂开课啦

“伙伴计划”是由共青团中央发起实施&#xff0c;中央专项彩票公益金提供支持&#xff0c;面向社区青少年开展的一项示范性服务项目。实施这个项目的主要目的是针对青少年在成长过程中遇到的实际困难和普遍性需求&#xff0c;开展“团团活力圈”青少年身心健康提升服务&#xf…

JUC“阻塞队列”水很深,你把握不住!

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 提到阻塞队列&#xff…

手把手教你实现贪吃蛇

> 作者简介&#xff1a;დ旧言~&#xff0c;目前大二&#xff0c;现在学习Java&#xff0c;c&#xff0c;c&#xff0c;Python等 > 座右铭&#xff1a;松树千年终是朽&#xff0c;槿花一日自为荣。 > 目标&#xff1a;实现贪吃蛇 > 毒鸡汤&#xff1a;时间并不可真…

前端JS解构数组对象

// 3. 对象数组解构const arr [{username: 小明,age: 18,agw:19},{username: 小ha,age: 18,agw:19}]arr.map(item>item.age)//js结构数组对象console.log( arr.map(item>{return {aaa:item.age,bbb:item.username}}))

zabbix的agent的安装部署

zabbix的agent的部署 主机ipagent-1192.168.10.129 zabbix官网部署教程 但是不全&#xff0c;建议搭配这篇文章一起看 下面有教程 zabbix服务端配置 修改主机名 hostnamectl set-hostname agent-1 exit配置zabbix的yum源 [rootagent-1 ~]# rpm -Uvh https://repo.zabbix…

193. 二叉搜索树的最小公共祖先

题目 题解 递归 def lowestCommonAncestor(self, root: TreeNode, p: TreeNode, q: TreeNode) -> TreeNode:if root.val < p.val and root.val < q.val:return self.lowestCommonAncestor(root.right, p, q)if root.val > p.val and root.val > q.val:return …

C# - System.Action

.net 内置的一种委托 using System; private Action m_Action; m_Action Func1; m_Action Func1; m_Action Func2;m_Action?.invoke()//获取委托中的Action列表 var actionList m_Action.getInvocationList();//委托中是否存在指定的Action var isExit Array.IndexOf(act…

智能电网线路阻抗模拟的工作原理

智能电网线路阻抗模拟是一种通过模拟电网线路的阻抗特性来实现电网故障检测和定位的技术。智能电网系统通过安装在电网线路上的传感器&#xff0c;实时采集线路上的电流、电压等参数&#xff0c;并将这些数据传输到监控中心。监控中心接收到传感器采集的数据后&#xff0c;对数…

nodejs常见知识点

文章目录 Http和Https的区别HTTP与TCP的关系-TCP的三次握手四次挥手接口请求方式HTTP状态码及其含义为什么JavaScript是单线程同步和异步任务什么是事件循环内存泄漏ajax原理和XmlHttpRequest对象简述JWT鉴权的原理一个tcp接连能发几个httpNodeJs中间件原理Express如何使用中间…

Elasticsearch 之聚合分析

本文主要介绍 Elasticsearch 的聚合功能&#xff0c;介绍什么是 Bucket 和 Metric 聚合&#xff0c;以及如何实现嵌套的聚合。 首先来看下聚合&#xff08;Aggregation&#xff09;&#xff1a; 1 什么是 Aggregation&#xff1f; 首先举一个生活中的例子&#xff0c;这个是京…