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 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Ubuntu make编译结果同时输出到屏幕和文件 -> 正文阅读

[系统运维]Ubuntu make编译结果同时输出到屏幕和文件

0.参考

make日志同时输出到控制台和文件及2」&1

将Linux下编译的warning警告信息输出到文件中[整理笔记]

Linux 二零——1 bash shell——1.7管道和重定向

1.Linux中的I/O流

shell 使用 3 种标准「I/O 流」,每种流与一种文件描述符相关联:

  • stdin 是标准输入流,向命令提供输入。文件描述符为 0。
  • stdout 是标准输出流,显示来自命令的输出。文件描述符为 1。
  • stderr 是标准错误流,显示来自命令的错误输出。文件描述符为 2。

Linux中,脚本语言环境中,即你用make xxx即其他一些普通 linux 命令,比如ls,find等,不同的数字,代表不同的含义:
数字 含义 标准叫法
0 标准输入 stdin = standard input
1 标准输出 stdout = standard output
2 标准错误输出 stderr = standard error

系统默认的stdin,stdout,stderr都是屏幕,所以当你执行命令,比如make后,所输出的信息都是可以在屏幕上看到的 。

所以想要将对应信息输出到某个文件中,就用对应的数字加上重定向符号’>’,实现将这些信息重新定向到对应的文件中。

2.make输出的I/O流的重定向

2.1.make > out.txtmake 1> out.txt把正常输出重定向到文件

make > out.txt没有显示的指明要把1或者2哪个的输出流定向到文件中,那么默认的就是把stdout,即标准输出重定向到文件中,make > out.txtmake 1> out.txt是等价的。此时由于没有更改stderr的输出,因此屏幕上仍然可以看到make的error(包括warning)。

如下图所示,右侧是命令行只显示了一些warning,左侧是out.txt文件只显示了编译过程中的正常输出。显然这种方式不实用。
在这里插入图片描述

2.2.make 2> out.txt把错误输出重定向到文件

这种方式相比上面的方式更加实用一点,就是把error(包括wanring)重定向到文件中,这样在平面上只剩下正常输出,如下图所示。

但是这种方式存在的问题是如果编译出现错误,不能明显的在屏幕上看到,还需要打开文件进行查看。
在这里插入图片描述

2.3.make 2>&1 | tee out.txt把所有输出都定向到文件同时保留屏幕显示

2>&1,2 和 1 分别是 stderr 和 stdout,即将 stderr 重定向到 stdout。如果写成 2>1 则表示 stderr 重定向到 1 这个文件,所以有了 2>&1 这样特别的语法。

这样的结果可以在保留屏幕输出的所有内容的同时,把屏幕输出内容保存到文件中,如下图所示。但是存在的一个缺点就是由于把stderr重定向到了stdout中,导致正常的stdout输出没有了颜色,暂时不知道如何解决。
在这里插入图片描述

注意:不可以用make | tee out.txt,因为make后面什么重定向都不加的话,默认是把1即stdout输出到文件中,而不包含stderr,如下图所示。
在这里插入图片描述

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 19:10:50  更:2022-03-30 19:14:33 
 
开发: 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 23:35:21-

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