应急响应常用命令
应急响应常用命令
Find
find 是 Linux 中非常强大且常用的命令行工具,用于在目录树中查找文件或目录。它支持按文件名、类型、时间、权限、大小等多种条件查找。
find 基本语法:
find [查找路径] [查找条件] [查找动作]
常用示例:
1. 按文件名查找
find /path/to/dir -name "filename.txt"
精确匹配文件名(区分大小写)
find . -iname "readme.md"
不区分大小写查找
readme.md文件
2. 查找目录
find . -type d -name "log"
查找当前目录下名为
log的目录
3. 查找普通文件
find /etc -type f -name "*.conf"
查找
/etc下所有以.conf结尾的配置文件
4. 按修改时间查找
find . -mtime -3
查找3天内修改过的文件(
-mtime单位是天)
find . -mmin -30
查找30分钟内修改的文件
5. 按文件大小查找
find . -size +100M
查找大于 100MB 的文件
find . -size -1k
查找小于 1KB 的文件
6. 按权限查找
find / -perm 777
查找权限为 777 的文件(所有人可读写执行)
7. 查找后执行操作(如删除)
find . -name "*.tmp" -delete
查找并删除所有
.tmp文件
find /var/log -type f -name "*.log" -exec rm {} \;
查找
.log文件并执行rm删除命令,{}表示匹配到的文件
8. 结合正则查找
find . -regex ".*\.\(txt\|log\)"
使用正则查找
.txt或.log文件(注意-regex默认匹配完整路径)
提示:
-
.表示当前目录 -
可以用
-maxdepth N限制查找深度 -
可以结合
grep使用,例如:find . -type f -name "*.php" | xargs grep "password"
WC
wc 是 Linux 中的一个命令,代表 "word count"(字数计数),它用于统计文件或标准输入中的字数、行数、字节数等。wc 是一个非常常用的工具,尤其在处理文本文件时,它可以帮助我们快速获取文件的统计信息。
基本语法:
wc [选项] [文件...]
常见选项:
-l:统计行数。-w:统计单词数。-c:统计字节数(包括文件的所有字符)。-m:统计字符数(和字节数类似,但考虑字符的编码,尤其在多字节字符集如 UTF-8 中有差异)。-L:统计最长一行的字符数。
常见用法示例:
1. 统计行数(-l)
wc -l file.txt
- 作用:输出
file.txt文件的总行数。
示例输出:
100 file.txt
这表示 file.txt 中有 100 行。
2. 统计单词数(-w)
wc -w file.txt
- 作用:输出
file.txt中的单词数量。一个单词是由空格、换行符或其他分隔符分开的。
示例输出:
500 file.txt
这表示 file.txt 中有 500 个单词。
3. 统计字节数(-c)
wc -c file.txt
- 作用:输出
file.txt的字节数,包括所有字符。
示例输出:
1024 file.txt
这表示 file.txt 中的内容占用了 1024 字节。
4. 统计字符数(-m)
wc -m file.txt
- 作用:输出
file.txt的字符数。与字节数类似,但在多字节字符编码下有所不同。
示例输出:
1120 file.txt
这表示 file.txt 中的字符数为 1120。字符数和字节数的区别主要在于文件内容的编码。
5. 统计最长行的长度(-L)
wc -L file.txt
- 作用:输出
file.txt中最长一行的字符数。
示例输出:
120
这表示 file.txt 中最长的行有 120 个字符。
6. 同时显示多个统计信息
wc -l -w -c file.txt
- 作用:统计文件的行数、单词数和字节数,并一起显示。
示例输出:
100 500 1024 file.txt
这表示 file.txt 中有 100 行,500 个单词,占用了 1024 字节。
7. 对标准输入进行统计
你可以使用管道将标准输入传递给 wc,例如:
echo "Hello World" | wc -w
作用:统计输入的单词数。
示例输出:
2
这表示 "Hello World" 中有 2 个单词。
8. 统计多个文件
wc -l file1.txt file2.txt
- 作用:统计
file1.txt和file2.txt中的行数。wc会显示每个文件的行数,以及所有文件的总行数。
示例输出:
100 file1.txt
200 file2.txt
300 total
这表示 file1.txt 有 100 行,file2.txt 有 200 行,总共有 300 行。
grep
grep 是 Linux 中用于在文本文件中搜索匹配的字符串并输出的强大命令。它可以使用正则表达式来进行模式匹配,广泛应用于日志分析、文本处理、脚本编写等。
基本语法:
grep [选项] PATTERN [文件...]
- PATTERN:要搜索的模式,可以是简单的文本字符串或正则表达式。
- 文件:要搜索的文件。如果未指定文件,
grep会从标准输入读取数据。
常用选项:
-i:忽略大小写。-v:反向匹配,显示不包含模式的行。-r或-R:递归搜索目录中的文件。-l:只显示匹配模式的文件名。-n:显示匹配行的行号。-c:显示匹配的行数。-o:只显示匹配的文本部分,而不是整行。-w:匹配整个单词。-x:只匹配整行。-H:输出匹配行所在的文件名。-A NUM:输出匹配行及其之后的 NUM 行。-B NUM:输出匹配行及其之前的 NUM 行。-C NUM:输出匹配行及其前后各 NUM 行。
例子:
1. 基本搜索
grep "error" logfile.txt
- 作用:在
logfile.txt文件中搜索包含error的行,并输出。
2. 忽略大小写
grep -i "error" logfile.txt
- 作用:搜索
logfile.txt文件中的error(忽略大小写),匹配ERROR、Error等不同形式。
3. 显示行号
grep -n "error" logfile.txt
-
作用:显示每个匹配行的行号,例如:
3:error in connection 15:error occurred
4. 反向匹配(显示不包含指定文本的行)
grep -v "error" logfile.txt
- 作用:显示不包含
error的所有行。
5. 统计匹配的行数
grep -c "error" logfile.txt
- 作用:输出
logfile.txt文件中匹配error的行数。
6. 递归搜索目录中的所有文件
grep -r "error" /var/log/
- 作用:在
/var/log/目录下的所有文件中搜索error。
7. 只显示匹配的文件名
grep -l "error" *.log
- 作用:显示当前目录下所有
.log文件中包含error的文件名。
8. 只显示匹配的文本部分
grep -o "error" logfile.txt
- 作用:只输出匹配的文本部分,而不是整行。例如,如果一行包含多个 "error",会显示多个
error。
9. 匹配整个单词
grep -w "error" logfile.txt
- 作用:仅匹配完整的单词
error,不匹配像errors或supererror这样的词。
10. 搜索多个模式
grep -e "error" -e "warning" logfile.txt
- 作用:同时搜索
error和warning。
11. 显示匹配行及其上下文
-
-A NUM:显示匹配行及其后NUM行。grep -A 2 "error" logfile.txt- 作用:显示匹配
error的行及其后两行。
- 作用:显示匹配
-
-B NUM:显示匹配行及其前NUM行。grep -B 2 "error" logfile.txt- 作用:显示匹配
error的行及其前两行。
- 作用:显示匹配
-
-C NUM:显示匹配行及其前后各NUM行。grep -C 2 "error" logfile.txt- 作用:显示匹配
error的行及其前后两行。
- 作用:显示匹配
12. 匹配正则表达式
grep -E "erro(r|r*)" logfile.txt
- 作用:使用扩展正则表达式(ERE),匹配
erro后跟一个或多个r的字符串,例如error和errrrr。
13. 只匹配整行
grep -x "error" logfile.txt
- 作用:只匹配整行内容为
error的行。
awk
awk 是一个强大的文本处理工具,常用于对文件中的数据进行操作和分析。awk 基于模式匹配,能够按列(字段)处理文件中的文本数据,非常适合用来处理结构化的文本,如日志文件、CSV 文件等。
基本语法:
awk 'pattern {action}' input_file
- pattern:模式,
awk会搜索与该模式匹配的行。 - action:对匹配的行执行的操作。常见的操作包括打印某些字段、计算、替换等。如果没有指定
action,则默认打印匹配行。
常见选项:
-F:指定字段分隔符。默认情况下,awk使用空格或制表符作为字段分隔符,但可以通过-F选项指定其他分隔符。-v:设置变量值,允许在awk脚本中传递外部变量。
字段($符号):
$1:第一个字段(列)。$2:第二个字段(列)。$0:整行文本(包括所有字段)。
常见用法:
1. 打印文件的内容
awk '{print $0}' file.txt
- 作用:打印文件的每一行。
$0代表整行文本。
2. 打印文件中的某一列
awk '{print $1}' file.txt
- 作用:打印文件的第一列。如果文件中有多个列,
$1表示第一个字段。
awk '{print $2}' file.txt
- 作用:打印第二列。
3. 指定字段分隔符(例如 CSV 文件)
awk -F, '{print $1, $2}' file.csv
- 作用:在 CSV 文件中指定逗号(
,)作为字段分隔符,打印文件的前两列。
4. 条件判断
awk '$1 == "Alice" {print $2}' file.txt
- 作用:打印第一列为 "Alice" 时的第二列。
5. 计算列的总和
awk '{sum += $1} END {print sum}' file.txt
- 作用:对文件的第一列求和并打印总和。
sum += $1表示累加每行的第一个字段,END {print sum}会在处理完所有行后输出结果。
6. 打印特定条件下的行
awk '$3 > 50 {print $1, $3}' file.txt
- 作用:如果第三列的值大于 50,则打印第一列和第三列。
7. 使用正则表达式进行匹配
awk '/pattern/ {print $0}' file.txt
- 作用:匹配包含 "pattern" 的行,并打印该行。可以使用正则表达式来匹配模式。
8. 计算文件中的列平均值
awk '{sum += $1} END {if (NR > 0) print sum / NR}' file.txt
- 作用:计算文件第一列的平均值。
NR是记录的行数(行号),sum / NR计算平均值。
9. 使用多个命令
awk '{print $1; print $2}' file.txt
- 作用:打印每行的第一列和第二列。
10. 在 awk 中使用外部变量
awk -v threshold=50 '$3 > threshold {print $1, $3}' file.txt
- 作用:使用外部变量
threshold来过滤第三列大于该值的行。在这个例子中,threshold的值为 50。
11. 修改字段内容
awk '{$2="modified"; print $0}' file.txt
- 作用:将每行的第二列修改为 "modified" 并打印整行。
12. 按分隔符处理复杂数据(例如多个分隔符)
awk -F'[: ]' '{print $1, $2}' file.txt
- 作用:使用冒号(
:)和空格()作为字段分隔符,打印第一列和第二列。
结合管道使用:
awk 经常和其他命令(如 grep, sort, cut 等)结合使用。
示例 1:使用 grep 和 awk 查找并处理数据:
grep "pattern" file.txt | awk '{print $1, $3}'
- 作用:首先用
grep查找包含 "pattern" 的行,然后用awk打印匹配行的第一列和第三列。
示例 2:用 awk 处理输出并排序:
awk '{print $1, $2}' file.txt | sort -k2
- 作用:用
awk提取第一列和第二列,然后用sort按第二列排序。
SSH、Apache、Nginx 日志字段对照表
SSH 日志 (/var/log/auth.log 或 /var/log/secure)
示例行:
Oct 16 10:45:23 localhost sshd[1234]: Failed password for invalid user test from 192.168.1.2 port 55432 ssh2
字段分解(空格为分隔符)
| 字段 ($n) | 内容 | 说明 |
|---|---|---|
| $1 | Oct | 月份 |
| $2 | 16 | 日期 |
| $3 | 10:45:23 | 时间 |
| $4 | localhost | 主机名 |
| $5 | sshd[1234]: | 服务名+PID |
| $6 | Failed | 日志动作开始 |
| $7 | password | 日志动作描述 |
| $8 | for | 固定词 |
| $9 | invalid | 用户状态 |
| $10 | user | 固定词 |
| $11 | test | 登录用户名 |
| $12 | from | 固定词 |
| $13 | 192.168.1.2 | 登录来源 IP |
| $14 | port | 固定词 |
| $15 | 55432 | 登录端口 |
| $16 | ssh2 | 协议类型 |
💡 注意:可以用 $(NF-3) 取 IP,$(NF-5) 取用户名。
Apache 日志(/var/log/apache2/access.log 或 /var/log/httpd/access_log)
常见 Combined Log Format:
192.168.1.10 - - [16/Oct/2025:10:45:23 +0800] "GET /index.html HTTP/1.1" 200 1024 "http://example.com" "Mozilla/5.0 ..."
| 字段 ($n) | 内容 | 说明 |
|---|---|---|
| $1 | 192.168.1.10 | 客户端 IP |
| $2 | - | RFC 1413 用户标识(通常是 -) |
| $3 | - | 用户名(通常是 -) |
| $4 | [16/Oct/2025:10:45:23 | 请求时间(带左括号) |
| $5 | +0800] | 时区(带右括号) |
| $6 | "GET | 请求方法(带左引号) |
| $7 | /index.html | 请求 URL |
| $8 | HTTP/1.1" | 协议版本(带右引号) |
| $9 | 200 | HTTP 状态码 |
| $10 | 1024 | 返回大小(字节) |
| $11 | "http://example.com" | Referer |
| $12 | "Mozilla/5.0 ..." | User-Agent |
💡 建议用 awk -F'"' '{print $2, $6}' 可以更方便提取 请求 URL 和 Referer/User-Agent,因为双引号把字段分开了。
Nginx 日志(/var/log/nginx/access.log)
格式与 Apache 类似,假设 默认 Combined Format:
192.168.1.10 - - [16/Oct/2025:10:45:23 +0800] "GET /index.html HTTP/1.1" 200 512 "-" "Mozilla/5.0 ..."
| 字段 ($n) | 内容 | 说明 |
|---|---|---|
| $1 | 192.168.1.10 | 客户端 IP |
| $2 | - | RFC 1413 用户标识 |
| $3 | - | 用户名 |
| $4 | [16/Oct/2025:10:45:23 | 请求时间 |
| $5 | +0800] | 时区 |
| $6 | "GET | 请求方法 |
| $7 | /index.html | 请求 URL |
| $8 | HTTP/1.1" | 协议版本 |
| $9 | 200 | 状态码 |
| $10 | 512 | 返回大小 |
| $11 | "-" | Referer(可能是 "-") |
| $12 | "Mozilla/5.0 ..." | User-Agent |
💡 同样建议用 -F'"' 分隔字符串,然后按需要提取字段。
实用 awk 提取技巧
SSH 示例:取用户名 + IP
awk '/Failed password/ {print $(NF-5), $(NF-3)}' /var/log/auth.log
Apache/Nginx 示例:提取请求方法 + URL + 状态码
awk -F'"' '{print $2, $3}' /var/log/nginx/access.log
$2="GET /index.html HTTP/1.1"$3=200 512 "-" "User-Agent"
然后可用awk再切分$2,比如:
awk -F'"' '{split($2,a," "); print a[1], a[2], $3}' /var/log/nginx/access.log
a[1]= GETa[2]= /index.html$3包含状态码和大小
sort
sort 是 Linux 中用于对文本行进行排序的命令。它非常强大,支持多种排序方式,适用于按字母、数字、日期等方式对文本数据进行排序。
基本语法:
sort [选项] [文件...]
- 文件:要排序的文件。如果没有指定文件,
sort将从标准输入(通常是终端)读取数据。
常用选项:
-n:按数值大小排序(默认按字典顺序排序)。-r:按降序排序(默认按升序排序)。-k:指定排序的列(字段)。-t:指定字段分隔符,默认是空格或制表符。-u:删除重复的行,只保留唯一的行。-b:忽略行首的空格。-f:忽略大小写进行排序。-M:按月份排序(适用于包含月份名的日期格式)。-T:指定临时文件的存储位置。
常见用法:
1. 按字典顺序排序(升序)
sort file.txt
- 作用:按字母(字典顺序)对
file.txt文件中的行进行升序排序。
2. 按数值排序
sort -n file.txt
- 作用:按照数值的大小对
file.txt文件中的行进行排序,而不是字母顺序。
3. 按降序排序
sort -r file.txt
- 作用:按降序对文件进行排序(默认是升序排序)。
4. 按列排序
假设 file.txt 文件内容如下:
John 50
Alice 25
Bob 30
- 按第二列(年龄)排序:
sort -k2 file.txt
- 作用:根据文件的第二列(年龄)对行进行升序排序。
5. 指定分隔符进行排序
假设 file.csv 文件内容如下:
John,50
Alice,25
Bob,30
- 按逗号分隔并根据第二列排序:
sort -t',' -k2 file.csv
- 作用:指定逗号(
,)作为字段分隔符,然后根据第二列进行排序。
6. 按降序排序并去重
sort -r -u file.txt
- 作用:按降序排序,并去除重复的行,只保留唯一的行。
7. 忽略大小写排序
sort -f file.txt
- 作用:忽略大小写进行排序。例如,
apple和Apple会被视为相同。
8. 按月份排序
假设 file.txt 文件内容如下:
Jan 10
Feb 5
Mar 20
- 按月份排序:
sort -M file.txt
- 作用:根据月份名称(如
Jan,Feb,Mar)进行排序。
9. 按照多个列进行排序
假设 file.txt 文件内容如下:
John 50
Alice 30
Alice 25
Bob 30
- 先按第二列(年龄)升序,再按第一列(名字)升序排序:
sort -k2 -k1 file.txt
- 作用:首先根据第二列(年龄)升序排序,如果年龄相同,再根据第一列(名字)升序排序。
10. 排序并输出到另一个文件
sort file.txt > sorted_file.txt
- 作用:将
file.txt排序后的结果输出到sorted_file.txt文件中。
11. 删除重复行
sort -u file.txt
- 作用:排序并去除重复的行。
示例:
假设 file.txt 内容如下:
3
5
1
2
4
-
按数字升序排序:
sort -n file.txt输出:
1 2 3 4 5 -
按数字降序排序:
sort -n -r file.txt输出:
5 4 3 2 1
uniq
uniq 是 Linux 中的一个命令,用于删除文件中的重复行,并且可以对输入进行统计、排序等操作。通常,uniq 命令与 sort 命令一起使用,以便在排序的文本中去除重复行。
基本语法:
uniq [选项] [输入文件] [输出文件]
- 输入文件:默认从标准输入读取,或指定输入文件。
- 输出文件:默认将结果输出到标准输出,也可以重定向到文件中。
常见选项:
-c:显示每行重复出现的次数。-d:只显示重复出现的行。-u:只显示唯一的、不重复的行。-i:忽略大小写,进行不区分大小写的比较。-w N:比较前N个字符。-f N:忽略每行前N个字段。-s N:忽略每行前N个字符(按字符跳过)。
常见用法:
1. 去除重复行
uniq file.txt
- 作用:显示
file.txt文件中不重复的行,连续相同的行只保留一个。
2. 统计每行出现的次数
uniq -c file.txt
- 作用:显示
file.txt文件中每行的出现次数。每个重复的行会在前面显示出现次数。
示例输出:
3 apple
2 banana
1 orange
这表示 apple 出现了 3 次,banana 出现了 2 次,orange 出现了 1 次。
3. 只显示重复的行
uniq -d file.txt
- 作用:仅显示在
file.txt文件中重复出现的行。
示例输出:
apple
banana
这表示 apple 和 banana 是重复的行。
4. 只显示唯一的行(不重复的行)
uniq -u file.txt
- 作用:显示
file.txt文件中唯一的、不重复的行。
示例输出:
orange
这表示 orange 是唯一的、不重复的行。
5. 忽略大小写进行比较
uniq -i file.txt
- 作用:忽略大小写,去除重复的行。例如,
apple和APPLE被视为相同的行。
6. 指定比较字段
uniq -f 2 file.txt
- 作用:忽略每行的前两个字段,只比较后面的字段。例如,如果每行包含多个字段(如空格分隔的字段),可以指定
-f选项来跳过前N个字段进行比较。
7. 指定比较字符数
uniq -w 5 file.txt
- 作用:仅比较每行前 5 个字符,忽略其余字符进行去重。
8. 与 sort 配合使用
为了确保 uniq 去重有效,通常会先使用 sort 排序文本文件,然后再使用 uniq 去除重复行:
sort file.txt | uniq
- 作用:首先使用
sort将文件按字典顺序排序,然后使用uniq去除重复行。
9. 去重并输出到文件
uniq file.txt > unique_file.txt
- 作用:去重
file.txt中的重复行,并将结果输出到unique_file.txt文件中。
示例:
假设 file.txt 内容如下:
apple
banana
apple
orange
banana
grape
apple
-
去除重复行:
uniq file.txt输出:
apple banana orange grape -
统计每行出现的次数:
uniq -c file.txt输出:
3 apple 2 banana 1 orange 1 grape -
只显示重复的行:
uniq -d file.txt输出:
apple banana -
只显示唯一的行(不重复的行):
uniq -u file.txt输出:
orange grape
uniq sort awk grep用法的组合使用
在应急响应中,经常会使用 uniq、sort、awk 和 grep 等命令来处理日志文件、统计数据、过滤和分析信息。这些命令各有独特的功能,组合使用可以实现更强大的数据处理和分析。以下是一些常见的命令组合,用于日志分析和数据筛选:
1. 结合 sort 和 uniq 统计重复行
这两个命令结合使用,常用于去除重复行,并计算每行出现的次数。
-
示例:统计 Apache 访问日志中每个 IP 地址的访问次数。
cat access.log | sort | uniq -c | sort -nr -
解释:
sort:将access.log中的行排序。uniq -c:对排序后的结果进行去重,并统计每个 IP 地址的出现次数。sort -nr:按降序排列输出结果,显示访问次数最多的 IP 地址。
2. 结合 grep 和 sort 筛选并排序
grep 用于过滤数据,sort 用于排序,可以很方便地筛选并排序日志文件。
-
示例:显示包含
error的行并按日期排序。grep "error" access.log | sort -
解释:
grep "error":筛选出包含error的所有行。sort:按字典顺序对筛选出的行进行排序。
3. 结合 awk 和 sort 按列排序
awk 用于提取并处理字段,sort 用于按某一列排序。
-
示例:按第一个字段(IP 地址)进行排序并显示 IP 和请求次数。
awk '{print $1}' access.log | sort | uniq -c | sort -nr -
解释:
awk '{print $1}':提取access.log文件中的第一列(IP 地址)。sort:对 IP 地址进行排序。uniq -c:统计每个 IP 地址出现的次数。sort -nr:按出现次数进行降序排序。
4. 结合 grep 和 awk 过滤并处理日志
grep 用于快速过滤出相关内容,awk 用于进一步分析并处理数据。
-
示例:提取所有失败的登录尝试并显示 IP 地址和用户名。
grep "Failed password" /var/log/auth.log | awk '{print $1, $2, $3, $11}' -
解释:
grep "Failed password":筛选出包含Failed password的日志行。awk '{print $1, $2, $3, $11}':显示日志行的前 3 个字段(日期、时间和主机名)和第 11 个字段(用户名)。
5. 结合 grep 和 sort 排序后去重
grep 用于过滤,sort 和 uniq 结合使用来去重并按顺序输出。
-
示例:查找所有请求的 URL,并按照字母顺序去重和排序。
grep -oP 'GET \K\S+' access.log | sort | uniq -
解释:
grep -oP 'GET \K\S+':使用grep和 Perl 正则表达式(-P)提取所有GET请求后的 URL 部分。sort:对 URL 进行排序。uniq:去重,确保每个 URL 只出现一次。
6. 结合 awk 和 grep 用于统计特定条件的数据
awk 用于过滤特定条件的数据,grep 用于更精细的文本搜索。
-
示例:查找访问次数最多的 URL,并显示访问的次数。
grep "GET" access.log | awk '{print $7}' | sort | uniq -c | sort -nr -
解释:
grep "GET":筛选出所有 GET 请求。awk '{print $7}':提取日志的第七列(即 URL)。sort:排序。uniq -c:统计每个 URL 的访问次数。sort -nr:按访问次数降序排列。
7. 结合 awk、grep 和 sort 筛选并按条件排序
可以结合多个命令,首先过滤、然后处理字段并排序。
-
示例:找出所有 HTTP 404 错误的请求,并按 IP 地址和状态码排序。
grep "404" access.log | awk '{print $1, $9}' | sort -
解释:
grep "404":筛选出所有 HTTP 404 错误的请求。awk '{print $1, $9}':提取 IP 地址(第一列)和 HTTP 状态码(第九列)。sort:按 IP 地址和状态码进行排序。
8. 结合 awk 和 sort 进行统计和排序
awk 和 sort 常用于提取某些字段进行统计后排序。
-
示例:计算每个 IP 地址访问的总字节数,并按降序排序。
awk '{print $1, $10}' access.log | sort | uniq -c | sort -nr -
解释:
awk '{print $1, $10}':提取每行的 IP 地址(第一列)和字节数(第十列)。sort:排序,按 IP 地址和字节数。uniq -c:统计每个 IP 地址的访问次数。sort -nr:按降序排序,显示访问最多的 IP 地址和它们的字节数。
9. 结合 sort、uniq 和 awk 查找访问频次最高的请求方法
-
示例:查看 HTTP 请求方法(如 GET、POST)的出现次数,并按频次降序排列。
awk '{print $6}' access.log | sort | uniq -c | sort -nr -
解释:
awk '{print $6}':提取每行的 HTTP 请求方法(通常是第六列)。sort:对方法进行排序。uniq -c:统计每种请求方法的出现次数。sort -nr:按出现次数降序排列。
总结:
uniq、sort、awk 和 grep 是 Linux 中常用的文本处理工具,它们在应急响应过程中可以用于日志分析、流量监控、数据提取和统计等任务。通过组合使用这些命令,可以高效地筛选、排序、统计和分析大量的日志数据,帮助分析系统的状态和潜在的安全威胁。

浙公网安备 33010602011771号