• 第七章:标准的输入/输出和管道



    Linux提供三种IO
    STDIN:standard INPUT 标准输入:默认键盘
    STDOUT :standard OUTPUT 标准输出 :默认终端
    STDERR::standard ERROR 错误输出:默认终端
     
    重定向
    > :正确输出重定向
    2> :错误输出重定向
    &> :所有结果重定向
    >> :追加 (正确的追加)
    2>> &>> :错误的追加、所有追加
     
    &> /dev/null :丢弃全部结果(尽可能的把过程丢掉)
    2>&1 :把错误的当正确输出
    管道 | (错误的无法通过管道,但是可以通过2>&1 将错误的信息作为正确的输出)
    command1|command2|command3......
     
    less : ls -l /etc | less //将前面命令执行的结果作为分屏显示的输入
    mail : echo "test email" | mail -s "test" user1@example.com
    lpr : echo "test print" |lpr
    echo "test print" | lpr -P printer_name
    重定向不能重定向到文件里面,到文件里面就结束了,智能重定向到屏幕上才可以继续管道。
    find /etc/ -name passwd 2>&1 >find.out |wc -l
     
    合并输出()
    (cal 2017,cal 2018) > cal.txt
     
    tee 重定向多个结果
    |tee file.txt |tee aa.txt | tee a.txt

     键盘作为标准的输入设备
    输入重定向
    <
    cat < /etc/passwd :原本cat是捕捉标准输入源,现/etc/passwd文件的内容作为输入源。这个过程完成了一次输入重定向。
     输入重定向作用:
    1、tr :转换功能
    tr `A-Z` `a-z` < .bash_profile 将文件中的所有大写转换成小写
    2、管道也使用了输入重定向
     
    如何捕捉多行输入
    << :将多次输入的结果一次输出
    mail -s "zhuti" user1@example.com << END
    XXXXX
    XXXXX
    END //END 作为结束符
     
    cat >> test <<END
    ****
    ****
    ****
    END //结束符

    for循环
    for NAME in joe jane julie
    do
      ADDRESS="$NAME@example.com"
      MESSAGE="Projects are due today!"
      echo $MESSAGE |mail -s Reminder $ADDRESS
    done
     
    作业
    1、批量建用户  test1-20
    2、给你一个用户列表,依照用户列表,批量新建用户。
    3、给你一个用户列表,依照用户列表,批量新建用户,并且用户的密码 是123456
    4、给你一个用户列表,依照用户列表,批量新建用户,并且用户的密码 是用户名
     
    #!/bin/bash
    #create new user
    for NAME in $(cat /tmp/userlist)
      do
        useradd $NAME
        echo $NAME |passwd $NAME --stdin
        echo "USER:$NAME create successful"
      done

     
    第二题
    1、创建一个用户列表
    2、依据用户列表来创建用户
    3、并且在用户的家目录下创建一个文件 员工规则
    4、所有用户的默认密码为redhat
    5、创建完某个用户的时候,显示已经创建成功
    6、修改员工规则的去啊年 拥有人和拥有组均为该员工
    7、在脚本执行过程当中,不允许出现其他提示(/dev/null)
     
    for  USER in $(cat userlist)
    do  
        useradd  $USER
        echo  "user $USER  created"
        echo  redhat |passwd  $USER --stdin > /dev/null
        cat  >> /home/$USER/rule<<EOF
    rule
    EOF
        chown $USER:$USER /home/$USER/rule
    done

     
     
  • 相关阅读:
    【css基础修炼之路】— 谈谈元素的垂直水平居中
    git在linux安装步骤详解!!
    idea :不支持发行版本11问题
    centos7 升级gcc
    mysql--优化
    Docker安装
    使用idea从零编写SpringCloud项目-zuul
    使用idea从零编写SpringCloud项目-Hystrix
    使用idea从零编写SpringCloud项目-Feign
    使用idea从零编写SpringCloud项目-Ribbo
  • 原文地址:https://www.cnblogs.com/ydfq/p/7011672.html
Copyright © 2020-2023  润新知