Linux中查看日志的常用命令
Posted ZhiZDK
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中查看日志的常用命令相关的知识,希望对你有一定的参考价值。
grep
# 遍历查看当前目录下所有文件中包含xxx的语句
grep -r xxx .
# 查询文件中包含xxx的语句
grep xxx file_name
# 查询多个文件中包含xxx的语句
grep xxx file1 file2 file3
# 查询文件中不包含某个字符串的语句
grep -v xxx file1
# 仅查询包含整个单词的语句
grep -w xxx file1
# 忽略大小写
grep -i xxx file1
# 基于正则表达式查询
grep ^Y file1
# 与其他命令组合使用
find . -name "text*" -exec grep ^Y \\
awk
命令结构: awk ‘’ filename
在单引号中包含两种程序:“模式”和“行为(动作)”,动作由花括号包裹着的,如下:
awk \'action\' filename
awk \'pattern\' filename
awk \'patternaction\' filename
awk 的简单用法
1. 分割字符串
awk -F: \'print $1\' filename
该命令中,使用了 -F 选项来定义分隔符 :
,该命令会将文件中的每一行数据,使用 :
分割成两部分,后面的花括号中的 print $1
则是将分割后的第一个变量打印出来。
- 要注意下标索引是由
$1
开始的。awk 命令中$0
有特殊的含义, 代表整行数据。$NF
代表最后一个变量,所以$(NF-1)
是倒数第二个。
2. BEGIN、END
BEGIN
和 END
是 awk 中的两个关键字,它可以在执行我们命令开始和结尾打印出有用的信息。
3. 内置函数
awk -F: \'print toupper($1)\' filename
在这行命令中,toupper()
函数可以将我们的结果转换为大写
4. if-else
awk -F: \'if($1=="name") print $2; else print "NONE"\' filename
5. 带有正则表达式的筛选
awk -F: \'/ing$/\' filename
6. 结合“模式”与“动作”
awk -F: \'$2 ~ /ing$/ print $2\' filename\'
7. 编写可执行脚本
#!/usr/bin/awk -f
BEGIN
# set the input separators
FS=":"
# define a words\' counter
words=0
# add a record
words=words+NF
print NF
END
# print the results
print words " words.\\n"
cat
几种好用的用法
cat filename1 filename2
:显示多个文件内容
cat -n filename
:带有行数的显示文件内容
cat -e filename
:在每行的末尾显示 $
cat /dev/null > filename
:清空文件
cat filename1 > filename2
:将 filename1 的文件内容覆盖到 filename2 的文件中
cat filename1 >> filename2
:将 filename1 的文件内容追加到 filename2 的文件末尾
cat file1.txt file2.txt > new.txt
:合并多个文件到一个
cat filename | grep \'Game Start\'
:在文件中查询包含 “Game Start” 的行
cat filename | cut -f 2
:打印具体哪个字段
cat filename | awk -F: \'BEGINprint "They are:"print toupper($0)\'
:与awk配合处理复杂的情况
cat filename | more
:使用 more 或 less 查看大文件
journalctl
用来查看 systemd 记录的日志
# 单独查看某个服务的日志
journalctl -u xxx.service
# 带日期的
journalctl -u xxx.service since today
# 指定查看行数
journalctl -n 30
# tail logs
journalctl -f
# 通过pid查看
journalctl _PID=16666
更详细的内容可以查看下面的文章:
DevOps Notebook: systemd and journalctl
以上是关于Linux中查看日志的常用命令的主要内容,如果未能解决你的问题,请参考以下文章