博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell管道与重定向
阅读量:5033 次
发布时间:2019-06-12

本文共 1025 字,大约阅读时间需要 3 分钟。

输出重定向
$ ls -l > lsoutput

 

   这条命令将ls命令执行后的结果输入出到lsoutput文件中。

 

  在linux shell中使用符号 > ,< 来完成输入输出的重定向,同时对应的有三种标准的文件描述符,0(标准输入),1(标准输出),2(标准错误),可以

  单独的重写向其中的任何一种。你还可以重定向其他的文件描述符,但对标准文件描述符以外进行重定向的情况很少见。

  默认情况下>符号在 文件已经存在时它会覆盖,需要使用set -o noclobber(或set -C)命令设置noclobber选项,阻止重定向操作对一个已有文件

  的覆盖,使用set +o noclobber取消该选项。

  使用>>操作符将输出内容附加到一个文件。例如:   

$ ls -l >> lsoutput

  除了标准的输入与输出在重定向时可以不加文件描述符,你需要把你想要重定向的文件描述符加在>操作符的前面。

  如标准错误的输出流文件描述符是2,所以使用2>操作符.

$ ls -l 2> erroutput

   如果你想把两组输出都重定向到一个文件中,你可以用>&操作符来结合两个输出。例:

$ ls -l  > lsoutput 2>&1

  我个人对上面命令的理解: 

      首先设置ls的标准输出流为lsoutput文件,然后使用a>&b符号使a文件描述符与b文件描述符都输出到同一个位置,前提是你要先指定a文件描述符      的位置才有效。

 

输入重定向

cat < lsoutpu

 

管道

    linux管道操作符 | , 在linux下通过管道连接的进程可以同时运行,并且随着数据流在它们之间的传递可以自动的进行协调,你可以使用

 sort命令对ps命令的输出进行排序。

    如果不使用管道,你就必须分几个步骤来完成这个任务。

$ ps > psout    //输出到文件$ sort psout >> pssort    //排序

      更好的解决方案是用管道来连接进程,如:   

$ ps | sort > pssort

     允许连接的进程数目是没有限制的。注意,有系列的命令需要执行时,相应的输出文件是在这一组命令被创建的同时立刻被创建或写入的,所以

   决不要在命令流中重复使用相同的文件名。

 

 

 

 

 

 

转载于:https://www.cnblogs.com/xwgblog/p/shell.html

你可能感兴趣的文章
redis安装篇
查看>>
时间都去哪儿啦
查看>>
Modbus 通信协议详解
查看>>
深入JavaScript类型判定
查看>>
Linux 中shell 学习笔记
查看>>
Spring IOC之注解(1)
查看>>
Java递归
查看>>
Find Minimum in Rotated Sorted Array问题的困惑
查看>>
WIN10下的Docker安装
查看>>
关于IE6幽灵字体
查看>>
使用sysbench来测试MySQL性能的详细教程
查看>>
nginx tp5配置
查看>>
javascript template
查看>>
大数据分析的八大趋势
查看>>
二维数组、字符数组与字符串
查看>>
RX(Reactive Extinsion)和IX(Interactive Extinsion)库改名了
查看>>
https://github.com/search?l=Objective-C&p=2&q=cocos&ref=searchbar&type=Repositories
查看>>
MD5加密
查看>>
希望式管理和绝望式管理
查看>>
Django ——auth认证
查看>>