zoukankan      html  css  js  c++  java
  • Shell:Day02.笔记

    重定向和管道符:
    1、重定向
     程序 = 指令 + 数据
            命令   变量
     在程序中,数据如何输入?有如何输出?
     
     数据输入:键盘 -- 标准输入,但是并不是唯一输入方式;
        --stdin
        echo "123456"|passwd --stdin"username"
     
        例如:功能添加用户 useradd.sh user.txt文本文档1000个用户
        ./useradd.sh a
        ./useradd.sh b
        ...
        ./useradd.sh < user.txt
       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 替换文件内容
       tr set1[set2] < file.txt
       
       tr abc ABC /etc/passwd
       tr abc ABC /etc/passwd > /etc/passwd
         将passwd文件中的a、b、c替换成A、B、C
      
      <<
        多行数据同时输入
        cat >>a.txt<<EOF
        >11
        >2
        >3
        >EOF
      3.错误输出
       2> 2>>
       /dev/null 黑洞文件(删除)
       /dev/zero
       ls /etc/ > /dev/null 2> /dev/null——
       &> &>> == 2&>1                       |=
         ls /etc/ &> /dev/null<———— 
       扩展:不需要输出内容,只需要输出状态;
        ls /etc/ > /dev/null
        if[$?(命令执行状态) -eq 0];then
         循环体
        fi
       ls >  /dev/null 2>dev/null
    2.管道-tee
     command1|command2|command3|...
     前一个命令的执行结果交给后一个命令来执行;
     【Linux思想:结合小功能实现大功能】
     free -m|grep "^Mem"|cut -d'' -f19
     free -m|grep "^Mem"|awk '{print $3}'
     
     tee[option]...屏幕上输出一次,然后保存一次(一路输入,两路输出)
     tee /tmp/tee.out //如果没有文件,会创建,默认如果文件存在有内容,会覆盖
    练习:
     1.将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中
      head -5 /etc/passwd | tr [a-z][A-Z] > /tmp/passwd.out
     2.将登录至当前系统上的用户信息汇总的后3位信息转换为大写后保存至/tmp/who.out文件中
      who | tail -3 | cut -d'' -f1 | tr [[:lower:]] [[:upper:]] | tree /tmp/who.out
      tail——查看文件尾部多少行(默认为10行)
       -n tail -(n)5 /etc/passwd
        -f 实时查看文件更新内容
        tial -f /var/log/message
       sleep 等待多长时间后再向下执行
      head——查看文件头部多少行(默认10行)
       -n # 前#行,简写-#
       取10-20行:head -20 /etc/passwd | tail -10
     文本处理工具-wc,cut,sort,uniq
  • 相关阅读:
    【BZOJ4553】[Tjoi2016&Heoi2016]序列 cdq分治+树状数组
    【BZOJ4556】[Tjoi2016&Heoi2016]字符串 后缀数组+二分+主席树+RMQ
    【BZOJ4559】[JLoi2016]成绩比较 动态规划+容斥+组合数学
    STM32L476应用开发之七:流量的PID控制
    STM32L476应用开发之六:电池SOC检测
    信息摘要算法之一:MD5算法解析及实现
    我的家乡
    STM32L476应用开发之五:数据保存与SD卡操作
    STM32L476应用开发之四:触摸屏驱动与数据交互
    STM32L476应用开发之三:串行通讯实验
  • 原文地址:https://www.cnblogs.com/why098/p/11317242.html
Copyright © 2011-2022 走看看