Linux 输入、输出、错误重定向

Linux的标准输出 标准错误 标准输入 重定向 标准输出重定向 重定向标准输出 ls > /data/ls.out cal >> /data/ls.out 追加ls.out的文件 标准错误重定向方法 将正确和错误结果分别放入不同文件,erro1正确,erro2错误 [root@localhost ~]#ls /etc/ /error 1>erro1.log 2>erro2.log ... 阅读详情
AI摘要

本文深入讲解了Linux系统中标准输入、输出及错误输出的重定向技巧。从文件描述符的概念出发,介绍了输入重定向、输出重定向和错误重定向的基本用法,并详细解释了如何将标准输出和错误输出分别或合并重定向到文件中。

背景

执行完linux命令之后,希望将标准输出和错误输出分别重定向到不同的文件,否则在同一个文件的话,后期代码中不好处理,所以需要了解下知识背景。

文件文件描述符

系统中实际上有12个文件描述符,但是正如我们在上表中所看到的, 0、1、2是标准输入、输出和错误。可以任意使用文件描述符3到9。

标准输入是文件描述符0。它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。
标准输出是文件描述符1。它是命令的输出,缺省是屏幕,也可以是文件。
标准错误是文件描述符2。这是命令错误的输出,缺省是屏幕,同样也可以是文件。

输入重定向

主要用于改变命令的输入源,让输入不要来自键盘,而来自指定文件。基本用法:

命令 < 文件名

$ ls < ls.out

 
  • 1

输出重定向

主要用于改变命令的输出,让标准输出不要显示在屏幕上,而是写入到指定文件中。基本用法:
命令 > 文件名

$ ls > ls.out

 
  • 1

以上是对标准输出来讲的,至于标准错误输出的重定向,只需要换一种符号,将 > 改为 2> ,将 >> 改为 2>>。将标准输出和标准错误输出重定向到同一文件,则使用符号 &>。

错误重定向

为了重定向标准错误,可以指定文件描述符2。
grep命令没有找到该文件,缺省地向终端输出了一个错误信息。现在让我们把错误重定向到文件/dev/null中(实际就上是系统的垃圾箱):
$ grep “trident” missiles 2>/dev/null
这样所有的错误输出都输送到了/dev/null,不再出现在屏幕上。

合并标准输出和标准错误

在合并标准输出和标准错误的时候,切记shell是从左至右分析相应的命令的。下面给出一个例子:
$ cleanup >cleanup.out 2>&1
在上面的例子中,我们将cleanup 脚本的输出重定向到>cleanup.out文件中,而且其错误也被重定向到相同的文件中。
$ grep “standard”* > grep.out 2>&1
在上面的例子中,grep命令的标准输出和标准错误都被重定向到grep.out文件中。你在使出前面提到的“此处”文挡时,有可能需要把所有的输出都保存到一个文件中,这样万一出现了错误,就能够被记录下来。通过使用2 > & 1就可以做到这一点

& 表示等同于的意思,2>&1,表示2的输出重定向等同于1,即和1重定向的文件系统上的位置是一样的

规律

重定向的使用有如下规律:
1)标准输入0、输出1、错误2需要分别重定向,一个重定向只能改变它们中的一个。
2)标准输入0和标准输出1可以省略。(当其出现重定向符号左侧时)
3)文件描述符在重定向符号左侧时直接写即可,在右侧时前面加& 【类似于指针前要加*号,来区分这、两种情况】。
4)文件描述符与重定向符号之间不能有空格!

🌰

转自:Linux标准/错误输出重定向

标准输出

$ df -h >file
(base) pc@pc-System-Product-Name:/project/raw_fq$ cat file1
Filesystem      Size  Used Avail Use% Mounted on
udev             32G     0   32G   0% /dev
tmpfs           6.3G  2.4M  6.3G   1% /run
/dev/nvme0n1p2  228G   11G  207G   5% /
tmpfs            32G     0   32G   0% /dev/shm
tmpfs           5.0M  4.0K  5.0M   1% /run/lock
tmpfs            32G     0   32G   0% /sys/fs/cgroup
/dev/loop0       13M   13M     0 100% /snap/gnome-characters/139
/dev/loop2      2.3M  2.3M     0 100% /snap/gnome-calculator/260
/dev/loop1       36M   36M     0 100% /snap/gtk-common-themes/1198
/dev/loop4      152M  152M     0 100% /snap/gnome-3-28-1804/36
/dev/loop3      141M  141M     0 100% /snap/gnome-3-26-1604/82
/dev/loop5      141M  141M     0 100% /snap/gnome-3-26-1604/74
/dev/loop6      3.8M  3.8M     0 100% /snap/gnome-system-monitor/57
/dev/loop7      4.2M  4.2M     0 100% /snap/gnome-calculator/406
/dev/loop8      1.0M  1.0M     0 100% /snap/gnome-logs/61
/dev/loop9       90M   90M     0 100% /snap/core/6673
/dev/loop10      15M   15M     0 100% /snap/gnome-logs/45
/dev/nvme0n1p1  511M  6.1M  505M   2% /boot/efi
/dev/loop11      35M   35M     0 100% /snap/gtk-common-themes/818
/dev/loop12      91M   91M     0 100% /snap/core/6350
/dev/loop13      15M   15M     0 100% /snap/gnome-characters/254
/dev/loop14      54M   54M     0 100% /snap/core18/941
/dev/loop15     3.8M  3.8M     0 100% /snap/gnome-system-monitor/77
/dev/sda1       7.3T  5.3T  1.6T  78% /data
/dev/sdb1       7.3T   93M  6.9T   1% /public
/dev/sdd1       7.3T  572M  6.9T   1% /home
/dev/sdc1       7.3T  173G  6.7T   3% /project
tmpfs           6.3G   16K  6.3G   1% /run/user/121
tmpfs           6.3G   36K  6.3G   1% /run/user/1000
/dev/loop16      90M   90M     0 100% /snap/core/6818
/dev/loop17      15M   15M     0 100% /snap/gnome-characters/258
/dev/loop18     3.8M  3.8M     0 100% /snap/gnome-system-monitor/81
/dev/loop19     152M  152M     0 100% /snap/gnome-3-28-1804/40
$ df -h > file1
$ diff file1 file
28c28
/dev/sdc1       7.3T  173G  6.7T   3% /project
/dev/sdc1       7.3T  163G  6.7T   3% /project

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42

标准输出和错误输出分别放两个文件

$ ls /error test >right_file 2>wrong_file
$ cat right_file
test:
hangshu.tex
result.txt
text.txt
$ cat wrong_file
ls: cannot access '/error': No such file or directory

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

错误和正确的放一个文件

$ ls /error test >all.log 2>&1
$ cat all.log
ls: cannot access '/error': No such file or directory
test:
hangshu.tex
result.txt
text.txt

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

或者简单写为

ls /error test &>all2.log
$ cat all2.log
ls: cannot access '/error': No such file or directory
test:
hangshu.tex
result.txt
text.txt

 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

参考的文档:
Linux标准/错误输出重定向

Linux命令行使用之命令行输入与输出
Linux标准输入、输出和错误和文件重定向 专题

eNSP-抓包解析TCP三次握手和四次挥手的过程 一、环境搭建 1.设备连接 2.服务器配置 3.客服端配置 二、抓包测试 1.打开抓包软件 2.客户端获取数据 三、抓包结果 阅读详情

相关推荐

SRAM故障排查实战:如何用Nano Prober定位6T存储单元的异常点

本文详细介绍了在SRAM故障排查中,如何运用Nano Prober(纳米探针)技术精准定位6T存储单元的内部异常。面对传统方法难以发现的电性参数漂移(如晶体管阈值电压偏移)或微小物理缺陷,Nano Prober能直接对单个6T单元内的晶体管进行I-V特性测量,结合失效模式分析,有效解决读写错误等疑难问题,是芯片失效分析的关键工具。

v5w6x的博客 664

将标准输出和错误都重定向到同一个文件

Linux给程序提供三种 I/O 设备: 1、标准输入(STDIN) -0 默认接受来自终端窗口的输入 2、标准输出(STDOUT)-1 默认输出到终端窗口 3、标准错误(STDERR) -2 默认输出到终端窗口 支持的操作符号包括: 1> 或 > :把STDOUT重定向到文件 2> :把STDERR重定向到文件 &> :把标准输出和错误都重定向 >& :和上面功能一样,建议使用上面方式 将标准输出和错误都重定向到同一个文件,实现的方式有两种

一直在努力学习的菜鸟 3754

PV-RCNN实战:如何在KITTI数据集上实现3D目标检测(附完整代码解析)

本文提供了在KITTI数据集上实战PV-RCNN 3D目标检测的完整指南,涵盖环境配置、数据预处理、模型训练与评估全流程。通过详细的代码解析和调参技巧,帮助读者掌握这一融合点与体素优势的经典3D目标检测模型,并实现从理论到实践的跨越。

weixin_29098391的博客 403

将Linux脚本中的正常输出,警告,错误等信息输出到文件中

而系统默认的stdin,stdout,stderr,都是屏幕,所以,当你执行命令,比如make,后,所输出的信息,都是可以在屏幕上看到的。相应地,由于1=stdout没有变,还是屏幕,所以,那些命令执行时候输出的正常信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。相应地,由于2=stderr没有变,还是屏幕,所以,那些命令执行时候输出的错误信息,还是会输出到屏幕上,你还是可以在屏幕上看到的。此时默认情况是没有改变2=stderr的输出方式,还是屏幕,所以,如果有错误信息,还是可以在屏幕上看到的。

Baiyi_destroyer的博客 2302

OpenWebUI联网搜索实战:如何用SearXNG让本地大模型获取实时信息(附百度/360配置)

本文详细介绍了如何通过部署开源元搜索引擎SearXNG,为本地运行的OpenWebUI大语言模型(如Qwen、Llama)配置联网搜索功能,解决其知识库过时的问题。文章重点讲解了SearXNG的Docker部署、集成国内搜索引擎(如百度、360)的配置方法,以及如何与OpenWebUI无缝对接,从而实现本地大模型获取实时、准确的中文信息,提升其实用性。

weixin_28835583的博客 1874

逆变器并联--下垂控制引入虚拟阻抗

说明传统下垂控制的缺点、分析虚拟阻抗的原理和实现方法

weixin_58670090的博客 1万+

标准输出和标准错误重定向

程序:指令+数据 读入数据:Input 输出数据:Output 在linux中一条指令或者程序,可以分为三种形式: 标准输入:-0 默认接受来自键盘的输入 标准输出:-1 默认输出到终端窗口 标准错误: - 2 默认输出到终端窗口 I/O重定向:改变默认位置 把输出和错误重新定向到文件 支持的操作符号包括: > 把STDOUT重定向到文件,这里默认的是1,省略 2> 把STDERR重定向到文件 &> 把所有输出重定向到文件 需要注意的是,多次&g.

y805805的博客 5376

YOLOv11改进策略【模型轻量化】| 替换骨干网络为 GhostNet V1 基于 Ghost Module 和 Ghost Bottlenecks的轻量化网络结构

本文记录的是基于的YOLOv11网络模型轻量化方法研究。GhostNet中的Ghost模块和Ghost瓶颈结构是其轻量化的关键。Ghost模块克服了传统卷积层计算资源需求大的问题,Ghost瓶颈则合理设计了通道数量的变化以及与捷径连接的方式,能更好地在减少计算成本的同时保持较高性能,从而提升模型在移动设备上的应用能力和效率。

Limiiiing的博客 1430

Linux- 重定向标准输出(stdout)和标准错误(stderr)

在Linux或Unix系统中,你可以通过重定向标准输出(stdout)和标准错误(stderr)来将脚本的输出保存到一个文件中。说的是:“将标准错误(文件描述符2)重定向到与标准输出(文件描述符1)相同的地方。这将捕获正常的输出(stdout)和错误消息(stderr),并将它们都写入。这将只捕获正常的输出(stdout),但不包括错误消息(stderr)。是用来重定向标准错误(stderr)到标准输出(stdout)的。将标准错误也重定向到标准输出所指向的相同的文件。文件的末尾追加新的输出和错误消息。

青衫客36的博客 5338

YOLOv11改进 | 细节涨点篇 | DySample一种最新的轻量化动态上采样算子(效果完爆CARAFE)

本文给大家带来的最新改进机制是一种号称超轻量级且有效的动态上采样器——DySample。与传统的基于内核的动态上采样器相比,DySample采用了一种基于点采样的方法,相比于以前的基于内核的动态上采样器,DySample具有更少的参数、浮点运算次数、GPU内存和延迟。此外,DySample在包括语义分割、目标检测、实例分割、全景分割和单目深度估计在内的五个预测任务中,性能均优于其他上采样器(截至目前最有效的上采样算子),

Snu77的博客 4210

安卓App开发 篇三:Android SDK和API

Jetpack 是一个由多个库组成的套件,可帮助开发者遵循最佳做法、减少模板代码并编写可在各种 Android 版本和设备中一致运行的代码,让开发者可将精力集中于真正重要的编码工作。hl=zh-cnhl=zh-cnWorkManager 是 Android Jetpack 的一部分,是用于持久性工作的推荐解决方案,适用于需要通过应用重启和系统重新启动来调度的工作,也是后台处理操作的主要推荐 API。立即执行:必须立即开始且很快完成的任务,可以加急,使用和Worker,通过对调用处理加急工作。

生活在别处 1285

linux下重定向,把标准输出和错误输出一起同定向到文件

linux下重定向,把标准输出和错误输出一起同定向到文件 例如,要执行test里的脚本,把脚本的执行结果(包括标准输出和错误输出)一起重定向到 output shell代码如下: sh test 1>output 2>&1 代码中的1表示标准输出,2表示错误输出。2>&1表示把错误输出重定向到标准输出

xSong Studio 2890

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Linux输入输出错误重定向

Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作。     Linux默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘     STDIN 0

MyDriverC 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

大数据小禅的博客 2834

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

Linux 标准输入、标准输出、错误输出及其重定向

这里写目录标题输入重定向输出重定向重定向绑定 在linux中,每个进程都会有三个文件,并且这三个文件会进行重定向处理: /dev/stdin -->/proc/self/fd/0 //标准输入,默认为键盘输入 /dev/stdout -->/proc/self/fd/1  //标准输出,默认为显示器 /dev/stderr -->/proc/self/fd/2 //标准错误输出,有些脚本运行时会报错,就会输入到这。 输入重定向 输入重定向的基本命令如下: command &

TABE_的博客 3418

Linux中的重定向以及标准输入输出、混合输出和标准错误输出

文章目录重定向:标准输入:标准输出:混合输出:标准错误: 重定向: 标准输入: 在页面直接显示 << (cat <<eof)[> ss,>aa,> eof,ss,aa] 输入追加 cat <> /a.txt (> asa,> asfs,> afo,> efo)[asa,asfs,afo] 输入覆盖 cat < /a.txt 标准输出: > 重定向覆盖(echo “abcabcabc” > /a.tx

liu_chen_yang的博客 6191

linux 输入输出错误重定向

什么是输入重定向? 通俗的讲,输入重定向就是把要输入的信息写入到指定的文件中去什么是输出重定向? 通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏)什么是错误重定向? 通俗的讲,错误重定向就是把错误的信息写入到一个文件中去linux中一切皆文件 输入重定向: < wc -l < 123.txt输出重定向:> 代表覆盖写入 ...

小哇 422

Linux输入、输出、错误重定向

【代码】Linux输入、输出、错误重定向。

ba3310的博客 524

linux将报错输入文件,Linux输入输出错误重定向

Linux重定向是指修改原来默认的一些东西,对原来系统命令的默认执行方式进行改变,比如说简单的我不想看到在显示器的输出而是希望输出到某一文件中就可以通过Linux重定向来进行这项工作。Linux默认输入是键盘,输出是显示器。你可以用重定向来改变这些设置。比如用wc命令的时候本来是要手动输入一篇文字来计算字符数的,用了重定向后可以直接把一个已经写好的文件用‘句柄代号 句柄描述STDIN 0 键盘输入...

weixin_29867607的博客 1082

linux标准输入/输出/错误及重定向

标准输入/输出/错误 linux下每个进程在运行的过程中都会打开一系列的文件,可以通过lsof -p $pid来查看进程号为pid打开的文件,在/proc/pid/fd/下是该进程打开的文件的链接。其中有三个比较特殊的文件是每个进程都会打开,其文件描述符分为0,1,2,默认分别链接到标准输入(STDIN_FILENO)设备(/dev/stdin)、标准输出(STDOUT_FILENO)设备(/d...

lmix___的博客 1035

nohup: 忽略输入重定向错误到标准输出端_Linux系统重定向与管道

重定向1.标准输入、标准输出、标准错误FD:file descriptors (文件描述符)进程使用文件描述符来管理打开的文件打开的文件都有一个fd标准输入(STDIN) 标准输出(STDOUT) 标准错误(STDERR)FD是访问文件的标识是链接文件0 默认接受来自键盘的输入,即键盘只读1,2默认输出到终端窗口,可以理解为终端是屏幕3+ 默认为文件,可读可写示例看到的0123是FD,程序通过描述...

weixin_39632293的博客 2866

linux之输入输出错误重定向

linux之输入输出错误重定向

2302_76363587的博客 258

linux 下什么是输入输出错误重定向

linux 下什么是输入输出错误重定向 什么是输入重定向? 通俗的讲,输入重定向就是把要输入的信息写入到指定的文件中去 什么是输出重定向? 通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏) 什么是错误重定向? 通俗的讲,错误重定向就是把错误的信息写入到一个文件中去 linux中一切皆文件 文件描述符: posix名称 文件描述符 用途 /dev/stdin 0 标准输入 /dev/stdout 1 标准输出

ruan_luqingnian的博客 752

Linux命令 - 标准输入、输出、错误与I/O重定向;管道

1. 介绍了linux中标准输入、标准输出、标准错误的概念。 2. 讲解了如何使用各种重定向操作符,实现标准输入、标准输出、标准错误的重定向。 3. 讲解了管道操作符的使用

ChineHe的博客 1818

linux 标准输入、标准输出、错误输出的重定向

参考 command >> filename 把标准输出重定向到filename文件中(追加) command 1>> filename 把标准输出重定向到filename文件中(追加) command 2> filename 把标准错误重...

yahuuuwjl的博客 2100

linux下什么是输入输出错误重定向

什么是输入重定向 通俗的讲,输入重定向就是把要输入的信息写入到指定的文件中去 什么是输出重定向 通俗的讲,输出重定向就是把要输出的信息写入到一个文件中去,而不是将要输出的文件信息输出到控制台(显示屏) 什么是错误重定向? 通俗的讲,错误重定向就是把错误的信息写入到一个文件中去 linux中一切皆文件 输入重定向: < eg: wc -l < 123.txt 输出重定向:> #代表覆盖写入; >> #代表追加写入 eg: cat >> 123

zssz1026的专栏 506
上一篇: 《深入HDFS》--HDFS缓存
下一篇: 微信接收不到企业微信消息推送
SW_LCC
博客等级 码龄11年 4粉丝 114原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值