Linux中的输入输出重定向

Linux 输入输出重定向在嵌入式系统中的应用 本文将介绍 Linux 输入输出重定向在嵌入式系统中的应用,包括标准输入、标准输出和错误输出的重定向,以及如何将命令的输出定向到文件或管道进行处理。中的应用,包括标准输入、标准输出和错误输出的重定向,以及如何将命令的输出定向到文件或管道进行处理。标准输出(stdout)是指程序默认将结果输出到终端屏幕的设备。通过输出重定向,我们可以将程序的输出内容保存到文件中,或者将其传递给其他命令进行处理。上述命令将程序 my_program 的错误输出合并到标准输出,并将结果保存到文件 output.txt 中。 阅读详情

Table of Contents

 

1.重定向

2.追加

3.管道

4.输入重定向


1.重定向


1>        正确输出重定向(这里因为默认是正确输出,所以这里可以将1省略,写成>)
2>       错误输出存放位置
&>       存放所有

首先以下面的有输出的命令为例,输出结果如下:

[dw@localhost Desktop]$ find /etc/ -name passwd
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
[dw@localhost Desktop]$ 

我们可以看到输出结果有正确的(2条)和错误(14条)的。

现在将正确的结果重定向到file文件中

[dw@localhost Desktop]$ find /etc/ -name passwd >file
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
[dw@localhost Desktop]$ cat file 
/etc/pam.d/passwd
/etc/passwd

可以看到只输出错误的,而正确的结果就重定向到了file文件中。

我们再将错误的结果进行重定向:

[dw@localhost Desktop]$ find /etc/ -name passwd 2>file
/etc/pam.d/passwd
/etc/passwd
[dw@localhost Desktop]$ cat file 
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

可以看到只输出正确的结果,而错误的结果重定向到了file 文件中。

最后将所有结果进行重定向:

[dw@localhost Desktop]$ find /etc/ -name passwd &>file
[dw@localhost Desktop]$ cat file 
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

可见所有结果都重定向到了file文件中。

2.追加


>>        追加正确的
2>>       追加错误的
&>>       追加所有
 经过上面的例子,我们可以看到每次重定向之后新的结果都会覆盖原来文件里的内容,要想不被覆盖,就要用到追加。

这里用法和重定向的用法一样。

我们这里举例说明:

[dw@localhost Desktop]$ echo hello would > file2
[dw@localhost Desktop]$ cat file2
hello would
[dw@localhost Desktop]$ find /etc/ -name passwd >>file2
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
[dw@localhost Desktop]$ cat file2
hello would
/etc/pam.d/passwd
/etc/passwd

可以看到,追加以后不会覆盖源文件的内容。


3.管道

我们称  |  为管道符,用来将前面的命令的输出作为后面的命令的输入。
首先我们用ls /bin | wc -l 来查看/bin有多少文件

[dw@localhost Desktop]$ ls /bin | wc -l 
1506

可以看到用wc -l 命令统计了ls 命令的结果。

我们知道输出有两种,正确的和错误的,管道中默认之处理正确的,例如:

[dw@localhost Desktop]$ find /etc -name passwd | wc -l  
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied
2

可以看到最后只统计了正确的,错误的正常显示。

如果要统计所有的,我们需要将错误的也进行处理,将正确的和错误的放到一起,可以用2>&1做到,举例:

[dw@localhost Desktop]$ find /etc -name passwd 2>&1 | wc -l  
16
[dw@localhost Desktop]$ 

可以看出结果为所有输出结果的统计。

如果我们还想再继续保存一份的话,可以配合tee 命令,举例:

[dw@localhost Desktop]$ find /etc -name passwd 2>&1 | tee file | wc -l
16
[dw@localhost Desktop]$ cat file
find: ‘/etc/pki/rsyslog’: Permission denied
find: ‘/etc/grub.d’: Permission denied
find: ‘/etc/lvm/archive’: Permission denied
find: ‘/etc/lvm/backup’: Permission denied
find: ‘/etc/lvm/cache’: Permission denied
find: ‘/etc/dhcp’: Permission denied
/etc/pam.d/passwd
/etc/passwd
find: ‘/etc/cups/ssl’: Permission denied
find: ‘/etc/sssd’: Permission denied
find: ‘/etc/polkit-1/rules.d’: Permission denied
find: ‘/etc/polkit-1/localauthority’: Permission denied
find: ‘/etc/audit’: Permission denied
find: ‘/etc/libvirt’: Permission denied
find: ‘/etc/firewalld’: Permission denied
find: ‘/etc/sudoers.d’: Permission denied

可以看到结果,先是复制一份输出到file文件再通过管道统计。


4.输入重定向

前面说的都是输出重定向,还有输入重定向,例如:

[dw@localhost Desktop]$ echo westos WESTOS > test2 
[dw@localhost Desktop]$ cat test2 
westos WESTOS

我们新建一个文件,里面分别输入大写和小写的两个单词以便查看结果。

我们用输入重定向来将文件里的内容交给tr命令作为其输入。

[dw@localhost Desktop]$ echo westos WESTOS > test
[dw@localhost Desktop]$  tr 'a-z' 'A-Z' < test
WESTOS WESTOS
[dw@localhost Desktop]$ 

可以看到,文件里的内容作了修改。

上面是单行重定向,还可以进行多行重定向,也叫多行录入,例如:

我们用vim test 命令创建一个多行录入脚本,在里面输入以下内容:
passwd <<EOF                                                      多行录入起始
lee
lee
EOF                                                                         当起始符再次出现表示录入结束
:wq                                                                           最后退出保存

最后使用命令bash test3 执行多行录入脚本,将两行lee分别作为更改用户密码时的两次录入采集,就实现了多行录入。

 

Python爬虫实战:如何优雅地处理BOSS直聘的反爬机制与Cookie失效问题 本文详细介绍了如何通过Python爬虫技术优雅应对BOSS直聘的反爬机制与Cookie失效问题。从多账号轮换、动态请求头生成到代理IP管理,提供了一套完整的解决方案,帮助开发者构建稳定高效的数据采集系统,有效提升爬虫成功率与数据质量。 阅读详情

相关推荐

Windows11下QGIS 3.34.4安装Geo-SAM插件全流程(附RTX3060 CUDA12.0配置技巧)

本文详细介绍了在Windows 11系统中为QGIS 3.34.4安装和配置Geo-SAM插件的完整流程,特别针对RTX 3060显卡用户提供了CUDA 12.0与PyTorch环境的精准搭建方案。通过预编码与交互式分割两大核心步骤,该插件能显著提升遥感图像半自动标注的效率,降低硬件门槛,是地理信息处理领域融合AI技术的实用指南。

weixin_29089057的博客 296

文档总结:linux的输入输出与vim的使用

1.管理输入输出 在linux系统中,正确输出的编号为1,错误输出编号为2在系统中用普通用户执行 “student” find /etc -name passwd 因为student用户权限问题会有以下输出 find: ‘/etc/pki/CA/private’: Permission denied ##没有进入权力,报错 find: ‘/etc/pki/rsyslog’: Pe

parameter_的博客 674

GWAS与eQTL相结合,进一步筛选疾病相关基因

欢迎关注”生信修炼手册”!在GWAS分析结果中,大部分显著的SNP位点都位于非编码区,很难直接挖掘这些位点的调控机制。通常假设与疾病关联的SNP位点通过调控基因表达来发挥作用,而eQTL...

庐州月光的博客 1万+

Linux输入输出重定向

利用重定向操作符可以重新定义命令涉及的默认的输入和输出设备对象,即重定向操作符可以将命令输入和输出数据流从默认设备重定向到其他位置输入输出重定向操作符“>”“>>”称为输出重定向操作符“<”、“<<”称为输入重定向操作符注意:重定向操作符本省不是一条命令,而是命令中附加的可改变命令的输入和输出对象的特殊符号。

qq_57289939的博客 6486

Vue3实战:企业级应用集成钉钉扫码登录全流程解析

本文详细解析了在Vue3企业级应用中集成钉钉扫码登录的全流程。从钉钉开放平台应用创建与配置,到Vue3前端如何优雅地嵌入并管理扫码组件,再到后端如何安全地处理OAuth 2.0授权码以换取用户信息并完成登录,提供了完整的实战代码与避坑指南。该方案能有效实现安全便捷的单点登录,统一企业身份认证。

weixin_29019241的博客 289

东方财富网API接口逆向分析:手把手教你破解那个带jQuery回调的股票数据接口

本文详细解析了东方财富网股票数据API接口的逆向工程实战技巧,重点介绍了JSONP接口的核心机制、参数解析及数据处理方法。通过Python代码示例演示了如何构造请求、处理分页数据及应对反爬策略,帮助开发者高效获取股票数据。文章还提供了完整的爬虫实现案例和常见问题排查指南。

weixin_30790841的博客 715

Linux 中的输入/输出重定向

文件描述符是与系统上打开的文件关联的非负整数。需要注意的是,文件描述符绑定到一个进程,并且每个进程都是唯一的。打开新文件时,内核会返回与其关联的文件描述符。有三个与您的终端关联的标准文件描述符。当bash启动时,默认情况下它会打开三个文件描述符(fd)所有这三个文件描述符都指向你的终端(例如 /dev/tty0),因此从你的终端读取输入,输出和错误被重定向到你的终端。这就是默认重定向的样子。但这些可以根据我们的需要进行更改。了解重定向如何工作的最佳方法是将它们可视化。

qq_61813593的博客 2833

从FinFET到NanoSheet:一文看懂TSMC制程技术的架构革命与性能飞跃

本文深入解析了TSMC从FinFET到NanoSheet的制程技术架构革命。FinFET通过三维立体结构解决了短沟道效应,而NanoSheet采用环绕栅极设计,实现了更强的静电控制与设计灵活性,结合EUV光刻技术,共同推动了芯片性能与能效的飞跃,为下一代AI与高性能计算奠定基石。

i3j4k5的博客 288

【Linux】重定向(输入重定向 | 输出重定向)

为了有效地让 Linux 程序协同工作,我们需要对命令输入输出进行重定向(Redirection),并将一个命令的输出通过管道(Pipes)连接到另一个程序的输入。本文将介绍如何在 Linux 中使用输入输出重定向。对于任何一条 Linux 命令执行,都是这样一个过程:用户从键盘或其它输入设备输入,输入通过 stdin 交给命令,命令执行。如果命令执行成功,会把成功结果通过 stdout 输出到输出设备上;如果命令执行出错,会把错误结果通过 stderr 也输出到输出设备上。将某个命令默认指向 stdou

XavierJ的博客 1万+

【SpringBoot 4.x 第70节】夯爆了,企业级 API 设计规范落地:状态码、错误码、接口文档与兼容性(超详解)!

🏆 本文收录于 《滚雪球学 Spring Boot 4.x》 专栏。本专栏面向 有一定 Java 基础,但尚未系统学习 Spring Boot 的读者,采用“滚雪球式学习法”:先跑通、再理解、再重构、再上线,带你从第一个 Hello API 开始,逐步完成一个可部署、可监控、可扩展的后端项目。

**My Coding Family** 131

热红外图像小目标检测算法综述

热红外小目标检测算法综述,着重介绍基于深度学习的小目标检测算法

Littro Innovations 4244

Linux输入输出重定向详解

一篇搞懂输入输出重定向

2301_78651048的博客 3136

【100%通过率】华为OD机试真题 Java&Go 实现【查找单入口空闲区域】【2022.11 Q4 新题】

给定一个 m xn 的矩阵,由若干字符 和0构成,X表示该处已被占据,0"表示该处空闲,请找到最大的单入口空闲区域.解释:空闲区域是由连通的O组成的区域,位于边界的0可以构成入口,单入口空闲区域即有目只有一个位于边界的0作为入口的由连通的'O"组成的区域。 如果两个元素在水平或垂直方向相邻,则称它们是“连通”的。

MISAYAONE的博客 2万+

linux系统中的输入输出与重定向

1.输入与输出 1.输入:键盘,鼠标以及系统录入字符; 输出:系统处理输入后产生的字符; 输出的形式:1正确,2错误 2.重定向输入 > ##定向正确输出 2> ##定向错误输出 &> ##定向所有输出 注意:定向会覆盖原文件内容 ...

monster_hahaha的博客 320

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux中的输入输出管理(输出重定向、输入重定向和管道)

Linux中的输入输出管理 理解什么输入输出的定义 1)字符设备 字符设备就是显示字符到屏幕上的设备文件 2)stdin 标准输入 编号为0 如:键盘 鼠标 打字机 3)stdout 标准正确输出 标号为1 4)stderr 标准错误输出 标号为2 管理系统输出 (1)输出重定向 | > | 重定向正确输出 | | 2> |

weixin_54720351的博客 935

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Linux系统中的输入输出管理(输入输出重定向,追加,管道)

理解什么输入输出的定义 如何管理输入(<, <<) 如何管理系统输出 输出重定向(>,2>,&>) 追加(>>,2>>,&>>) 管道符| ...

Lue的博客 654

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

【Linux中的】输入输出重定向

前言:         在Linux系统中,我们通常将键盘输入称之为标准输入,将屏幕输出       称为标准输出和错误输出,在Linux系统中我们通常需要查询一个文       件,但是我们只想显示自己想要的结果出现在屏幕上,这时我们可以通       过输出重定向来满足要求。   正文: 1、 输出重定向的明令列表如下: 命令 说明            命令&gt;...

weixin_43831670的博客 270

Linux Shell 编程中的输入输出重定向

本篇概要:1. 输入输出重定向;2. 文件描述符与错误重定向;3. 在脚本中重定向输入输出;4. 管道。 1. 输入输出重定向; 标准输入:键盘 标准输出:终端显示器 在使用 Shell 命令时,通常都是通过键盘对命令输入数据,而通过显示器可以查看命令输出的结果。 但是在很多时候我们需要使用文件来作为命令输入的数据,同时也需要将命令的输出保存在文件中。这时候就需要用到输入输出的重定向。也就是说将...

业余敲代码 573

Linux Shell中的输入输出重定向技巧

在Linux系统中,掌握输入输出重定向是一项基本而强大的技能。通过使用特定的符号,我们可以灵活地控制数据的流向。标准输入(文件描述符0)、标准输出(文件描述符1)和标准错误输出(文件描述符2)是Linux Shell环境中的三个基本通道。

记录成长 575

《Linux从小白到高手》理论篇补充:深入理解Linux中的输入输出及重定向

本篇是《Linux从小白到高手》理论篇补充篇。本篇深入介绍Linux中的输入输出及重定向。 输入和输出(I/O)是操作系统与用户、程序以及硬件设备之间交互的基本方式。Linux有很多输入输出操作,包括标准I/O、文件I/O、管道、重定向、设备文件等。

qq_45732829的博客 1608

【精通Linux系列】Linux中的输入输出与错误重定向详解

linux 下什么是输入输出错误重定向 简介:介绍输入输出错误重定向的使用 1:什么是输入重定向? 通俗的讲,输入重定向就是把要输入的信息写入到指定的文件中去 2:什么是输出重定向? 通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏) 3:什么是错误重定向? 通俗的讲,错误重定向就是把错误的信息写入到一个文件中去 在linux中一切皆文件 文件...

大数据小禅的博客 2834

Unix/Linux中的输入输出重定向

Linux Shell 环境中支持输入输出重定向,用符号来表示。0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出,比如 2>a.txt 表示将错误信息输出到文件a.txt中。 同时,还可以在这三个标准输入输出之间实现重定向,比如将错误信息重定向到标准输出,可以用 2>&1来实现。 Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/

TrueMan's Blog 2016
上一篇: 第二章 Linux下的文件管理
下一篇: Linux 中的帮助
FYRXP
博客等级 码龄7年 6粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值