码迷,mamicode.com
首页 > 其他好文 > 详细

标准的I/O和管道使用方法

时间:2016-08-01 23:37:36      阅读:443      评论:0      收藏:0      [点我收藏+]

标签:standard   二进制   error   程序   管道   

标准的I/O和管道

 

程序:指令+数据

    系统自带了许多二进制程序,这些二进制程序共有两部分组成,一部分是指令,一部分是数据。

    指令就是指二进制程序中的内容,然而程序的运行,也需要数据来支撑。

 

标准输出  STDOUT  -1   standard  output

    输入命令所呈现在屏幕上的内容称之为标准输出,但是不是所有的命令都有标准输出。例如cd  rm后面不跟参数时,就没有标准输出。

    标准输出的默认设备就是当前终端窗口。

标准错误  STDERR  -2  standard  error

    当命令的错误使用时,所显示在屏幕上的报错信息为标准错误。

    标准错误的默认设备也是当前终端窗口。

标准输入  STDIN  -0  standard  input

    键盘所输入的内容称为标准输入

I/O重定向  

改变I/O设备的默认位置  用“>”来实现重定向

 

 

 

>”标准输出的具体用法:

  1如果下图中ls.log这个文件不存在,则自动创建。

技术分享

  2如果重新重定向到ls.log文件中,则现有内容会覆盖原有内容。

技术分享

   3如果不想覆盖,想保留原有数据,则用“>>”。

技术分享

注意:

不是所有$SHELL都支持重定向。例如:

技术分享

        “>是用来重定向正确的信息的,不能用来重定向错误信息。

技术分享

   若想重定向错误信息用命令,用命令“2>”。

技术分享

   4、当正确命令和错误命令一起执行时,如何把错误信息和正确信息分别从定向到不同的文件夹中该如何实现???

技术分享

技术分享

技术分享

   5如果错误信息和正确信息放在同一个文件中呢?中间加“&

技术分享

         或执行下面这条命令也可以。但是命令顺序不能错。

技术分享

   6多个文件内容合并到一个文件中去。

技术分享

    7、多条命令重定向

技术分享

<”标准输入的重定向的具体用法:

     1一些命令需要键盘把一些重要的数据输入到系统中进行处理,例如发送电子邮件。

技术分享

    2、多行一块处理

      Cat命令执行后,输入内容,其每一行都要执行一遍,完全没有必要。

技术分享

    用“<<”可以实现多行一块执行,其中“E”表示多行的开始,随便什么内容。但是结束时,要跟前面的开始符号保持一致,也就是下图中也要用“E”结尾。只要不输入结束符,其每行的内容始终不会执行,只要输入结束符,其多行内容都会一块执行。

技术分享

 Tr 命令的具体用法:

     1、小写字母转换成大写字母

技术分享

   2、也可以实现“abc”转换“xyz

技术分享

   3tr  -d

        只删除含有a bc 的字符

技术分享

    4、tr  -s

         将重复的字符合并成一个

技术分享

     5/n     回车换行

    新建一个文件f1,用hexdump查看二进制编码,有/n,表示回车换行,tr -d命令删除,结果如下图。

技术分享

        也可以将空格转化成“/n”表示回车换行。

技术分享

    6tr  -c   除了aa的补集全部替换。

技术分享

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

   使用方法:

    1、将$USER的执行结果用管道符“|”传给tr作为参数执行小写字母转换大写字母。

技术分享

 2、电子邮件也可以用管道符传

技术分享

    3、管道接收的是标准输出,不接受标准错误。但是如果要想接收标准错误,用命令| &,表示前面命令无论成功失败,统统可以用管道来处理。

           技术分享

    4、也可以用管道进行多次处理,以得到我们想要的结果。

技术分享

    5|tee   既能将输出结果显示到屏幕上,也能输入到文件中。

技术分享

   若管道所输出的文件不存在,则会自动创建。下图中的f4文件本身不存在。

技术分享

    6、Set  -C

    文件原有内容不想被覆盖则可以用set-C将覆盖禁止。但是该命令只对当前终端有效,若终端退出再重新登录,该命令也会失去作用。

技术分享

     但是可以累加。

技术分享

     若想取消禁止覆盖则用命令“set +C”。



本文出自 “11892582” 博客,请务必保留此出处http://11902582.blog.51cto.com/11892582/1832917

标准的I/O和管道使用方法

标签:standard   二进制   error   程序   管道   

原文地址:http://11902582.blog.51cto.com/11892582/1832917

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!