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

相关推荐

  • 硬链接和软链接的说明

    1、硬链接和软链接的区别    (1)、原理上:                   【1】 硬链接(hard link):                 &…

    2017-07-21
  • 马哥教育网络班25期-第2周作业

    一、Linux文件管理类命令: (1)ls             list 用来显示目录列表             …

    Linux干货 2016-12-12
  • 计算机基础

    计算机组成 计算机发展史 采用电子管的第一代计算机(1946~1959年) 第一代计算机的内部元件使用的是电子管。第一代计算机主要用于科学研究和工程计算。 采用晶体管的第二代计算机(1960~1964年) 第二代计算机的内部元件使用的是晶体管,晶体管比电子管小得多,处理更迅速、更可靠。第二代计算机主要用于商业、大学教学和政府机关。 采用集成电路的第三代计算机…

    Linux干货 2017-12-03
  • 第三周作业

    1、列出当前系统上所有已登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 ~]# who | cut -d ' ' -f 1 | sort -u 2、取出最后登录到当前系统的用户的相关信息。 ~]# la…

    Linux干货 2016-12-19
  • N25-第二周总结

    linux bassic The second week of blogging 一、linux中的文件,及文件操作管理命令 1. 文件概念 存储空间存储的一段流式数据,对数据可以做到按名存取。 linux中的文件具有的特点是:可通过操作系统或者程序对外提供信息,也能对内输入信息,可以被创建,删除。linux中,文件有特别重要的意义,他们为操作系统和设备提供…

    Linux干货 2016-12-11
  • find详解(Blog 2)

    find与locate特性、find命令

    Linux干货 2017-11-08

评论列表(1条)

  • renjin
    renjin 2017-04-05 14:57

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