linux中的马里奥之重定向与管道详解

你背单词时

阿拉斯加的鳕鱼正跃出水面

你算数学时

太平洋彼岸的海鸥振翅掠过城市上空

你晚自习时

极图中的夜空散漫了五彩斑斓

但是少年你别着急

在你为自己未来踏踏实实地努力时

那些你感觉从来不会看到的景色

那些你觉得终身不会遇到的人

正一步步向你走来。

         ——网易云热评《Something Just Like This

 

还未深刻地了解Linux。知道的不多,那这次我们浅谈一下Linux中的I/O重定向和管道问题(让我不禁想到了马里奥),运行环境还如上次博客:CentOS6CentOS7,工具为SecureCRT

SecureCRT是一款支持SSHSSH1SSH2)的终端仿真程序,简单的说是Windows下登录UNIXLinux服务器主机的软件。SecureCRT支持SSH,同时支持Telnetrlogin协议。SecureCRT是一款用于连接运行包括WindowsUNIXVMS的理想工具。百科得到的,总之SecureCRT是一个伪终端,我们在这上面解决问题。

一、I/O重定向(输入输出重定向),首先我们了解一下Linux终端里面的输入和输出,输入输出来自/dev/fd fd是一个符号文件/链接文件,不是固定存储在硬盘当中,而是随着终端的创建产生的临时目录。产生对应链接。)

Linux给程序提供三种I/O设备,分别为:

标准输入:Standard input STDIN

标准正确输出:Standard output STDOUT

标准错误输出:Standard error STDERR

linux中的马里奥之重定向与管道详解

Linux命令执行过程:

linux中的马里奥之重定向与管道详解

(1)我们可以把标准输出重新定向到文件

格式:Command >/>> filename

使用 > 命令

>STDOUT重定向到文件 (默认)

2>STDERR重定向到文件

&>把所有输出重定向到文件 (新式方法CentOS6以后)

2>&1把所有输出重定向到文件 (老式方法CentOS6之前)

举个栗子linux中的马里奥之重定向与管道详解

众所周知,存在/etc/app,不存在/dev/app,则:

linux中的马里奥之重定向与管道详解

此外使用 > 文件内容会被覆盖,为了防止误操作可以使用命令set -C:禁止将内容覆盖已有文件,但可以追加,使用后想要偶尔覆盖文件,可以使用 >|file 来强制覆盖。相反set+C可以允许覆 

linux中的马里奥之重定向与管道详解

(2)使用 >> 命令重定向

  一言不合就上图

linux中的马里奥之重定向与管道详解

标准正确输出和错误输出还可以各自定向至不同位置,方便信息的查看。

Command > /path/to/file.out 2> /path/to/error.out

linux中的马里奥之重定向与管道详解

():合并多个输出到目的文件

linux中的马里奥之重定向与管道详解

二、 使用 < 来重定向标准输入

格式:Command < filename

某些命令能够接受从文件中导入的STDIN

tr ‘a-z’ ‘A-Z’ < filename

该命令会把输入文件中的小写字符都转换成写字符

tr  -d abc < filename

该命令会删除输入文件中的所有abc中任意字符

linux中的马里奥之重定向与管道详解

当然,还可以使用文件来代替键盘的输入

cat > filea < fileb

linux中的马里奥之重定向与管道详解

除了文本文件,其余也可以比如执行文件

linux中的马里奥之重定向与管道详解

把多行发送给STDIN

使用“<<终止词”命令从键盘把多行重导向给STDIN多数使用EOFEND

输入时直到 终止词 位置的所有文本都发送给STDIN文本有时被称 为就地文本(heretext)。

linux中的马里奥之重定向与管道详解

接下来重点来了,在实际工作中我们常用管道来转发各种标准输出

管道(Pipe

管道(使用符号“| ”表示)用来连接命令

Command1 | Command2 | Command3 | …

Command1 STDOUT 发送给Command2 STDIN Command2STDOUT 发送Command3 STDIN

STDERR 默认是不能通过管道转发,可利用2>&1 |& 实现

linux中的马里奥之重定向与管道详解

管道可以无限接续下去直到把文件处理满意

示例:获取root目录所在分区的可用空间(百分比)

linux中的马里奥之重定向与管道详解

获取本机的IP地址

 linux中的马里奥之重定向与管道详解

重定向到多个目标(tee

Command1 | tee [-a] filename | Command2

可以把Command1STDOUT保存在文件中,此外做为Command2的输入

-a 可以追加内容

linux中的马里奥之重定向与管道详解

 

原创文章,作者:Mozart,如若转载,请注明出处:http://www.178linux.com/81952

(0)
MozartMozart
上一篇 2017-07-22 11:59
下一篇 2017-07-22 14:54

相关推荐

  • Linux磁盘与文件系统管理

    Linux磁盘管理 硬盘的物理组成 柱面 硬盘与读存数据相关的部件:圆形硬盘片(一或多个)、磁头、机械臂。 硬盘片上有磁道,多个硬盘片上的同一磁道形成柱面,这个柱面就是分区时形成的最小单位,windows的C盘(系统盘)分区就是在最外层的一堆柱面上。 扇区 硬盘上的最小存储单位叫扇区,每个扇区储存512字节。在读取数据的时候,硬盘会转动,利用机械手臂将磁头移…

    Linux干货 2016-11-22
  • 马哥教育网络班20期+第三周博客作业

    1、列出当前系统上所有已经登录的用户的用户名,注意:同一用户登录多次,则只显示一次即可。 [root@llww3317 ~]# who    #显示当前用户登录信息 root     tty1    &nbsp…

    Linux干货 2016-06-26
  • rpm详解

    rpm详解 rpm详解 rpm使用方法 rpm起源 rpm是什么 rpm命名格式 rpm优缺点 rpm获取注意 rpm命令使用 rpm起源  由于在linux中安装应用程序需要源码包编译安装,对于非专业人员而言难度太大,因而出现一种将源码编译好的二进制程序,库文件,配置文件,帮助文件等打包成一个或多个特定格式的程序包,而管理这类包的工具之一,则称为…

    Linux干货 2016-12-23
  • Linuxd的发展史

    Linux发展史 Linux诞生:   1991年的八月,一个芬兰的名为Linus Torvalds的大学生为自己开始写作一个类似minix,可运行在386上的操作系统寻找志同道合的合作伙伴。FREAX系统后改名Linux。  Linux是什么:   按照Linux开发者的说法,Linux是一个遵循POSIX(注一)标作系统,标…

    Linux干货 2016-10-14
  • 永远不要让自己停下

    曾几何时,我还是刚出象牙塔的小男孩。想想现在,经过4年的洗礼,我不再是小男孩了。可是,我却发现自己变得越来越懒,守着那丁点的知识。 我早已坐吃山空而不自知,早已落后于时代的趋势而不自知。时代需要一个勤奋而专注的我,需要一个不懈怠的我。 如果,我不继续前进,等待我的只有堕落。逆水行舟不进则退,不逼自己一把,永远不知道自己的潜力有多大。 我希望说,再见,懈怠而懒…

    Linux干货 2016-10-07
  • 第十七周作业

    1、结合图形描述LVS的工作原理; 工作方式: LVS由前端的负载均衡器(Load Balancer,LB)和后端的真实服务器(Real Server,RS)群组成。RS间可通过局域网或广域网连接。LVS的这种结构对用户是透明的,用户只能看见一台作为LB的虚拟服务器(Virtual Server),而看不到提供服务的RS群。当用户的请求发往虚拟服务器,LB根…

    2017-05-27