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

相关推荐

  • 正则表达式

    ##**正则表达式**– 正则表达式是文本处理极为重要的技术,用它可以对字符串按照某种规则进行检索、替换– 分类:– BRE:基本正则表达式,grep sed vi等软件支持。vim有扩展– ERE:扩展正则表达式,egrep(grep -E) sed -r等– PCRE:几乎所有高级语言都是PCR…

    Linux干货 2017-11-07
  • N26-第七周博客作业

    一、创建一个10G分区,并格式为ext4文件系统; 1、 要求其block大小为2048, 预留空间百分比为2, 卷标为MYDATA, 默认挂载属性包含acl;          A、创建一个10G的磁盘空间 [root@VM_221_40_centos ~]#fdisk /de…

    2017-07-09
  • DNS服务器搭建示例

    DNS服务器搭建示例 负责解析magedu.com域名,能够对一些主机名进行正向解析和逆向解析 配置主配置文件 [root@slave1 etc]# vim /etc/named.conf options { listen-on port 53 { 192.168.91.132; }; // listen-on-v6 port 53 { ::1; }; di…

    2017-09-16
  • 用户创建及权限管理

    1.列出当前系统上所有已经登录的用户的用户名,注:同一个用户登录多次,则只显示一次即可。 who | cut -d ‘ ‘ -f1 | sort -u [root@localhost ~]# who danry :0 2017-07-16 23:20 (:0) danry pts/0 2017-07-16 23:23 (192.168…

    Linux干货 2017-07-17
  • 使用 nice、cpulimit 和 cgroups 限制 cpu 占用率

    Linux内核是一名了不起的马戏表演者,它在进程和系统资源间小心地玩着杂耍,并保持系统的正常运转。 同时,内核也很公正:它将资源公平地分配给各个进程。 但是,如果你需要给一个重要进程提高优先级时,该怎么做呢? 或者是,如何降低一个进程的优先级? 又或者,如何限制一组进程所使用的资源呢? 答案是需要由用户来为内核指定进程的优先级 大部分进程启动时的优先级是相同…

    Linux干货 2015-02-14
  • linux系统文件的元数据

    linux系统文件的元数据 什么是元数据 文件的数据分两种: 一种元数据,既属性数据:metadata 一种就是数据本身:data 如何查看元数据: stat stat命令用于显示文件的状态信息 [root@localhost ~]# stat /tmp/mylinux File: ‘/tmp/mylinux’ Size: 143 Blocks: 0 IO …

    Linux干货 2018-03-11

评论列表(1条)

  • renjin
    renjin 2017-04-05 14:57

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