一:文本查看工具
cat
查看文本内容,合并文本内容(cat后面可以接上多个文件)
-n 显示序列号
-A 显示特殊字符(人眼不可见的)
more/less
分页查看文本内容
more - d (有提示信息)
less 可以使用v进行编辑,过滤关建字,跳转关键字
head
查看文件开头的内容(默认是查看十行)
-n 查看指定行数
示例:
head -n 20 passwd 等价于 head -n +20 passwd
head -n -10 passwd 查看除了文件末尾十行的其它内容(最后十行不会显示)
tail
查看文件末尾的内容(默认是查看10行)
-n 查看指定行数
示例:
tail -n 20 passwd 等价于tail -n -20 passwd
tail -n +20 passwd 查看除了文件开头10行的其他内容(开头10行不显示)tail -f 文件 实时监控文件内容,将内容进行追加到文件中并且显示到显示屏上
应用场景:
1.日志排错
查看43到54行内容;固定公式:head查看最大的行数 | tail查看 最大行数-最小行数+1
head -n 54 passwd | tail -n 12
grep
通过关键字进行过滤文件内容
grep根据关键字过滤出来的是关键字所在的行
格式:
grep [选项] 参数
-i 忽略大小写;
-o 只显示匹配关键字的内容;
-c 显示一共匹配到了几行;
-q 静默模式,不输出任何信息(通常和shell脚本联合使用,echo $? 判断是否成功)
0 成功,非0 失败;
-v 取反,不匹配指定关键字的行;
-Ax 将匹配的行数以及下面x行打印出来;
-Bx 将匹配的行数以及上面x行打印出来;
-Cx 将匹配的行数以及上下x行打印出来;
-r 通过文件的内容搜索文件;
-l 只打印文件的名字(通常和-r 联合使用);
二:正则表达式
作用:
主要是匹配字符串的规律,通过正则能够实现更多复杂的过滤;
eg: 要过滤以root开头或者以nologin结尾的行数
正则使用元字符表示找规律(^ $ 都是元字符)
基本正则:
^以xxx开头的字符
$以xxx结尾的字符
\< 在字(由数字、字母、下划线组成)的开始进行匹配
\> 在字的结尾进行匹配
.匹配任何单个字符
[abc] 匹配列表内任意单个字符
[^ abc] 不匹配列表内任意单个字符
[a-z] / [0-9] 对a和z或者 0-9 之间的字符进行匹配
\ 反斜杠,转义字符,专门去掉反斜杠后面的单个字符的含义
*表示前一项匹配0次或者多次
.* 表示匹配所有
三:扩展正则
格式:
grep -E 或者 egrep
+ 对前一项进行重复匹配1次或者多次
?对前一项进行0次或者1次重复匹配
{j} 对前一项进行j次重复匹配
{,j}对前一项进行最多j次重复匹配
{j,}对前一项进行最少j次重复匹配
{j,k}对前一项进行最少j次,最多k次重复匹配
(abc) 表示将前一项的内容作为一个整体
示例:
1.egrep ‘ro{1,2}’ /etc/passwdslt 表示匹配s或者匹配t 同时过滤两个关键字
2.egrep ‘error|faild’ -i /var/log/messages
四:cut过滤列和字段
注意:
grep过滤出来的是行,cut过滤出来的是列
cut:
-d 指定分隔符
-f 指定列数
示例:
cut -d: -f3 /etc/passwd
cut -d: -f3,6 passwd 取第3列和第6列
-c 提取指定数量的字符
cut -c 1-3 passwd 取第一个到第三个字符
awk ‘{print $2}’ 默认使用空格为分隔符
-F 指定 分隔符
wc 统计文件的行数、单词数、字节数(文件的大小)
wc /etc/passwd
67 128 3475 /etc/passwd行数 单词数 字节数
wc -l 查看行数
wc -wc 查看单词数、字节数
w 单词数、c字节数
应用场景:
统计文件数量等
五:sort排序工具
sort默认使用字符表的方式排序,不是按照数字的方式排序
sort:
-n 以数字的方式排序(从小到大)
-t 指定分隔符
-k 指定列数
-r 降序(通常和-n联合使用)
-f 忽略大小写
-u 去重重复的内容
uniq:去重工具(只去重相邻重复的行)
uniq和sort联合使用,sort先排序,uniq再进行去重
uniq -c 统计文件中重复的内容
diff和vimdiff比较文件
a 添加
c 修改
d 删除
vimdiff--->vim-enhanced软件包
六:tr文本转换工具
用来做字符转换
方式:
大写转小写,小写转大写,echo abc | tr a-z A-Z
字母转数字,数字转字母,echo 123 | tr 1-3 a-z
tr -d 13 ,删除字符13,在屏幕上删除指定的字符(源文件内容不修改)