Linux 管道命令
接触Linux已经两年了,平时都是零零散散的学,零零散散的用,也该系统的总结学习一下了。先看了一下平时比较常用的BASH SHELL部分的知识。
管道命令采用“|”作为分隔符,每个管道的前后都是命令,后一个命令的输入是前一个命令的输出。需要注意的是,管道命令只能处理通过前一个命令传来的正确信息,也就是标准输出的信息,对于标准错误,没有直接处理的能力。
介绍几个比较常用的命令:
1、grep:分析一行信息,如果其中有我们需要的信息,就将改行取出。
语法: grep [-acinv] '搜索字符串' filename
参数含义:-a 将二进制文件以文本文件的方式搜索数据
-c 计算找到的搜索字符串的数目
-i 不区分大小写
-n顺便输出行号
-v反向选择,输出没有包含搜索字符串的行
举例:last | grep 'root' -v 把last中不包含root的取出
2、sort:可以根据不同的数据类型进行排序
语法: sort [-fbMnrtuk] [file or stdin]
参数含义: -f 忽略大小写
-b 忽略最前面的空格符部分
-M 以月份的名字来排序
-n使用纯数字进行排序
-r反向排序
-t分隔符,默认是table键
-u相同的数据,只出现一次
-k按filed进行排序
举例:cat /etc/passwd | sort -t ':' -k 3 实现的功能是将/etc/passwd的内容以:分割的第三栏的内容进行排序
3、wc:计算输出信息的整体数据
语法: wc [-lwm]
参数含义:-l显示多少行
-w显示多少字
-m显示多少字符
举例: cat /etc/passwd | wc计算一共有多少个用户
4、tee:双向重导向,同时将数据流分送到文件和屏幕
语法: tee [-a] file
参数含义: -a 以累加的方式将数据加入file文档中
5、tr:用来删除一段消息中的文字,或者是进行文字消息的替换
语法:tr [-ds] SET1
参数含义: -d 删除消息中的SET1字段
-s替换重复的字符
举例: last | tr '[a-z]' '[A-Z]' 将last输出的消息中,所有小写变成大写
cat \home\test\dostxt | tr -d '\r' >dostxt_Nm将DOS文件的换行符^M符号删除
6、join:处理两个文件之间的数据,主要是处理两个文件中有相同数据的行
语法:join [-ti12] file1 file2
参数含义: -t join默认以空格符副歌数据,而且比较第一个字段的数据,如果两个文件相同,则将两个数据联成一行,且第一个字段放第一个
-i忽略大小写差异
-1表示第一个文件要用那个字段来分析
-2表示第二个文件要用那个字段来分析
举例:jion -t ':' /etc/passwd /etc/shadow 将两个文件的相关数据整合成一栏
7、xargs:产生某个命令的参数,比较好用,需要深入学习