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)
MFXMFX
上一篇 2017-04-03 21:00
下一篇 2017-04-03 21:56

相关推荐

  • sed编辑器使用

     简述       sed编辑器被称作流编辑器,和普通的交互式文本编辑器恰好相反。在交互式文本编辑器中(比如vim), 你可以用键盘命令来交互式地插入、删除或替换数据中的文本。流编辑器则会在编辑器处理数据之前基于预先 提供的一组规则来编辑数据流。sed编辑器可以根据命令来处理数据流中的数据,这些命令…

    2017-06-19
  • Linux权限基本介绍,管理

     Linux权限机制采用UGO模式。其中 u(user)表示所属用户、g(group)表示所属组、o(other)表示除了所属用户、所属组之外的情况。 u、g、o 都有读(read)、写(write)、执行(excute) 三个权限,所以UGO模式是三类九种基本权限。         用命令 ls …

    Linux干货 2017-07-22
  • RAID解说

    RAID(RedundantArrays of Inexpensive Disks,RAID),又叫独立的磁盘阵列。有“价格便宜具有冗余能力的磁盘阵列”之意。原理是利用数组方式来作磁盘组,配合数据分散排列的设计,提升数据的安全性。磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术…

    2017-03-14
  • 常用RAID级别介绍

    RAID是什么         磁盘阵列(Redundant Arrays of Independent Disks,RAID),磁盘阵列是将多个价格便宜的磁盘按照一定的组合方式组成具有高容量的磁盘组,按照不同的组合方式可以达到不同的效果,如:可以提升磁盘的存取效率,可提高磁盘的…

    Linux干货 2016-02-14
  • wk_02 作业

    Linux 文件管理命令 cp命令 功能 Linux 系统中cp命令是用来复制目录/文件的。 概要 单源复制 cp [OPTION]… [-T] SOURCE DEST DEST不存在则事先创建此文件,并复制源文件的数据流至DEST中; DEST存在 DEST是非目录文件:则覆盖目标文件; DEST是目录文件:则先…

    Linux干货 2016-12-11
  • 18文本处理工具sed

    18文本处理工具sed     sed,全称Stream EDitor,是一种流编辑器,它一次处理一行内容,但是它构思巧妙,功能强大,是运维工作中必不可少的文本处理工具,也是因为这样,被称作文本处理三剑客之一。     sed在处理时,把当前处理的行李存储在临时缓冲区中,这个区域被称作“模式空间pa…

    Linux干货 2016-08-12

评论列表(1条)

  • renjin
    renjin 2017-04-05 14:57

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