zoukankan      html  css  js  c++  java
  • 重定向与管道符

    1、重定向
       程序 = 指令(命令) + 数据(变量)
       在程序中,数据如何输入?又如何输出?
       数据输入:键盘--标准输入,但并不是唯一输入方式
              --stdin
              echo"123456" | passwd --stdin "username" 同一行输入密码和用户,不进入交互界面

              while line;do
                    循环体$line
              done < /etc/passwd

        数据输出:显示器--标准输出,但并不是唯一输出方式
              ls /etc > a.txt

        fd文件标识符 0-9
              0 1 2 被定义的标识符,剩下的可以自己手动来定义
              0---标准输出
              1---标准输入
              2---错误输入输出(标准错误)
        常见重定向符号
              1、标准输出
                >      覆盖重定向、非常危险(重定向后原数据会丢失)
               set -C   关闭覆盖重定向
                >|     强制重定向
                >>     追加重定向,不覆盖
              2、标准输入
                <      替换文件内容
                tr set1 [str2] < file.txt

                tr abc ABC < /etc/passwd > /etc/passwd.bak 把/etc/passwd文件下的abc替换为ABC,输出到passwd.bak中


                <<      将多行数据同时输入
                       cat>>a.txt<<EOF(只是一个标准,写什么都可以)
                       >1
                       >2
                       >3
                       >EOF(输入完毕之后,写自己定义的退出)

              3、错误输出
                2>
                扩展:不需要输出内容,只需要输出状态;
                   ls /etc > /dev/null
                   if[$? -eq 0];then
                       循环体
                   fi
                2>>
                &> &>> == 2&>1

     

    2、管道 -tee
         |(管道符)
            command1 | command2 | command3 | ... ...
            前一个命令的止盈结果交给后一个命令来执行
            【Linux思想:结合小功能,实现大大功能】
            free -m | grep "^mem" | cut -d' ' -f19
            free -m | grep "^mem" | awk'{print $3}'
         tee
            一路输入,两路输出
            tee /tmp/tee.out //没有文件会创建,默认如果文件内有内容,会被覆盖;

       练习:
         1、将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中
             head -5 /etc/passwd | tr [a-z] [A-Z] > /tmp/passwd.out

         2、将登陆至当前系统上用户信息汇总的后三位信息转换为大写后保存至/tmp/who.out文件中;
             who | tail -3 | cut -d' ' -f1 | tr [a-z] [A-Z] > /tmp/who.out

         tail 查看文件尾部多少行(默认10行)
              -n     tail -n 5 /etc/passwd == 简写 tail -5 /etc/passwd
              -f     实时查看文件更新内容
              tail -f /var/log/message
         head 查看文件头部多少行(默认10行)
             -n #    前#行,简写-#
             取10-20行 head -20 /etc/passwd | tail -10

  • 相关阅读:
    cocos2d 多点触摸
    mac 下安装node.js
    黑鹰破解笔记(2)
    OD使用心得笔记二
    淘宝店开始进行审核
    黑鹰破解笔记(1)
    Lisp笔记1
    OD使用心得笔记一
    怒马
    近段时间的web开发
  • 原文地址:https://www.cnblogs.com/4443056bdH/p/11317653.html
Copyright © 2011-2022 走看看