zoukankan      html  css  js  c++  java
  • 学习shell的第二天

    重定向和管道符:
    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 
      << 将多行数据同时输入
       cat >>a.txt<<EOF
       >1
        >2
       >3
       >EOF
      3、错误输出
      2>  2>> 
      扩展:不需要输出内容,只需要输出状态;
       ls /etc/ > /dev/null 2> /dev/null
       echo $?  ($?--变量:上一条命令的执行状态)
       if $?等于0;么?
        OK--干!
       否则
        不
       结束
      ls 暗室逢灯  > /dev/null 2> /dev/null
       /dev/null  黑洞文件  来什么吃什么(删除)
       /dev/zero   吹泡泡 
     
      &>  &>>  ==  2&>1
       ls /etc/ &> /dev/null
    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
      如果没有文件,会创建,默认如果文件存在有内容,会覆盖;
     练习:
     将/etc/passwd文件中的前5行内容转换为大写后保存至/tmp/passwd.out文件中;
      head -5 /etc/passwd | tr [a-z] [A-Z] > /tmp/passwd.out
     将登录至当前系统上用户信息汇总的后3位信息转换为大写后保存至/tmp/who.out文件中;
      who | tail -3 | cut -d' ' -f1 | tr [[:lower:]] [[:upper:]] | tee /tmp/who.out
      tail   查看文件尾部多少行(默认10行)
       -n     tail -n 5 /etc/passwd  == 简写 tail -5 /etc/passwd 
       -f      实时查看文件更新内容
        tail -f /var/log/message
      head  查看文件头部多少行(默认时行)
       -n  #    前#行, 简写 -#
      取 10 - 20 行:  head -20 /etc/passwd | tail -10
      tar 压缩
      tr   替换
      cut 切
  • 相关阅读:
    数据结构与算法——红黑树
    JAVA数据结构——Map之HashMap
    JAVA数据结构——集合之LinkedList
    在Mac OS X下让你的Terminal带上Color
    Git使用指南(一)
    《乔布斯传》摘录
    必应语音API(Bing text to speech API)
    《设计心理学2》 摘录
    《设计心理学1》 摘录
    第10组 Beta冲刺(4/4)
  • 原文地址:https://www.cnblogs.com/dongxu2019/p/11353701.html
Copyright © 2011-2022 走看看