课时19:管道和重定向
- Linux系统中,大多数命令都是很简单的功能,很少出现复杂功能的命令,每个命令往往只实现一个或几个简单的功能,我们可以通过将不同功能的命令组合在一起使用,以达到完成某个复杂功能的目的。
- Linux中,几乎所有命令的返回数据都是纯文本的(因为命令都是运行在CLI下),而纯文本形式的数据又是绝大多数命令的输入格式,所以多命令协作成为可能,并且容易。
- Linux的命令行为我们提供了管道和重定向机制,多命令协作就是通过管理和重定向完成的。
-
管道和重定向:命令行shell的数据流有以下定义:
-
命令通过STDIN接收参数或数据,通过STDOUT输出或通过STDERR输出错误
- 重定向通常用来保存某命令的输出信息或错误信息,可以用来记录执行结果或保存错误信息到一个指定的文件。
课时20:Linux命令行文本处理工具
- cat-查看文件内容;more-以翻页形式查看文件内容(只能向下翻页);less-以翻页形式查看文件内容(可上下翻页);head-查看文件的开始10行(或指定行数);tail-查看文件的结束10行(或指定行数)
- 基本关键字搜索:grep,-i 在搜索的时候忽略大小写;-n 显示结果所在的行数;-v 输出不带关键字的行;-Ax 在输出的时候包含结果所在行之后的指定行数;-Bx 在输出的时候包含结果所在行之后的指定行数
- 基于列处理文件:cut,-d 指定分割字符(默认为Tab);-f 指定输出的列号;-c 基于字符进行切割
- 文本统计:wc,-l 只统计行数;-w 只统计单词;-c 只统计字节数;-m 只统计字符数
- 文本排序:sort,-r 进行倒序排序;-n 基于数字进行排序;-f 忽略大小写;-u 删除重复行;-tc 使用c作为分隔符为列进行排序;-kx 当进行基于指定字符分割为列的排序时,指定基于那列排序
- sort –u可以用以删除重复行;uniq只能用以删除相邻的重复行
- 文本比较:diff,-i 铁血大小写;-b 忽略空格数量的改变;-u 统一显示比较信息(一般用以生成patch文件)
- 处理文本内容:tr,tr –d 'xxx'<xxx;tr 'a-z''A-Z'<xxx
-
搜索替换:sed