1. 文件阅读命令
cat:查看文件内容。
head:显示文件起始的x行。 head -n x file
tail:显示文件倒数的x行。 tail -n x file
以上命令联合使用,可查看第a行到第b行 head -n b file | tail -n b-a+1
tailf : 文本文件若有追加,实时显示。等价于 tail -f file,适用于查看实时日志文件。
more:分页(屏)显示文本。回车是逐行, 空格是下一页.
Q: 要查看实时错误日志, 但一次请求记的日志有上千行, 错误栈打印在了前面几行, 该怎么看呢?
A: tailf errlog.txt | more 即可.
less:与 more 十分相似,但 less 允许往回翻看。使用less命令后按'G', 直接跳到文本末尾.
2.vim 文本编辑器
vim 文件名,即可打开要编辑的文件,若不存在则自动新建。
打开后首先是命令模式。命令模式下按键'dd'即可删除所在行。
按‘ i’键进入插入模式。
编辑完毕后,按‘esc’ 退回到命令模式,然后":w"保存文件 “:wq”保存并退出 “:q”退出vim “:q!”放弃修改并退出。
文本查找功能:</>字符串 向前查找指定字符串 <?>向后查找指定字符串。
vim -b file //二进制模式打开文本文件,可用于排查windows格式与linux格式不兼容带来的特殊字符问题。
3.搜索所在行
grep content file :在文件中搜索带有content内容的行,文件可以是单个文件、目录或符合通配符的多个指定文件。
3.1参数:
-i :ignore 大小写
-v: invert,查找不匹配的行
-r:recursive,递归查找,用于目录下查找。
-C:查看命中行的前后几行。
-A :即after,查看命中行的后面几行。
-E: 使用正则表达式。
--color :命中的子串会有颜色。
3.2例子:
$ grep ‘test’ d*
显示所有以d开头的文件中包含 test的行。
$ grep -ri -C2 'overhead' /opt/tars/apps/100004272/current/logs/
在指定目录下,不区分大小写地查找含有 'overhead' 的行,并显示其前后2行。
$ grep -E 'abc|abd' file
在file文件中,查找abc或abd子串所在行,并将子串(非整行)以漂亮的颜色展示。
3.3 grep 用于管道
比如在不断刷新的日志中查看, `tailf 1.log | grep xxx` .
如果字符串含有空格, 命令为 `tailf 1.log | grep -r abc\ def`
4.筛选指定列
awk '{print $1}' filename//表示筛选出来第一列,从1开始计数。
5.排序
sort file //对每行的内容排序。
sort默认的排序方式是升序,如果想改成降序,就加个-r 就搞定了。
6. 去重
uniq file
在文件内容有序的情况下去重
7.统计行数
wc file //统计行数。
-l 统计行数
-w 统计单词数
-c 统计字节数
8.替换内容
sed 's/$/\n/g' //在行末追加换行符,适用于看日志时因自动换行导致行与行之间界限不清楚的场景。
sed命令一般不会修改原文件。