掌上游戏新活动平台

《Linux 进程管理与硬件信息查看:ps、pstree 及系统监控指令详解》

2026-08-04 16:11:53

《Linux 进程管理与硬件信息查看:ps、pstree 及系统监控指令详解》

导读:对于 Linux 系统使用者来说,进程管理和硬件信息查看是日常操作中不可或缺的技能。你是否知道如何高效地查看 Linux 系统中的进程,并准确判断其状态?又该如何正确关闭进程以避免资源浪费和系统问题?本文将深入探讨 2.17 进程管理的相关知识,从 ps、pstree 等指令的使用,到 kill、pkill 等关闭进程的方法,还会详细介绍查看 CPU、内存、硬盘等硬件信息的实用指令。无论你是 Linux 新手还是有一定经验的用户,都能从本文中获取到有价值的内容,提升你的系统管理能力。

2.17 进程管理代码语言:javascript复制## 操作系统都有进程的概念,windows在任务管理器中查看,linux用ps指令来查看。2.17.1 查看和关闭进程代码语言:javascript复制#查看进程

ps

参数1:ps -ef

# pid:全称process id,是进程编号,每次启动某个程序,它的编号可能都不一样,这个是程序启动之后系统随机分配的。

# uid:全称user id,是进程所属用户,也就是哪个用户启动的,我们可以切换个用户执行一下sleep 60,就可以看到效果

# CMD中看到[]括起来的,表示这些都是系统级别的进程,比如一些硬件驱动程序之类的,这些都不要动。不带[]的都是用户级别的。

# ppid:全称parent process id,父进程,记录的是某个进程是由哪个进程创建出来的。可以通过pstree工具来查看从属关系。

# C:这个不用管。

# STIME:全称start time,进程的启动时间。

# TTY: 用来显示哪些是本地启动的,哪些是远程终端连接上来启动的。通过w指令可以看到哪些终端登录着主机。只要登录成功一个终端,那就多一个终端。

# TIME:这个没啥用

# CMD:这个进程执行了什么指令

## 安装一个pstree

# 注意:我们安装的软件的名字和使用的时候的指令名称不一定是一样的,比如lrzsz,使用的时候是rz\sz上传下载。

# 想查看我们想要使用的某个指令,是哪个软件包提供的,可以输入yum provides 指令名称,比如yum provides pstree

[root@localhost ~]# yum provides pstree

[root@localhost ~]# yum install psmisc -y

[root@localhost ~]# pstree

# 可以看到,系统的第一个进程是systemd,由他创建起来了好多其他的进程,可以看到从属关系:

systemd─┬─NetworkManager─┬─dhclient

│ └─2*[{NetworkManager}]

├─VGAuthService

├─abrt-watch-log

├─abrtd

├─agetty

├─auditd───{auditd}

├─chronyd

├─crond

├─dbus-daemon───{dbus-daemon}

├─master─┬─pickup

│ └─qmgr

├─polkitd───6*[{polkitd}]

├─rsyslogd───2*[{rsyslogd}]

├─sshd─┬─sshd───bash───pstree

│ └─sshd───bash

├─systemd-journal

├─systemd-logind

├─systemd-udevd

├─tuned───4*[{tuned}]

└─vmtoolsd───{vmtoolsd}

#关闭进程

kill pid号

例子1: kill 7851 #使用进程id号,来终止进程

kill -9 pid号 #慎用!!!

#批量关闭进程,pkill全称program kill

pkill CMD命令名称

例子1: pkill sleep #使用进程的命令名称,来终止进程,会中止所有CMD执行着sleep的进程的。

pkill -9 sleep

# kill -9,这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。

# 如果想把某个远程连接踢下线,可以杀掉显示pts的远程连接进程的父进程,如下图image-202307101236178602.17.2 查看计算机硬件信息2-1 查看cpu代码语言:javascript复制#查看cpu

lscpu2-2 查看内存命令代码语言:javascript复制#查看内存命令

free -h2-3 查看硬盘命令代码语言:javascript复制#查看硬盘命令

df -h #h表示人类可读

[root@localhost ~]# df -h

文件系统 容量 已用 可用 已用% 挂载点

devtmpfs 980M 0 980M 0% /dev

tmpfs 991M 0 991M 0% /dev/shm

tmpfs 991M 9.5M 981M 1% /run

tmpfs 991M 0 991M 0% /sys/fs/cgroup

/dev/sda1 100G 2.2G 98G 3% /

tmpfs 199M 0 199M 0% /run/user/02-4 查看计算机的cpu,内存,进程等信息代码语言:javascript复制# 含有tmp的表示是内存给硬盘的空间,默认会给1半内存空间,把内存当作硬盘使用,这个我们不用管。

# 查看计算机的cpu,内存,进程等信息(和windows的任务管理器很像)

top

top - 08:34:27 up 20 min, 1 user, load average: 0.00, 0.01, 0.05

Tasks: 89 total, 2 running, 87 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

KiB Mem : 2027872 total, 1779000 free, 135668 used, 113204 buff/cache

KiB Swap: 0 total, 0 free, 0 used. 1755332 avail Mem

# 下面是进程信息,值得看的是每个进程占用的%CPU %MEM,CPU使用率和内存使用率

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

1 root 20 0 128556 7132 4144 S 0.0 0.4 0:01.27 systemd

2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd

4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H

# 08:34:27 up 20 min:表示08:34:27是系统当前时间,开机了20分钟,如果看到3:20,表示开了3小时20分钟,看到10 days表示10天了,linux很稳定耐用,开机好多年都稳定运行着,不会卡顿。

# 1 user :表示当前只有一个用户在使用

# load average: 0.00, 0.01, 0.05:平均负荷,指的是CPU的负载高不高,CPU负载高,那么平均负荷就比较大,如果这几个值很大的时候,服务器会变得很卡。如果发现服务器卡了,就是异常情况,就可以看看这个数据。这三个值表示:1分钟、5分钟、15分钟的负载情况,load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

# Tasks: 89 total, 2 running, 87 sleeping, 0 stopped, 0 zombie:表示进程数量,总共89个,2个正在运行,87个在睡眠状态,当我们的CPU是1核的时候,是在所有进程之间来回切换执行,所以只有一个或者切换速度很快的时候显示2个。 0 stopped表示停止的进程,但是这里一般都是0,以为进程结束之后会自动从内存中释放。0 zombie表示僵尸进程数量,僵尸进程是杀不死的,就是由于各种原因,系统无法自动释放的进程,僵尸进程也消耗系统资源,一般kill掉它的父进程可以杀掉僵尸进程,或者kill -来杀掉。但是kill -9要慎用!!!它也容易产生僵尸进程,kill会将进程运行中的信息保存下来,进程不会出问题,kill -9不会保存,强制结束进程的运行,容易出现僵尸进程。

# 按数字1,可以查看cpu数量

# %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,关于CPU我们其他参数不用看,就看这个100.0 id,id是idle的简写,表示100%空闲,因为我们现在

## CPU使用率很低,所以显示了100%空闲。我们只关注这个参数即可,看一下CPU忙不忙就行。

# KiB Mem : 2027872 total, 1779000 free, 135668 used, 113204 buff/cache,是内存(英文:memroy)的描述信息,total表示总内存量,free表示可用剩余量,userd表示已经使用的量,buff/cache表示用作缓存,是和磁盘进行读写时的缓存区域,这个参数不用管。

# KiB Swap: 0 total, 0 free, 0 used. 1755332 avail Mem :

## Swap表示虚拟内存,这是硬盘分配给内存的一部分空间,为了当内存不足时,临时将硬盘当作内存使用。这个数值是可以自行调整的。一般自动就分配好了,所以我们不用管,实在是内存不够用的时候再加大这个虚拟内存。我现在看的是虚拟机上的虚拟内存,虚拟机不设置虚拟内存,所以显示为0。swap虚拟内存在windows也内看到:

image-20230710125835552