0%

Linux-Shell学习笔记-输入输出|管线|排序

数据流重导向

  • 标准输入
    • <<<
      • << 终止输入
  • 标准输出
    • >>>
    • 2者的区别是>若文件不存在,则创建新的文件,若文件存在,则覆盖文件;>>不覆盖新的文件,在原来的文件上累积数据。
  • 标准错误输出
    • 2>2>>
  • 特殊用法

    • 标准输出和标准错误输出,全部存入同一个文件command filename > file 2>&1

      命令执行判断

  • 不考虑命令相关性,连续执行

    • cmd1;cmd2
  • 指令之间彼此有相关性,前一个指令是否成功执行与后一个指令是否要执行有关
    • cmd1 && cmd2 or cmd1 || cmd2
      • && 若cmd1执行完毕并且正确执行,则cmd2开始执行;
      • || 若cmd1执行正确,则cmd2不执行;

管线命令

  • 管线命令| 仅能处理经由前面一个指令传来的正确信息,对于标准错误信息无法进行处理。
  • 关联命令后面接的第一个数据必须是命令,并且这个命令必须能够接受标准输入。
  • 常用的管线命令
    • 撷取命令cut grep
      • 所谓撷取命令,就是将一段数据经过分析或分析关键字,取出我们需要的一行信息。撷取信息是针对一行一行来分析的
      • cut
        • cut -d '分割字符' -f num1,num2 //根据分割字符,将一行数据进行分割,并取出第num段数据
        • cut -c 字符区间 num1-num2
        • cut 命令分析有多个空格的数据时,会比较吃力。
          • cut-c.png
          • cut-d.png
      • grep
        • grep是分析一行数据,如果该行中有我们需要的,则把该行信息输出;cut 是将该行中的一部分数据输出。
        • grep [-acinv] [--color=auto] '搜寻字符串' filename
          • -a 将binary文件以text文件的方式搜寻
          • -c 计算找到搜寻字符串的次数
          • -i 忽略大小写
          • -n 输出行号
          • --v 反选,输出没有搜寻字符串的那行信息
          • --color=auto 将找到的关键字部分加上颜色显示
            • grep.png

排序命令

  • sort

    • sort [-fbMnrtuk] [file or stdin]

      1
      2
      3
      4
      5
      6
      7
      8
      -f //忽略大小写
      -b //忽略最前面的空白字符
      -M //以月份的名称排序
      -n //以纯数字进行排序
      - r //反向排序
      -u //相同的数据中仅出现一行代表
      -t //分割符号,默认喂[tab]
      - k //以第num个区间进行排序
  • uniq

    • 重复数据仅显示一个,一般配合sort使用
    • uniq [-ic]
      • -i 忽略大小写
      • -c 计数
        • uniq.png
  • wc

    • wc [lwm]
      • -l 仅列出行
      • -w 仅列出多少个英文单字
      • -m 多少字符
      • 三列数据分别代表行数、字数、字符数