IO重定向

I/O(IN Out)重定向(本来位置被改到别处位置):

           指的改变默认输入输出的位置

   程序:数据+指令  IO

         可用于输入的设备:文件

               键盘设备,文件系统上的常规文件,网卡等

          可用于输出的设备:文件

               显示器,文件系统上的常规文件,网卡等;

   程序的数据流有三种:

          输入的数据流:<— 标准输入(stdin),键盘;

          输出的数据流:—> 标准输出(stdout),显示器;

          错误输出流:  —> 错误输出(stderr),显示器;

          标准输出重定向:>   特性:覆盖输出

                   ~]# date > date.log

                   ~]# cat date.log

                   Tue Mar 28 01:30:46 CST 2017

              标准输出追加重定向: >>   特性:追加输出

         Set: 控制bash的特性

              set -C  禁止将内容覆盖到已经有的文件 特殊保护机制

          此时可使用强制覆盖输出:  >

              set +C   关闭上述输出:

   标准错误输出重定向:2>, 2>>  

                   ~]# fdfdfdfd > date.log

                   bash: fdfdfdfd: command not found…

                   ~]# fdfdfdfd 2> date.log

                   ~]# cat date.log

                   bash: fdfdfdfd: command not found…

                 ~]# fdfdfdfd 2>> date.log

                   ~]# fdfdfdfd 2>> date.log

                 ~]# cat date.log

                   bash: fdfdfdfd: command not found…

                   bash: fdfdfdfd: command not found…

           合并正常输出流和错误输出流:

                     (1) &>, &>>

                     (2) COMMAND > /path/to/somefile 2>&1

                      COMMAND >> /path/to/somefile 2>&1

                   ~]# date &> date.log

                   ~]# cat date.log

                   Tue Mar 28 01:33:55 CST 2017

                   ~]# datefdfd &> date.log

                   ~]# cat date.log

                   bash: datefdfd: command not found…

          特殊设备: /dev/null

                  [root@MFX2 ~]#ls /var &> /dev/null

                      [root@MFX2 ~]#echo $?

                        0 (状态值)   表示成功即目录存在

                      [root@MFX2 ~]#ls /varr &> /dev/null

                      [root@MFX2 ~]#echo $?

                        2      表示失败即目录不存在

           标准输出重定向到date.log 标准错误输出重定向到date2.log

                  ~]# date22 > date.log 2> date2.log

            &> &>> 将标准输出和标准错误输出(覆盖|追加)同一个文件

                   ~]# date &> date.log

                   ~]# cat date.log

                       Tue Mar 28 01:40:48 CST 2017

                   ~]# date &>> date.log

                   ~t]# cat date.log

                       Tue Mar 28 01:40:48 CST 2017

                       Tue Mar 28 01:41:14 CST 2017

                   ~]# datefdfd &>> date.log

                   ~]# cat date.log

                       Tue Mar 28 01:40:48 CST 2017

                       Tue Mar 28 01:41:14 CST 2017

                   bash: datefdfd: command not found…

        标准输入重定向: <

               tr [OPTION]… SET1 [SET2]

              把输入的数据当中的字符,凡是在SET1定义范围出现的,通通对位换为SET2出现的字符;

             用法1:

             tr SET1 SET2 < /PATH/FROM/SOMEFILE

             用法2:

             tr  -d SET1 < /PATH/FROM/SOMEFILE

     注意: 不修改原文件

                ~]#tr ‘a-z’ ‘A-Z’ < /etc/issue > issue.log

                ~]#cat issue.log

                  CENTOS RELEASE 6.8 (FINAL)

                  KERNEL \R ON AN \M

           -c 取指定字符的补集

                   ~]# tr -d -c ‘0-9’ < /etc/fstab

                   tr -d  ‘0-9’ < ./fstab > ./fstab  是不会成功的

                -s “s“  对重复字符去重

Here document(此处创建文档): <<

             cat << EOF

             cat > /PATH/FROM/SOMEFILE <<EOF

         cat  >> shanghai.log << ‘EOF’

                   where are you from,I’m from $SHELL

                   EOF

              加引号与不加引号的区别

              加引号(双引号和单引号)输入内容里面的变量是不会被替换

              不加引号的话 输入的内容里面变量会被替换

              结束符不一定要使用EOF,可以使用其他任意字符。

写一个脚本 脚本定义个配置文件,执行脚本的时候自动生成自定义的配置文件

              #!/bin/bash

              cat >> my.cnf << EOF 或者 ‘EAD’

              a=b

              b=c

              EAD

              …

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

(0)
上一篇 2017-04-03 21:00
下一篇 2017-04-03 21:56

相关推荐

  • 第七周学习总结–系统启动流程

    写在前面 作为一个理工科的你,我相信你一定给自己或者给别人装过windows操作系统,作为windows操作系统都图形化了,因此我们可能很难去了解中间都发生了什么。比如使用U盘安装的时候,网上一大堆某某某U盘制作系统工具,按照网上的教程,制作完成以后,就可以在要装系统的电脑上点击电源键狂按F12(不同的电脑可能不同)进入BIOS设置了,然后就等着使用了。作为…

    2018-01-14
  • 第六周作业-练习题sed,crontab,bash

    1、复制/etc/rc.d/rc.sysinit文件至/tmp目录,将/tmp/rc.sysinit文件中的以至少一个空白字符开头的行的行首加#;    方法一用sed:          方法二用vim       &…

    Linux干货 2017-01-16
  • Linux概述

    计算机组成概述 计算机组成原理 如上图计算机的组成结构,CPU运行速度远远高于内存,而内存运行速度又远远高于I/O;由于三者运行速度巨大差异,如果系统仅运行一个任务(单任务系统),那么将有大量的CPU空闲时间等待缓慢的I/O及内存的读取。为提高CPU的使用效率,于是便产生了多任务系统系统的需求。 多任务系统 多任务实现的基础,我们知道计算机处理任务主要靠CP…

    Linux干货 2016-12-02
  • vim浅谈

            在Linux的世界里,绝大部分的配置文件都是以ASCII的纯文本形式存在的,所以作为一名优秀的Geek,熟练掌握一种文本编辑辑器是非常重要的。         Linux世界中的文本编辑器有很多…

    Linux干货 2015-04-27
  • NFS实现(双httpd + php-fpm + nfs + mysql 搭建discuz论坛)

    NFS相关介绍一、NFS简介1. NFS(Network File System): NFS是一个文件共享协议, 也是是在类Unix系统中在内核中实现的文件系统。2. 起源: 最早是由SUN公司研发,非常古老,只是实现文件共享,安全控制方面比较简陋。 版本有, NFSv1, NFSv2,NFSv3,NFSv4. v4版开始支持kerber…

    Linux干货 2016-10-19
  • liunx文本处理三剑客及文本处理工具的使用与练习。

    linux文本处理三剑客: grep ==擅长过滤,把想要的或者不想要的分离开。linux三剑客 老三  -A: 除了显示匹配的一行之外,并显示该行之前的num行;-B:除了显示匹配的一行之外,并显示该行之后的num行;-C:除了显示匹配的一行之外,并显示该行之前后各num行     sed==擅长取行、替换。三剑客老…

    2017-07-28

评论列表(1条)

  • renjin
    renjin 2017-04-05 14:57

    总结了bash的一些特性,和linux下的一些基础的命令,内容写的很好,排版上可以再往好的弄弄