top/date/ps/netstat/ss命令详解

Top

用来监测linux的系统状况,可以实时显示系统中各个进程的资源的占用情况

# 使用方式
top [-d number] | top [-bnp]
参数含义
-d numbernumber代表秒数,表示top命令显示的一页更新一次的间隔(default=5s)
-b以批次的方式执行top
-n与-b配合使用,表示需要进行几次top命令的输出结果
-p指定特定的pid进程号进行观察

top命令显示的页面中,可以输入以下按键执行相应的功能(注意区分大小写)

参数含义
显示在top当中可以输入的命令
P以cpu的使用资源排序显示
M以内存的使用资源排序显示
N以pid排序显示
T由进程使用的累计排序显示
k给某一个pid一个信号,可以用来杀死进程(9)
r给某个pid重新定制一个nice值(即优先级)
q退出top(也可以用ctrl+c退出)

top各输出参数含义

top信息解释

# 第一行
top - 20:02:08 up  9:03,  3 users,  load average: 0.00, 0.01, 0.05
内容含义
20:02:08表示当前时间
up 9:03系统允许时间,格式为 时:分
3 users当前登陆用户数量
load average: 0.00, 0.01, 0.05系统负载,即任务队列的平均长度
三个数值分别为1分钟,5分钟,15分钟前到现在的平均值
# 第二行
Tasks: 133 total,   1 running, 132 sleeping,   0 stopped,   0 zombie
内容含义
Tasks: 133 total进程的总数
1 running正在运行的进程数
132 sleeping睡眠的进程数
0 stopped停止的进程数
0 zombie僵尸进程数
# 第三行
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni, 100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
内容含义
0.0 us用户空间占用cpu的百分比
0.0 sy内核空间占用cpu的百分比
0.0 ni用户进程空间改变过优先级的进程占用cpu百分比
100.0 id空闲cpu百分比
0.0 wa等待输入输出的cpu时间百分比
0.0 hi硬中断占用cpu的百分比(Hardware IRQ)
0.0 si软中断占用cpu的百分比(Software Interrupts)
0.0 st用于有虚拟cpu的情况,用来指示被虚拟机偷掉的cpu时间
# 第四行
KiB Mem :  3863564 total,  3155820 free,   164340 used,   543404 buff/cache
内容含义
3863564 total物理内存总量
3155820 free空闲内存总量
164340 used使用的物理内存总量
543404 buff/cache用作内核缓存的内存量
# 第五行
KiB Swap:  2097148 total,  2097148 free,        0 used.  3428936 avail Mem
内容含义
2097148 total交换区总量
2097148 free空闲交换区总量
0 used使用的交换区总量
3428936 avail Mem缓冲的交换区总量

进程信息

PID  USER      PR   NI    VIRT    RES    SHR   S  %CPU  %MEM     TIME+    COMMAND
5324 root      20   0    161972   2276   1592  R  2.0   0.1      0:00.08  top 
列名含义
PID进程id
USER进程所有者的用户名
PR优先级
NInice值,负值表示高优先级,正值表示低优先级
VIRT进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR共享内存大小,单位kb
S进程状态,D:不可中断睡眠状态,R:运行,S:睡眠,T:跟踪/停止,Z:僵尸进程
%CPU上次更新到现在的cpu时间占用baifenbi
%MEM进程使用的物理内存百分比
TIME+进程使用的cpu时间总计,单位1/100秒
COMMAND命令名/命令行

Date

查看系统时间

# date [选项] [格式]
[root@laoda ~]# date
2024年 07月 19日 星期五 11:22:33 CST

设置时区与时间

[root@laoda ~]# timedatectl
      Local time: 五 2024-07-19 20:12:36 CST  # 本地时间
  Universal time: 五 2024-07-19 12:12:36 UTC  # 标准时间
        RTC time: 五 2024-07-19 12:12:37
       Time zone: Asia/Shanghai (CST, +0800)  # 所在时区
     NTP enabled: yes
NTP synchronized: yes
 RTC in local TZ: no
      DST active: n/a
# 修改时间
$ timedatectl set-ntp no
$ timedatectl set-time "2024-07-19 12:00"
$ timedatectl 

指定格式显示时间

时间参数

指令作用
%n换行
%t跳格
%z时区(+0800)
%p显示上午或下午
组合指令
%r格式:下午 07时30分19秒
%T直接显示时间 (19:31:05)
%X格式:19时32分17秒
%x格式:2024年07月19日
%c格式:2024年07月19日 星期五 19时33分22秒
%F格式:2024-07-19
年份
%Y年份(0000-9999)
%y年份的最后两位数字(00-99)
月份
%m01-12
%BJanuary-December 格式:七月
%bJan-Dec 格式:7月
日期
%D直接显示日期(mm/dd/yy:07/19/24)
%d日期(01-31)
小时
%H00-23
%k0-23
%l1-12
分钟
%M分钟(00-59)
%s从1970年1月1日0:0:0UTC到目前的秒数
%S秒(00-60)
%A周几(Sunday-Saturday)
%a周几(Sun-Sat)
%u周几(1-7)
%w一周中的第几天
%W一年中的第几周
%j一年中的第几天(001-366)

示例

$ date "+现在时间是: %F %T"
-d 几天前或几天后
现在时间是: 2024-07-19 20:24:29
# 三年前
$ date "+%F %T" -d "-3 year"
# 三天前
$ date "+%F %T" -d "-3 day"
# 三天后
$ date -d '3 days ' '+%F %T'
-s 选项可以设置系统时间(只能root用户设置)
$ date -s 12:30:20 设置具体时间
$ date -s "12:30:20 2024-10-15" 设置全部时间

Ps

查看当前系统中正在运行的进程的状态和信息

  1. ps命令通过读取/proc目录下的进程信息文件获取进程的详细信息。
  2. 进程信息文件中包含了进程的PID、状态、父进程ID、CPU利用率、内存占用等信息。
  3. ps命令解析进程信息文件并格式化输出,以便用户查看。

参数

选项作用
-e显示所有进程
-f全格式显示
-a显示终端上的所有进程,包括其他用户的进程
-u显示进程的详细状态
-x显示没有控制终端的进程
-T显示当前线程的层次结构
-l长格式显示
组合
ps aux --sort=-%cpu按cpu使用率降序显示进程
ps aux --sort=-%cpu按内存使用率降序显示进程
ps -u 指定用户名
ps -e显示所有进程
ps -p id号显示指定进程ID的详细信息
ps -T显示当前线程的层次结构
ps -o args=显示完整的命令行参数

常用指令

# 显示所有进程的详细状态
$ ps aux
# 显示所有进程的完整格式
$ ps -ef
[root@laoda ~]# ps -ef
UID         PID   PPID  C STIME TTY          TIME CMD
root          2      0  0 11:32 ?        00:00:00 [kthreadd]
root          3      2  0 11:32 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 11:32 ?        00:00:00 [kworker/0:0H]
root          7      2  0 11:32 ?        00:00:00 [migration/0]
输出含义
UID用户ID,表示运行该进程的用户
PID进程ID,每个进程都有一个唯一的ID
PPID父进程ID,表示创建该进程的父进程的ID
CCPU使用率,表示该进程占用的CPU百分比
STIME进程启动的时间
TTY终端类型,进程与莫格终端关联,则显示该终端的名称;否则显示”?“
TIME该进程实际使用CPU的时间,通常以分钟或小时为单位
CMD启动进程的命令名称或命令行
[root@laoda ~]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          2  0.0  0.0      0     0 ?        S    11:32   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    11:32   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   11:32   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    11:32   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    11:32   0:00 [rcu_bh]
输出含义
USER进程拥有者。运行该进程的用户账户的名称
PID进程ID。每个进程都有一个唯一的ID
%CPU进程占用CPU使用率百分比
%MEM进程占用物理内存使用率百分比
VSZ虚拟内存大小,单位kb。表示进程使用的虚拟内存量
RSS常驻集大小,单位kb。表示进程在物理内存中占用固定大小
TTY终端类型。如果没有与任何终端关联,则显示为“?”
STAT进程状态。进程的当前状态
START进程启动时间
TIME进程实际使用cpu的时间,单位是小时:分钟:秒
COMMAND启动进程的命令名称或命令行

netstat/ss命令

用于显示处于活动状态的服务/查看端口信息状态

ss [选项]
ss -ntl   # 显示监听的套接字
选项含义
-n不解析服务名称,以数字方式显示
-t只显示tcp套接字
-l显示处于监听状态的套接字
-p显示使用套接字的进程信息
-m显示套接字的内存使用情况
-u只显示udp套接字
-a显示所有的套接字
-r尝试解析服务名为主机名
-4只显示ipv4的套接字
-6只显示ipv6的套接字
# 打印进程名和进程号
$ ss -ltp
State      Recv-Q Send-Q    Local Address:Port           Peer Address:Port 
LISTEN     0      128       *:22                          *:*            users:(("sshd",pid=1142,fd=3))
# 仅过滤端口
ss -nt dport = :80 
# 显示ICP连接
$ ss -t -a
State      Recv-Q Send-Q           Local Address:Port                       Peer Address:Port 
LISTEN     0      128               *:ssh                                    *:*                    
LISTEN     0      100               127.0.0.1:smtp                           *:*                    

natstat

# 显示所有连接和监听端口并显示每个连接相关的进程ID
netstat -auo   | grep 进程ID/端口h

网络状态

state状态
LISTENING监听中,服务端需要打开一个socket进行监听,侦听来自远方TCP端口的连接请求
ESTABLISHED已连接,代表一个打开的连接,双方可以进行或已经在数据交互了
SYN_SENT客户端通过应用程序调用connect发送一个SYN以请求建立一个连接。在收到ACK后,状态转为ESTABLIHSED。
CLOSE_WAIT被动关闭端接到FIN后,就发出ACK以回应FIN请求(它的接收也作为文件结束符传递给上层应用程序)
TIME_WAIT主动关闭端接收到FIN后,TCP就发送ACK包,并进入TIME-WAIT状态
LAST_ACK等待对方回应一个ACK(这是准备关闭连接的一个步骤,意味着这个连接正在关闭)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值