linux命令之日志操作

一、命令介绍

1. cat

连接文件并打印到标准输出设备上,cat经常用来显示文件的内容。注意:当文件较大时,文本在屏幕上迅速闪过(滚屏),用户往往看不清所显示的内容。因此,一般用more等命令分屏显示。为了控制滚屏,可以按Ctrl+S键,停止滚屏;按Ctrl+Q键可以恢复滚屏。按Ctrl+C(中断)键可以终止该命令的执行,并且返回Shell提示符状态。

cat(选项)(参数)

-n或-number:有1开始对所有输出的行数编号;
-b或--number-nonblank:和-n相似,只不过对于空白行不编号;
-s或--squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行;
-A:显示不可打印字符,行尾显示“$”-e:等价于"-vE"选项;
-t:等价于"-vT"选项;

示例:
ml和m2是当前目录下的两个文件

cat m1 (在屏幕上显示文件ml的内容)
cat m1 m2 (同时显示文件ml和m2的内容)
cat m1 m2 > file (将文件ml和m2合并后放入文件file中)

2. grep

(global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。

-a 不要忽略二进制数据。
-A<显示列数> 除了显示符合范本样式的那一行之外,并显示该行之后的内容。
-b 在显示符合范本样式的那一行之外,并显示该行之前的内容。
-c 计算符合范本样式的列数。
-C<显示列数>或-<显示列数>  除了显示符合范本样式的那一列之外,并显示该列之前后的内容。
-d<进行动作> 当指定要查找的是目录而非文件时,必须使用这项参数,否则grep命令将回报信息并停止动作。
-e<范本样式> 指定字符串作为查找文件内容的范本样式。
-E 将范本样式为延伸的普通表示法来使用,意味着使用能使用扩展正则表达式。
-f<范本文件> 指定范本文件,其内容有一个或多个范本样式,让grep查找符合范本条件的文件内容,格式为每一列的范本样式。
-F 将范本样式视为固定字符串的列表。
-G 将范本样式视为普通的表示法来使用。
-h 在显示符合范本样式的那一列之前,不标示该列所属的文件名称。
-H 在显示符合范本样式的那一列之前,标示该列的文件名称。
-i 忽略字符大小写的差别。
-l 列出文件内容符合指定的范本样式的文件名称。
-L 列出文件内容不符合指定的范本样式的文件名称。
-n 在显示符合范本样式的那一列之前,标示出该列的编号。
-q 不显示任何信息。
-R/-r 此参数的效果和指定“-d recurse”参数相同。
-s 不显示错误信息。
-v 反转查找。
-w 只显示全字符合的列。
-x 只显示全列符合的列。
-y 此参数效果跟“-i”相同。
-o 只输出文件中匹配到的部分。
  • 在文件中搜索一个单词,命令会返回一个包含“match_pattern”的文本行:
grep match_pattern file_name
grep "match_pattern" file_name
  • 在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
  • 输出除之外的所有行 -v 选项:
grep -v "match_pattern" file_name
  • 标记匹配颜色 –color=auto 选项:
grep "match_pattern" file_name --color=auto
  • 使用正则表达式 -E 选项:
grep -E "[1-9]+"    或
egrep "[1-9]+"
  • 只输出文件中匹配到的部分 -o 选项:
echo this is a test line. | grep -o -E "[a-z]+\."
line.

echo this is a test line. | egrep -o "[a-z]+\."
line.
  • 统计文件或者文本中包含匹配字符串的行数 -c 选项:
grep -c "text" file_name
  • 输出包含匹配字符串的行数 -n 选项:
grep "text" -n file_name    或   cat file_name | grep "text" -n
#多个文件
grep "text" -n file_1 file_2
  • 打印样式匹配所位于的字符或字节偏移:
echo gun is not unix | grep -b -o "not"
7:not
  • 在多级目录中对文本进行递归搜索:
grep "text" . -r -n

.表示当前目录。
忽略匹配样式中的字符大小写:

echo “hello world” | grep -i “HELLO”
hello
选项 -e 制动多个匹配样式:

echo this is a text line | grep -e “is” -e “line” -o
is
line

3. more

是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。
常用快捷键:
Space:显示文本的下一屏内容。
Enier:显示文本的下一行内容。
斜线符|:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
H:显示帮助屏,该屏上有相关的帮助信息。
B:显示上一屏内容。
Q:退出more命令。

more(语法)(参数)

-<数字>:指定每屏显示的行数;
-d:显示“[press space to continue,'q' to quit.]”和“[Press 'h' for instructions]”;
-c:不进行滚屏操作。每次刷新这个屏幕;
-s:将多个空行压缩成一行显示;
-u:禁止下划线;
+<数字>:从指定数字的行开始显示。

示例:
- 显示文件file的内容,但在显示之前先清屏,并且在屏幕的最下方显示完成的百分比。

more -dc file
  • 显示文件file的内容,每10行显示一次,而且在显示之前先清屏。
more -c -10 file

4. less

more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用
常用快捷键:
PageUp:向上翻页
PageDown:向下翻页
d:向后翻半页
u:向前翻半页
q:退出less程序

less(选项)(参数)

-e:文件内容显示完毕后,自动退出;
-f:强制显示文件;
-g:不加亮显示搜索到的所有关键词,仅显示当前显示的关键字,以提高显示速度;
-l:搜索时忽略大小写的差异;
-N:每一行行首显示行号;
-s:将连续多个空行压缩成一行显示;
-S:在单行显示较长的内容,而不换行显示;
-x<数字>:将TAB字符显示为指定个数的空格字符。

二、日常使用

1. 输出所有有该字符的行

cat file |grep "aaa"

示例:统计a.log中”输出数据”出现次数

cat a.log |grep "输出数据"

2. 存在该字符的行的行数

cat file |grep -c "aaa"

示例:统计a.log中”输出数据”出现次数

cat a.log |grep -c "输出数据"

3. 统计某个字符出现次数

grep -o '55043824587797' filename | wc -l

示例:统计agewhitelist.properties中+出现次数

grep -o '+' agewhitelist.properties | wc -l    
116792

4. 显示某字符出现附近内容

cat file |grep -10 "aaa"

示例:显示a.log中出现“userid=4881176591622”附近10行命令

#显示匹配行上下各5行
cat a.log |grep -10 "userid=4881176591622"
#显示匹配行下10行
cat a.log |grep -A 10 "userid=4881176591622"
#显示匹配行上10行
cat a.log |grep -B 10 "userid=4881176591622"

5. 显示匹配的前n行

cat file |grep -10 "aaa"|head -10

示例:显示a.log中前10次出现“userid=4881176591622”附近10行

cat a.log |grep -10 "userid=4881176591622" |head -10

6. 批量杀掉进程

ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -9

说明:

列出了当前主机中运行的进程中包含firefox关键字的进程

ps -ef | grep firefox | grep -v grep 

截取第9至15字符(进程id),列出了要kill掉这些进程的id,并将之打印在了屏幕上

ps -ef | grep firefox | grep -v grep | cut -c 9-15 

后面加上’xargs kill -9’后,则执行这些命令,进而杀掉了这些进程

ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -9

6. 查看当前文件夹及子文件夹大小

du -h --max-depth=1 .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值