最新要闻

广告

手机

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案

家电

当前聚焦: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}" filenameawk "pattern" filenameawk "pattern{action}" filename

awk 的简单用法

1. 分割字符串

awk -F: "{print $1}" filename

该命令中,使用了 -F 选项来定义分隔符 :,该命令会将文件中的每一行数据,使用 :分割成两部分,后面的花括号中的 {print $1}则是将分割后的第一个变量打印出来。

  • 要注意下标索引是由 $1开始的。awk 命令中 $0有特殊的含义, 代表整行数据。$NF代表最后一个变量,所以 $(NF-1)是倒数第二个。
2. BEGIN、END

BEGINEND是 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 -fBEGIN {# set the input separatorsFS=":"# define a words" counterwords=0}{# add a recordwords=words+NFprint NF}END {# print the resultsprint 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: "BEGIN{print "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 logsjournalctl -f# 通过pid查看journalctl _PID=16666

更详细的内容可以查看下面的文章:

DevOps Notebook: systemd and journalctl

8 Levels of Using awk in Linux

15 Uses of Cat Commands in Linux

关键词: 正则表达式 显示文件 所有文件