栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux的重定向及管道

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux的重定向及管道

ll /proc/$$/fd  查看当前进程所打开的文件描述符,如下图所示,0,1,2输入输出都默认在/dev/pts/4 这个终端上

  • 0:输入信息
  • 1:输出信息
  • 2:错误信息

像如下图所示,xxx即为错误的输出

如下图所示,rm 文件名出现的提示也归纳为错误

我们新开一个终端

然后在另外一个终端可以看到,注意这里是默认为/dev/pts/5中

重定向redirect 标准输出

在/dev/pts/4上做重定向输出到/dev/pts/5(等同于ls 1>/dev/pts/5)

注意看这里有新信息

去/dev/pts/5看下,输出了/dev/pts/4的内容

hostname 把输出重定向到文件data.log,如果没有会创建data.log文件,cat一下可以看到文件的内容,同样的方法使用uname -r 重定向,会发现原来的东西会被覆盖掉,此时就需要用到>>(追加)

我们用rm 删除文件重定向,发现删除文件的提示信息也算错误被输出到data.log

我们想把标准输出的信息放在一个文件里面。错误的输出信息放到另外一个文件里面去,如下图所示即可实现

如果把对的错的都放一个文件里使用 &>即可实现

还有一种写法达到和&>一样的效果,2>&1的意思是把错误的往1里面放,1的输出到/data/all.log所以错误的输出也是往/data/all.log

如果把写法反过来放,就是不对的,因为执行次序是从左往右执行,执行2>&1的时候还没明确标准输出1>往哪里放,所以还是默认在屏幕打印。后面就是把标准输出打印到/data/all.log上,产生下面的结果

同理,下图也是正确的

标准输入

把data.txt的文件作为输入的内容传给bc,从而计算出结果

 把seq -s +10命令输入到文件作为bc的输入项,可以计算出结果

 输出错误格式给bc,然后把错误重定向到erro.log文件

 管道符 CMD1 | CMD2 (左边是标准输出,右边是标准输入)

使用管道符进行运算,不用创建临时文件。

把错误执行结果传给bc。等价于 1+2 2>&1 | bc

tr命令

tr和管道灵活用法(替换、删除、去重)

去重后再添加+号

单使用cat命令,输入line1输出line1,cat>a.txt输入line1,重定向到a.txt

多行重定向,将输入以!结束的时候才会重定向到a.txt,不像上面的输入一行重定向一行

把2+4作为标准输入给bc

下图,会生成一个临时文件,执行完后就没了

tee命令

把标准输出的内容同步生成到文件中

 输出的结果同步输出到test.log

这个命令的文件会覆盖,如果不想覆盖需要加-a 参数

cat 命令发送邮件,第一种方法是以EOF结尾输入,第二种是定义文件内容的方式输入给mail

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/974814.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号