通常在 Shell 中执行命令的时候,我们会在输入命令的下方看到执行结果,操作系统默认将命令的执行结果输出到显示器上。当然,我们也可以手动的指定输出路径,或者输入路径,这就是 I/O 重定向。

1.标准输出重定向

使用 cat 命令,命令的执行结果将会打印在屏幕中。

我们使用 > 来进行输出重定向,此时屏幕上不再打印命令执行结果了,而是将执行结果保存到了 ./target.xxx 文件中。

来看一下 ./target.xxx 文件中的内容:

2.标准输入重定向

tr 命令可以从键盘上读取标准输入,然后打印出命令的执行结果:

底下的光标表示 tr 命令在等待用户的输入,然后将它们打印在屏幕上。ctrl + c 可以终止此命令执行。默认情况下,tr 从键盘上读取内容输出,如果我们要在其他文件中读取内容,就要使用标准输入重定向。

3. >> 和 <<

在使用 > 进行输出重定向的时候,后一次的输出会覆盖前一次的输出,如果我们不想进行覆盖,就使用 >> 进行追加重定向。

和 >> 不同的是, << 并不表示追加重定向,而是进行文档输入,或者多行输入。使用 << 的时候需要使用定界符标志,关于这个命令,学过 PHP 的同学应该比较了解了。定界符可以任意取名,只要两端保持一致即可。

输入重定向和输出重定向也可以连接配合使用,这里使用 << 和 >> 举例:

4.标准错误输出流(STDERR)

除了标出输入流(STDIN),标准输出流(STDOUT),还有标准错误输出流(STDERR)。标准错误输出流和标准输出流是不同的数据流。

如果命令发生了错误,屏幕上会打印错误信息,由于 STDERR 和 STDOUT 属于不同的数据流,因此该错误信息并不会输出到 ./result 中。

标准错误输出流使用 2>(覆盖) 或者 2>> (追加)进行重定向:

屏幕上没有打印错误信息,将错误信息输出到 ./result 文件中。

如果我们想将命令执行的结果(正常结果和出错信息)一并输出到某个文件中,可以使用 >> 和 2>> 连接进行操作,也可以使用 &> 或者 &>> 重定向 STDOUT 和 STDERR 到同一个文件中:

5.管道

管道表示数据的流向:数据在某处进行处理后,通过管道传输到另一处进行处理。Linux 中使用 | 作为管道连接符,表示将上一次命令的执行结果作为下一次命令的输入。下面是管道的两个实例用法:

6.set 命令

set 是 bash 中的一个内建命令,可以进行一些功能的开启或者关闭。为了安全起见,我们一般是不允许进行覆盖重定向的,这是可以使用 set -C 表示禁止覆盖重定向。

使用 set +C 命令表示允许覆盖重定向。

如果在使用 set -C 禁止覆盖重定向之后,我们还是想执行这样的操作呢?我们可以使用 COMMAND >| FILE,通过在 > 后加一个竖线,可以实现此操作。

7.总结

本文介绍了 Linux 中的 I/O 重定向的实现,包括标准输入、输出重定向,以及标准错误输出重定向,还有覆盖重定向和追加重定向的区别。最后介绍了 Linux 中的管道,我们使用管道对命令进行连接,前一个命令的输出作为后一个命令的输入。内容比较简单,作为一个单独的知识点,还是将其独立成文,方便以后查阅。这篇文章会介绍 grep 命令和正则表达式,学会使用 grep 命令之后,我们在 Linux 上处理文件将会非常的方便快捷。

linux io重定向指令,Linux基础知识之 IO重定向相关推荐

  1. linux系统下io的过程,Linux系统基础知识:IO调度

    Linux系统基础知识:IO调度 IO调度发生在Linux内核的IO调度层.这个层次是针对Linux的整体IO层次体系来说的.从read()或者write()系统调用的角度来说,Linux整体IO体系 ...

  2. linux文件系统管理知识导图,Linux磁盘和文件系统管理基础知识自测

    自测简介:本试题为EMC自测专栏第22期,主要考查Linux磁盘和文件系统管理基础知识. 1. Linux系统中,所有设备文件存放在哪一个目录下? A. /etc B. /bin C. /dev D. ...

  3. 嵌入式Linux的OTA更新,基础知识和实现

    嵌入式Linux的OTA更新,基础知识和实现 OTA updates for Embedded Linux, Fundamentals and implementation 更新的需要 一旦嵌入式Li ...

  4. linux的硬件系统管理,Linux 系统硬件管理的基础知识(四)

    以下主要介绍我的***次安装Linux系统遭遇,以及怎么度过这个遭遇的,希望对大家有所帮助.不喜欢的可以略过.以下接<Linux 系统硬件管理的基础知识(三)>. 四.关于存储设备的不同的 ...

  5. Linux操作系统快速入门|Linux操作系统(一)基础知识

    Linux操作系统(一)基础知识 linux官方网站:https://www.linux.org/ linux中国:https://linux.cn/ 前言        准备把以前在知乎上写的一些文 ...

  6. linux 导出io,Linux基础知识之IO重定向

    该博文以CentOS6.8_x86_64系统为基础,Xshell 5远程连接CentOS系统,以root身份登录系统. 什么是I/O重定向? 所谓I/O重定向简单来说就是一个过程,这个过程捕捉一个文件 ...

  7. linux命令基础知识 管道流,linux基础知识-I/O重定向,管道(示例代码)

    系统设定 默认输出设备:标准输出,STDOUT, 1 默认输入设备:标准输入, STDIN, 0 标准错误输出:STDERR, 2 标准输入:键盘 标准输出和错误输出:显示器 I/O重定向: Linu ...

  8. 【分享】4412开发板-嵌入式Linux开发须要掌握的基础知识和技能

    本文转自迅为电子论坛:http://www.topeetboard.com 1.Linux 基础 安装Linux操作系统 Linux文件系统 Linux经常使用命令 Linux启动过程具体解释 熟悉L ...

  9. Linux Socket详解 大全 基础知识

    1. Socket基础概念: 1.1:形象类比: Socket和电话网络的概念可以做一个很好的类比: Linux 编程中所说的socket就如同一个端点,类比到电话网中,它就如同一个电话机. 而Soc ...

  10. 嵌入式linux ota,嵌入式Linux的OTA更新,基础知识和实现

    嵌入式Linux的OTA更新,第1部分-基础知识和实现 OTA updates for Embedded Linux,  Fundamentals and implementation 更新的需要 一 ...

最新文章

  1. linux windows 编译安装,Windows下编译安装OpenEXR(x86版本)
  2. win10下vs2015编译的程序如何运行在win7等系统(无需安装Redistributable)
  3. 加速安装LibcSeacher
  4. SQL Server事务回滚对自增键的影响
  5. 深度解读 MongoDB 4.4 新特性
  6. 洛谷 P3384 【模板】树链剖分
  7. MyBatis-generator使用,Example缺少分页问题解决
  8. win10系统崩溃怎么修复_系统崩溃怎么重装系统图文教程
  9. 二维数组初始化_0基础学习C语言第七章:数组(2)
  10. “AI+遥感”产品研究现状
  11. db2去除字段值的空格_sql trim()函数去掉两头空格
  12. VS2019新建osgEarth项目时,GL.h文件提示报错
  13. Oracle Spatial详解
  14. 按键精灵识别不出图片
  15. WPS插件开发流程(2)
  16. 以“人”为本,精准营销
  17. 本机配置nginx后css样式失效
  18. wikioi 丘比特的烦恼 (最大权匹配)
  19. 做人要厚道,不要太冲
  20. linux setfont设置大小,setfont命令

热门文章

  1. hadoop学习-mahout-Bayes分类算法示例程序
  2. Python入门100题 | 第026题
  3. Cracer渗透视频课程学习笔记——基础知识(1)
  4. 写给师弟师妹的一封信-论在校程序员的学习方向
  5. 数据挖掘导论读书笔记3--分类
  6. 关于VR技术和未来发展---转
  7. Apache Hadoop YARN – ResourceManager--转载
  8. Redis持久化实践及灾难恢复模拟
  9. 客户流失预警模型-GBDT模型
  10. 【待继续研究】如何运用机器学习技术构建可行的反欺诈检测方案?