IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux 命令行的输出重定向使用说明 -> 正文阅读

[系统运维]Linux 命令行的输出重定向使用说明

标准文件描述符

Linux 操作系统为进程保留了3个特殊的文件描述符,这些文件描述符是标准的输入输出描述符,各个文件描述符的意义如下:

文件描述符值标准文件名含义
0stdin标准输入文件,代表键盘
1stdout标准输出文件,代表显示器
2stderr标准错误输出文件,代表显示器

stdinstdoutstderr 默认在进程启动时就打开了,0、1、2 这三个文件描述符可以直接在进程中使用。?

由于这些标准的输入输出都是以文件的方式操作的,因此,可以将以上这些文件重定向到硬盘上的文件中,或者重定向到管道中。

可以将输出重定向到非显示器上,而是输出到其它地方,一般是文件中。这样做的最大好处就是把命令的结果保存起来,当我们需要的时候可以随时查询。Bash 支持的输出重定向符号如下表所示。

命令行重定向格式?

在输出重定向中,>”?代表的是覆盖,>>”?代表的是追加。?

令格式含义说明
command?>file标准输出覆盖以覆盖的方式,把 command 的正确输出结果输出到 file?文件中。
command >>file标准输出追加以追加的方式,把 command 的正确输出结果输出到 file?文件中。
command 2>file错误输出覆盖以覆盖的方式,把 command 的错误信息输出到 file?文件中。
command 2>>file错误输出追加以追加的方式,把 command?的错误信息输出到 file?文件中。
command >file?2>&1将标准输出与错误覆盖到同一文件以覆盖的方式,把正确输出和错误信息同时保存到同一个文件(file)中。file 将以覆盖方式打开。
command >>file?2>&1将标准输出与错误追加到同一文件以追加的方式,把正确输出和错误信息同时保存到同一个文件(file)中。file 将以追加方式打开。
command >file1 2>file2覆盖到不同文件以覆盖的方式,把正确的输出结果输出到 file1 文件中,把错误信息输出到 file2 文件中。
command >>file1? 2>>file2追加到不同文件以追加的方式,把正确的输出结果输出到 file1 文件中,把错误信息输出到 file2 文件中。
command >file 2>file慎用的做法这两种写法会导致 file 被打开两次,引起资源竞争,所以 stdout 和 stderr 会互相覆盖
command >>file 2>>file慎用的做法这两种写法会导致 file 被打开两次,引起资源竞争,所以 stdout 和 stderr 会互相覆盖

注意

输出重定向的完整写法其实是fd>file或者fd>>file,其中 fd 表示文件描述符,如果不写,默认为 1,也就是标准输出文件

当文件描述符为 1 时,一般都省略不写,如上表所示;当然,如果你愿意,也可以将command >file写作command 1>file,但这样做是多此一举。

当文件描述符为大于 1 的值时,比如 2,就必须写上。

需要重点注意的是:
fd>之间不能有空格,否则 Shell 会解析失败;
>file之间的空格可有可无。
为了保持一致,建议在>两边都不加空格。?

例如:如下命令行语句是错误 的:

echo "I am a cat" 1 >log.txt

错误原因是:1>之间的空格。echo 命令的输出结果是 I am a cat,我们的初衷是将输出结果重定向到 log.txt,但是当你打开 log.txt 文件后,发现文件的内容为I am a cat 1,这就是多余的空格导致的解析错误。也就是说,Shell 将该条语句理解成了下面的形式:?

echo "I am a cat" 1 1>log.txt

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:39:24  更:2021-09-13 09:42:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 16:58:22-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码