top
-
实时动态地查看系统的整体运行情况
-b:以批处理模式操作;
-c:显示完整的治命令;
-d:屏幕刷新间隔时间;
-I:忽略失效过程;
-s:保密模式;
-S:累积模式;
-i<时间>:设置间隔时间;
-u<用户名>:指定用户名;
-p<进程号>:指定进程;
-n<次数>:循环显示的次数。
top命令交互
常用交互操作
基础操作
1:显示CPU详细信息,每核显示一行
d / s :修改刷新频率,单位为秒
h:可显示帮助界面
n:指定进程列表显示行数,默认为满屏行数
q:退出top
面板隐藏显示
l:隐藏/显示第1行负载信息;
t:隐藏/显示第2~3行CPU信息;
m:隐藏/显示第4~5行内存信息;
进程列表排序
M:根据驻留内存大小进行排序;
P:根据CPU使用百分比大小进行排序;
T:根据时间/累计时间进行排序;
top命令通常搭配ps和netstate两个命令
监控java线程数:
ps -eLf | grep java | wc -l
监控网络客户连接数:
netstat -n | grep tcp | grep 侦听端口 | wc -l
iftop
-i 接口:指定要监控的网络接口。
-B 显示单位:设置显示单位,如b、Kb、Mb等。
-F 过滤规则:设置过滤规则,只显示符合规则的连接。
-n 不解析主机名:禁止解析主机名,只显示IP地址。
-N 不解析端口号:禁止解析端口号,只显示端口号。
-o 排序时间间隔:设置排序时间间隔,以秒为单位。
-s 排序字段:设置排序字段,如2表示按照流量排序。
-
实时监控网络流量,便于了解网络负载,排查网络问题非常有帮助
例子 iftop -i ens33
-
按照流量排序,快速识别占用带宽较多的连接
例子 iftop -i ens33 -o 3s -s 2
3.过滤显示连接,只显示特定源IP地址或目标IP地址的连接
iftop -i ens33 -f "src host 192.168.0.1"
4.显示连接的详细信息,我们可以获取关于连接更多的信息,如连接的端口号、协议等
iftop -i ens33 -nN
iostat
主要用于监控系统设备的IO负载情况
-c 只显示cpu相关统计信息(默认是同时显示cpu和磁盘信息)
-d 只显示磁盘统计信息(默认是同时显示cpu和磁盘信息)
-h 使用NFS的输出报告更加友好可读。
-j { ID | LABEL | PATH | UUID | … } 磁盘列表的Device列要用什么维度来描述磁盘
-k 默认情况下,iostat的输出是以block作为计量单位,加上这个参数可以以kb作为计量单位显示。(该参数仅在linux内核版本2.4以后数据才是准确的)
-m 默认情况下,iostat的输出是以block作为计量单位,加上这个参数可以以mb作为计量单位显示。(该参数仅在linux内核版本2.4以后数据才是准确的)
-N 显示磁盘阵列(LVM) 信息
-n 显示NFS相关统计数据(network fileSystem)。(该参数只在linux内核版本2.6.17之后有用)
-p [ { device [,…] | ALL } ] 显示磁盘分区的相关统计信息(默认粒度只到磁盘,没有显示具体的逻辑分区)
-t 显示终端和CPU的信息,每次输出报告时显示系统时间。
-V 显示当前iostat的版本信息
-x 显示更详细的磁盘报告信息,默认只显示六列,加上该参数后会显示更详细的信息。(该参数需要在内核版本2.4之后才能使用)
-y 跳过不显示第一次报告的数据,因为iostat使用的是采样统计,所以iostat的第一次输出的数据是自系统启动以来累计的数据
-z 只显示在采样周期内有活动的磁盘
screen
全屏窗口管理器,它在多个进程(通常是交互式shell)之间多路传输物理终端
安装 yum install -y screen
screen -ls #列出所有的session
screen -S 名称 #创建新窗口
ctrl+a 然后按d 退出或者exit退出
screen -r id或名称 #重新连接会话
screen -wipe #当运行的窗口dead无法连接时,用wipe清除
tar
压缩命令
先写名后指定要压缩的文件或目录
例如 将test.sh压缩成liusidi.tar
tar -cvf liusidi.tar test.sh
或者创建归档文件
tar -cvf liusidi.tar test.1 test.2
tar -cvf load.tar file.{1..20}
tar -zcvf load.tar.gz file.{1..20}
解压
tar -xvf load.tar
tar -zxvf load.tar.gz
gzip
gzip zzz.txt #压缩文件zzz.txt
gzip -dv zzz.txt.gz #解压缩zzz.txt.gz文件
gzip -rv ztj/ #递归压缩ztj目录下的文件
gzip -rdv ztj/ #递归解压缩ztj目录下的文件
netstat
用于显示网络连接、路由表、网络接口等相关信息
1、显示所有网络连接
netstat -a
该命令将列出本地IP和端口、远程IP和端口、连接状态。
2、查看特定协议的连接
查看TCP连接:netstat -t
查看UDP连接:netstat -u
3、查看listen(监听)状态端口
netstat -l
列出所有正在监听的端口,包括本地IP、端口号、监听状态
4、显示与进程相关的连接
netstat -p
显示与每个网络连接关联的进程ID和进程名
5、显示系统路由表
netstat -r
iptables ***
理解
实现对网络数据包进出设备及转发的控制
常用命令
指定IP允许通过
黑白名单设置
公网IP访问限定次数
还可以进行端口映射
-A和-I #给防火墙添加规则
-R修改规则
-D删除规则
iptables -nL --line-number #列出带编号的规则
添加规则限制IP地址访问举例限制172.27.30.129访问
iptables -I INPUT -s 172.27.30.129 -j DROP
iptables -R INPUT 6 -s 172.27.30.129 -j ACCEPT #6为查看后其的编号,将其的规则从DROP变为ACCEPT
iptables -D INPUT 6
iptables-save命令用来批量导出Linux防火墙规则
iptables-save > /etc/sysconfig/iptables #保存在默认文件夹中(保存防火墙规则)
iptables命令常用的选项及各自的功能如表2所示:
选项 | 功能 |
-A | 添加防火墙规则 |
-D | 删除防火墙规则 |
-I | 插入防火墙规则 |
-F | 清空防火墙规则 |
-L | 列出添加防火墙规则 |
-R | 替换防火墙规则 |
-Z | 清空防火墙数据表统计信息 |
-P | 设置链默认规则 |
iptables命令常用匹配参数及各自的功能如表3所示:
参数 | 功能 |
[!]-p | 匹配协议,! 表示取反 |
[!]-s | 匹配源地址 |
[!]-d | 匹配目标地址 |
[!]-i | 匹配入站网卡接口 |
[!]-o | 匹配出站网卡接口 |
[!]--sport | 匹配源端口 |
[!]--dport | 匹配目标端口 |
[!]--src-range | 匹配源地址范围 |
[!]--dst-range | 匹配目标地址范围 |
[!]--limit | 四配数据表速率 |
[!]--mac-source | 匹配源MAC地址 |
[!]--sports | 匹配源端口 |
[!]--dports | 匹配目标端口 |
[!]--stste | 匹配状态(INVALID、ESTABLISHED、NEW、RELATED) |
[!]--string | 匹配应用层字串 |
ps命令 ***
作用:查看系统进程,比如正在运行的进程有哪些,什么时候开始运行的,哪个用户运行的,占用了多少资源。
常用的有三种命令
-
ps -ef:查看所有进程
-
ps -aux:查看所有进程
-
ps -ef | grep tomcat:查看指定进程(| 符号,是个管道符号,表示ps 和 grep 命令同时执行)
查看进程的信息解释
UID:用户ID,即进程的拥有者
PID:进程ID
PPID:该进程的父级进程id,如果一个程序的父级进程找不到,该程序的进程被称为僵尸进程
C:cpu的占用率,形式是百分数(%)
STIME:进程开始启动时间
TTY:终端设备,发起该进程的设备识别符号,如果显示‘ ?’表示该进程并不是由终端发起
TIME:进程的执行时间
CMD:该进程的名称或对应的路径
配合kill命令杀死某些进程 kill -9 pid
配合egrep命令来单独查找某些进程
1)查看进程的时候,让进程按照CPU使用率排序,然后展示前10行,就能清晰地看到哪些进程占用的资源比较多。
PS1:head -11 是因为标题也算一行
PS2:+、-号可以调整排序,-pcpu 表示降序,+pcpu 表示升序
ps -aux --sort=-pcpu | head -11
2)同理,把 -pcpu 换成 -pmem,就能查看内存使用最多的10个进程。
ps -aux --sort=-pmem | head -11
查看指定用户的进程
查看某个用户开启了哪些进程,可以使用 -u 参数指定用户名,比如,查看root用户的进程有哪些:
ps -u root -ef
显示具有指定进程 ID 的进程的信息。
ps -p ID -f
查找具有指定命令名称的进程:
ps -C 名称 # ps -C command_name 查找名为 command_name的进程
nslookup
解析域名和IP地址为主要用途