一、 查找命令
1 grep
1 grep 基础
-C 关键字 上下行数
-A 关键字和后面的N行
-B 关键字和前面的N行
-n 显示行号
-i 忽略大小写
-c 只输出 关键字出现的次数
-v 输出没有包含关键字内容
--color=auto 关键字高亮
-m num 查询最大数量, --max-count=num
例子
tail -n 2000 server.log | grep sendAddPostCommentEvent -n -C 1 --color=a
2 并且查询
- F 参数强制不使用任何表达式
grep 5288490287094574636 server.log| grep broadcastPushToWeb|grep -F 'status\":2'
3 或者查询
egrep 'broadcastPushToWeb|5236743288469332012' server.log
grep 'pattern1 \| pattern2' filename
grep -E 'pattern1|pattern2' filename
4 NOT,非查询
grep -v 'broadcastPushToWeb' filename
5. 后面前面第一次出现
#最后一次
grep -C 100 'listMessageByTypes' catalina.log | tail -200
# 最前面
grep -C 100 'listMessageByTypes' catalina.log | head -200
二、系统信息命令
1. top命令
1. 语法
- -和|是可选的
top -hv | -bcEeHiOSs1 -d secs -n max -u | U user -p pid(s) -o field -w [cols]
1.1 选项
选项 | 名称 | 描述 |
---|---|---|
-h | 帮助 | 显示命令帮助 |
-v | 版本 | |
-b | 批处理方式 | 以批处理模式启动 top,允许将命令的输出发送到文件或其他程序。Top 不接受批处理模式下的输入,并且一直运行到终止或者达到指定的迭代限制为止。 |
-c | 切换命令行/程序名称 | 反转最后记住的 c 状态。如果顶部显示命令行,该字段现在显示程序名称,反之亦然。 |
-d [secs.tenths] | 延迟时间间隔 | 提示您在更新屏幕之前指定延迟,并覆盖默认值。数值以秒为单位。该命令接受小数秒,但不接受负数。 |
-e [k / m /g / t / p] | 切换任务内存缩放 | 允许您更改top 任务区域内存缩放。可用的缩放选项是k(kibibytes)、m(mebibytes)、g(gibibytes)、t(tebibytes)、p(pebibytes)。 |
-E [k / m / g / t / p / e] | 切换摘要内存缩放 | 允许您更改top摘要区域内存缩放。可用的缩放选项是k (kibibytes)、m (mebibytes)、g(gibibytes)、t(tebibytes)、p(pebibytes)、e(exbibytes)。 |
-H | 线程模式操作 | 指定-H选项指示top 显示单个线程而不是每个进程中所有线程的总和。 |
-i | 空闲进程切换 | 反转最后记住的i状态。当开关关闭时,top 不显示自上次更新以来未使用 CPU 资源的任务。 |
-n | 限制迭代次数 | top 指定结束前要生成的最大迭代次数。 |
-o [field name] | 覆盖排序字段 | 指定top 用于对任务进行排序的字段名称。在字段名称前加上一个+强制top 从高到低排序,同时在它前面加上-订单任务从低到高。该-o选项主要支持自动批处理模式操作。 |
-O | 输出字段名称 | 该-O选项补充了该-o选项,导致top 分别打印每个可用的字段名称,然后退出。 |
-p [N1, N2...] | 监控进程 ID 模式 | 指示top 仅监视具有指定进程 ID 的进程。当与线程模式 ( -H) 结合使用时,top 显示每个受监视的 PID 线程组中的所有进程。PID 的最大数量为 20。指定 PID 值0被视为top 程序进程 ID。要恢复正常操作,请发出以下任何命令:=、u或U,因为它们是互斥的。 |
-s | 安全模式操作 | 以安全模式启动top ,即使是 root。 |
-S | 累计时间切换 | 反转最后记住的S状态。当累积时间切换为 ON 时,每个进程都会列出它已使用的 CPU 时间。 |
-u / -U [ID or name] | 用户过滤模式 | 仅显示与指定用户 ID 或用户名匹配的进程。该-u选项仅匹配有效用户,而该-U选项匹配任何用户 - 真实、有效、已保存或文件系统。在用户 ID 或用户名前加上感叹号 ( !) 会导致top 仅显示与提供的进程不匹配的进程。 |
-w [number] | 输出宽度覆盖 | 当不带参数使用时,-w指示top 使用COLUMNS=和LINES=环境变量格式化输出(如果适用)。否则,宽度固定为最大 512 列。-w在行号不受限制的情况下,将参数附加到增加(最多 512)或减少输出宽度。该程序永远不会超过top 调用时的实际终端尺寸。 |
-1 | 单个/独立 CPU 状态切换 | 反转最后记住的 CPU 状态部分。根据 NUMA 节点命令切换 ( 2) 状态,在一行中或单独显示所有 CPU 信息。 |
2. 示例
2.1 top
- 输出
- 输出显示摘要区域(具有资源使用统计信息的仪表板)和任务区域(所有进程的列表)
- top默认情况下每三秒更新一次信息。
- 操作
- 如果进程列表很长,请使用向上和向下箭头以及Page Up和Page Down键滚动浏览它。要退出top,请按q。
- 发送信号
- 使用该top命令向正在运行的进程发送任何信号。按k键并输入过程 PID。top让您有机会键入要发送的信号。不输入特定信号会终止进程。
2.2 X 次重复后退出
- 语法
- 对于[X],指定要top刷新输出的次数。
top -n [X]
2.3 排序进程
- 排序关键字
- M. Sort by the %MEM column.
- N. Sort by PID column.
- T. Sort by the TIME+ column.
- P. Sort by the %CPU column.
2.4 按特定用户过滤进程
- -u选项允许您显示所有用户特定的进程。在运行时按u键top或使用以下语法:
top -u [user name]
- 输出
2.5 更改显示单位
-
语法
- 使用E键选择要top用于显示内存值的单位。
- 按小写字母e选择在进程列表中显示值的单位。
-
可用的选项是
- kibibytes (KiB)
- mebibytes (MiB)
- gibibytes (GiB)
- tebibytes (TiB)
- pebibytes (PiB)
- exbibytes (EiB - applies only for memory values)
-
输出
2.5 更改输出内容
- 默认top输出包含大量信息,可能看起来很混乱。通过几次按键调整内容,找到您需要的信息,或从摘要中删除某些部分。
- 单个 CPU 核心统计数据
- 语法
- 按键盘上的1可以查看每个 CPU 内核的单独统计信息。反复按1切换核心统计数据。
- 输出
- CPU 使用图
-
top支持基本的 ASCII 图,表示每个 CPU 内核的使用情况。按t打开或关闭图表。
- 第一次按t 显示条纹进度
- 第二次按t 显示实心进度
- 第三次按t删除 CPU 显示和任务摘要部分。
-
输出
- 按t 变成实心
- 内存使用图
- 该命令还支持内存和交换内存行的图形显示选项。要获得内存使用情况的直观表示,请按m。再次按m删除线条。
- 更改文字颜色
通过向输出添加颜色来强调输出中的信息。按z键为显示添加颜色:
-
输出
-
自定义显示元素并选择不同的颜色
- 按Z打开颜色设置页面。
- 按以下键选择要更改的显示元素:
- S。摘要数据区域。
- M。消息和提示。
- H。列标题。
- T。进程列表中的任务信息。
- 按Enter确认选择。
- 按以下键选择要更改的显示元素:
- 使用以下键之一为所选元素选择颜色:
- 0。黑色的。
- 1 . 红色的。
- 2 . 绿色的。
- 3 . 黄色。
- 4 . 蓝色的。
- 5 . 品红。
- 6 . 青色。
- 7 . 白色的。
- 按Enter确认选择。
- 按Z打开颜色设置页面。
2.6 显示进程命令行
-
语法
- top -c
- 进入 top 按c
2.7 流程层次结构
- 要查看哪些进程已启动或由其他进程生成,请按V键。
- 当想查看系统上的子-父进程层次结构时,树视图很有用。
- 输出
2.8 显示活动任务
- 按I键 ,要过滤输出并仅显示活动任务
- 输出隐藏了自上次更新以来未使用任何 CPU 资源的任务。
- 输出
2.9 限制进程数
- 按n键限制输出中的进程数。无论活动进程的数量如何。top提示输入要查看的进程数
- 例如,我们只想显示前 3 个进程:
2.10 更改进程优先级
- 过程
- 运行top并按r键
- 出现提示时,输入进程 ID 并按Enter 键。
- 输入 PID 后,程序会提示输入一个新的 nice 值。输入新值并按Enter 键。
负 nice 值表示更高的进程优先级。
-
更改PID 28 优先级 为 12
2.10 过滤进程
- 过滤器top功能允许使用过滤器表达式来限制在列表中查看哪些进程。按o键激活过滤器选项。该程序会提示您输入过滤器表达式。
- 例子
- 显示 %MEM > 0.2 的
三、网络相关
1. netstat 用于显示网络状态
1. 语法
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]
1.1 参数说明
- -a或--all 显示所有连线中的Socket。
- -A<网络类型>或--<网络类型> 列出该网络类型连线中的相关地址。
- -c或--continuous 持续列出网络状态。
- -C或--cache 显示路由器配置的快取信息。
- -e或--extend 显示网络其他相关信息。
- -F或--fib 显示路由缓存。
- -g或--groups 显示多重广播功能群组组员名单。
- -h或--help 在线帮助。
- -i或--interfaces 显示网络界面信息表单。
- -l或--listening 显示监控中的服务器的Socket。
- -M或--masquerade 显示伪装的网络连线。
- -n或--numeric 直接使用IP地址,而不通过域名服务器。
- -N或--netlink或--symbolic 显示网络硬件外围设备的符号连接名称。
- -o或--timers 显示计时器。
- -p或--programs 显示正在使用Socket的程序识别码和程序名称。
- -r或--route 显示Routing Table。
- -s或--statistics 显示网络工作信息统计表。
- -t或--tcp 显示TCP传输协议的连线状况。
- -u或--udp 显示UDP传输协议的连线状况。
- -v或--verbose 显示指令执行过程。
- -V或--version 显示版本信息。
- -w或--raw 显示RAW传输协议的连线状况。
- -x或--unix 此参数的效果和指定"-A unix"参数相同。
- --ip或--inet 此参数的效果和指定"-A inet"参数相同。
1.2 列头信息
- Proto
- 套接字使用的协议(tcp、udp、raw)。
- Recv-Q
- 连接到此套接字的用户程序未复制的字节数。
- 这些数字一般都应该是0,如果不是则表示软件包正在队列中堆积,这种情况是非常少见的
- Send-Q
- 远程主机未确认的字节数。
- Local Address
- 套接字本端的地址和端口号。除非指定--numeric ( -n ) 选项,否则套接字地址会解析为其规范主机名 (FQDN),而端口号会转换为相应的服务名称。
- 本地计算机的 IP 地址和正在使用的端口号。除非指定-n参数,否则显示与 IP 地址和端口名称对应的本地计算机的名称。如果端口尚未建立,则端口号显示为星号 (*)。
- Foreign Address
- 套接字所连接的远程计算机的 IP 地址和端口号。除非指定-n参数,否则将显示对应于 IP 地址和端口的名称。如果端口尚未建立,则端口号显示为星号 (*)。
- State
- 指示TCP连接的状态,
- ESTABLISHED 套接字已建立连接。
- SYN_SENT 套接字正在主动尝试建立连接。
- SYN_RECV 已从网络收到连接请求。
- FIN_WAIT1 套接字已关闭,连接正在关闭。
- FIN_WAIT2 连接已关闭,套接字正在等待来自远程端的关闭。
- TIME_WAIT 套接字在关闭后等待处理仍在网络中的数据包。
- CLOSED 套接字未被使用。
- CLOSE_WAIT 远程端已关闭,等待套接字关闭。
- LAST_ACK 远程端已关闭,套接字已关闭。等待确认。
- LISTEN 套接字正在侦听传入连接。此类套接字不会包含在输出中,除非您指定--listening ( -l ) 或 --all ( -a ) 选项。
- CLOSING 两个套接字都已关闭,但我们仍然没有发送所有数据。
- UNKNOWN 套接字的状态未知。
- 指示TCP连接的状态,
- PID/Program name
- 拥有套接字的进程的进程 ID (PID) 和进程名称的斜线分隔对。--program导致包含此列。您还需要超级用户权限才能在不属于您的套接字上查看此信息。此标识信息尚不可用于 IPX 套接字。
2. 案例
1. 查看端口端口
- netstat -anp 查看所有端口
root@DESKTOP-2L5PHTK:/etc# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 103/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 343/docker-proxy
tcp 0 0 127.0.0.1:3306 127.0.0.1:33320 ESTABLISHED 343/docker-proxy
tcp 0 0 172.17.0.1:49888 172.17.0.2:3306 ESTABLISHED 343/docker-proxy
tcp 0 0 127.0.0.1:33320 127.0.0.1:3306 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN 103/sshd
tcp6 0 0 :::2375 :::* LISTEN 153/dockerd
tcp6 0 0 :::3306 :::* LISTEN 351/docker-proxy
tcp6 0 0 172.20.116.187:2375 172.20.112.1:61782 ESTABLISHED 153/dockerd
tcp6 0 0 172.20.116.187:2375 172.20.112.1:61768 ESTABLISHED 153/dockerd
- 找出程序运行的端口
- netstat -ap | grep ssh
root@DESKTOP-2L5PHTK:/etc# netstat -ap | grep ssh
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 103/sshd
tcp6 0 0 [::]:ssh [::]:* LISTEN 103/sshd
2. tcp/ip
1.查看tcp所有端口
- netstat -antp
root@DESKTOP-2L5PHTK:/etc# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 103/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 343/docker-proxy
tcp 0 0 127.0.0.1:3306 127.0.0.1:33320 ESTABLISHED 343/docker-proxy
tcp 0 0 172.17.0.1:49888 172.17.0.2:3306 ESTABLISHED 343/docker-proxy
tcp 0 0 127.0.0.1:33320 127.0.0.1:3306 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN 103/sshd
tcp6 0 0 :::2375 :::* LISTEN 153/dockerd
tcp6 0 0 :::3306 :::* LISTEN 351/docker-proxy
tcp6 0 0 172.20.116.187:2375 172.20.112.1:61782 ESTABLISHED 153/dockerd
tcp6 0 0 172.20.116.187:2375 172.20.112.1:61768 ESTABLISHED 153/dockerd
- TCP各种状态列表并统计排序
- netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
root@DESKTOP-2L5PHTK:/etc# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
5 LISTEN
5 ESTABLISHED
1 established)
1 Foreign
- TCP 长连接
- netstat —f inet
- 这个— 是中文的-
root@DESKTOP-2L5PHTK:/etc# netstat –f inet
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:mysql localhost:33320 ESTABLISHED
tcp 0 0 172.17.0.1:49888 172.17.0.2:mysql ESTABLISHED
tcp 0 0 localhost:33320 localhost:mysql ESTABLISHED
tcp6 0 0 172.20.116.187:2375 DESKTOP-2L5PHTK:61782 ESTABLISHED
tcp6 0 0 172.20.116.187:2375 DESKTOP-2L5PHTK:61768 ESTABLISHED