2024-03-21
Linux
00
请注意,本文编写于 107 天前,最后修改于 100 天前,其中某些信息可能已经过时。

目录

查看和关闭进程
查看进程
关闭进程
查看计算机硬件信息

查看和关闭进程

操作系统都有进程的概念,windows 在任务管理器中查看,linux 用 ps 指令来查看。

程序:安装到你电脑或者手机上的程序文件。

进程:正在运行的程序。

查看进程

bash
显示所有进程的完整格式 ps -ef [root@localhost /]# ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 16:16 ? 00:00:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 22 root 2 0 0 16:16 ? 00:00:00 [kthreadd] root 4 2 0 16:16 ? 00:00:00 [kworker/0:0H] root 6 2 0 16:16 ? 00:00:00 [ksoftirqd/0] root 7 2 0 16:16 ? 00:00:00 [migration/0] root 8 2 0 16:16 ? 00:00:00 [rcu_bh] root 9 2 0 16:16 ? 00:00:00 [rcu_sched] root 10 2 0 16:16 ? 00:00:00 [lru-add-drain] root 11 2 0 16:16 ? 00:00:00 [watchdog/0] root 12 2 0 16:16 ? 00:00:00 [watchdog/1] root 13 2 0 16:16 ? 00:00:00 [migration/1] root 14 2 0 16:16 ? 00:00:00 [ksoftirqd/1] root 16 2 0 16:16 ? 00:00:00 [kworker/1:0H] root 18 2 0 16:16 ? 00:00:00 [kdevtmpfs] root 19 2 0 16:16 ? 00:00:00 [netns] root 20 2 0 16:16 ? 00:00:00 [khungtaskd] root 21 2 0 16:16 ? 00:00:00 [writeback] root 22 2 0 16:16 ? 00:00:00 [kintegrityd] root 23 2 0 16:16 ? 00:00:00 [bioset] root 24 2 0 16:16 ? 00:00:00 [bioset] root 25 2 0 16:16 ? 00:00:00 [bioset] root 26 2 0 16:16 ? 00:00:00 [kblockd] root 27 2 0 16:16 ? 00:00:00 [md] ...
  • UID :用户ID,表示运行该进程的用户。
  • PID :进程ID,每个进程都有一个唯一的ID。
  • PPID :父进程ID,表示创建该进程的父进程的ID。
  • C :CPU使用率,表示该进程占用的CPU百分比。
  • STIME :全称start time,进程的启动时间。
  • TTY :终端类型,如果进程与某个终端关联,则显示该终端的名称;否则显示"?"。
  • TIME :该进程实际使用CPU的时间,通常以分钟或小时为单位。
  • CMD :启动进程的命令名称或命令行。
bash
显示所有进程的详细状态 ps aux [root@localhost /]# ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 125868 4352 ? Ss 16:16 0:03 /usr/lib/systemd/systemd --switched-root --system --deserial root 2 0.0 0.0 0 0 ? S 16:16 0:00 [kthreadd] root 4 0.0 0.0 0 0 ? S< 16:16 0:00 [kworker/0:0H] root 6 0.0 0.0 0 0 ? S 16:16 0:00 [ksoftirqd/0] root 7 0.0 0.0 0 0 ? S 16:16 0:00 [migration/0] root 8 0.0 0.0 0 0 ? S 16:16 0:00 [rcu_bh] root 9 0.0 0.0 0 0 ? S 16:16 0:00 [rcu_sched] root 10 0.0 0.0 0 0 ? S< 16:16 0:00 [lru-add-drain] root 11 0.0 0.0 0 0 ? S 16:16 0:00 [watchdog/0] root 12 0.0 0.0 0 0 ? S 16:16 0:00 [watchdog/1] root 13 0.0 0.0 0 0 ? S 16:16 0:00 [migration/1] root 14 0.0 0.0 0 0 ? S 16:16 0:00 [ksoftirqd/1] root 16 0.0 0.0 0 0 ? S< 16:16 0:00 [kworker/1:0H] root 18 0.0 0.0 0 0 ? S 16:16 0:00 [kdevtmpfs] root 19 0.0 0.0 0 0 ? S< 16:16 0:00 [netns] root 20 0.0 0.0 0 0 ? S 16:16 0:00 [khungtaskd] root 21 0.0 0.0 0 0 ? S< 16:16 0:00 [writeback] root 22 0.0 0.0 0 0 ? S< 16:16 0:00 [kintegrityd] root 23 0.0 0.0 0 0 ? S< 16:16 0:00 [bioset] root 24 0.0 0.0 0 0 ? S< 16:16 0:00 [bioset] ...
  • USER : 进程的拥有者。这通常是运行该进程的用户帐户的名称。
  • PID : 进程ID。每个进程都有一个唯一的ID,用于标识该进程。
  • %CPU : 该进程占用的CPU使用率百分比。
  • %MEM : 该进程占用的物理内存使用率百分比。
  • VSZ : 虚拟内存大小,单位是KB。这表示进程使用的虚拟内存量。
  • RSS : 常驻集大小,单位是KB。这表示进程在物理内存中占用的固定大小。
  • TTY : 终端类型。如果进程没有与任何终端关联,则显示为"?"。
  • STAT : 进程状态。这描述了进程的当前状态,例如运行中、休眠等。
  • START : 进程启动的时间。
  • TIME : 该进程实际使用CPU的时间,单位是小时:分钟:秒。
  • COMMAND : 启动进程的命令名称或命令行。

常用选项:

  • -e :显示所有进程。
  • -f :全格式显示。
  • -l :长格式显示。
  • -a :显示终端上的所有进程,包括其他用户的进程。
  • -u :显示进程的详细状态。
  • -x :显示没有控制终端的进程。
  • -T :显示当前线程的层次结构。
  • -o :自定义输出格式,其中 <format> 可以是如下的格式选项之一或组合:%cpu、%mem、%tty、%time、%cmd等。例如,ps -o pid,tty,cmd 将只显示进程ID、终端类型和执行的命令行。
  • --sort :按指定的字段对输出进行排序。
  • head :仅显示输出中的前N行,其中N是用户指定的数字。

用法示例:

  1. 显示所有进程:
  • ps :默认情况下,ps 命令将显示当前用户的进程。
  • ps -e :显示所有进程。
  • ps -A :显示所有进程,与 ps -e 相同。
  • ps -a :显示终端上的所有进程,包括其他用户的进程。
  1. 按进程状态筛选:
  • ps aux :显示所有进程的详细状态。
  • ps -ef | grep <pattern> :使用 grep 命令过滤特定模式的进程。
  1. 按CPU或内存使用筛选:
  • ps aux --sort=-%cpu :按CPU使用率降序显示进程。
  • ps aux --sort=-%mem :按内存使用率降序显示进程。
  1. 显示特定用户的进程:
  • ps -u <username> :显示指定用户的进程。
  1. 显示命令行参数:
  • ps -o args= :显示完整的命令行参数。
  1. 显示线程信息:
  • ps -T :显示当前线程的层次结构。
  1. 其他选项:
  • ps -o pid,tty,cmd :自定义输出格式,只显示进程ID、终端类型和执行的命令行。
  • ps -p <pid> :显示指定进程ID的详细信息。
  • ps -f :全格式显示进程信息。
  • ps -l:长格式显示进程信息。
  1. 查看更详细的状态信息:
  • ps -o stat,tid,comm,lwp,pri,ni,stime,etime,cpu,rss,pcpu,pmem,args --sort=-tid --sort=-pcpu :这条命令提供了关于进程的详细状态信息,包括线程ID、命令名称、本地和远程信号时间、CPU和内存使用情况等。
  1. 组合使用:
  • 可以通过组合不同的选项和参数来定制 ps 命令的输出,以满足特定的需求。例如,ps aux --sort=-%cpu | head 命令将按CPU使用率降序显示进程,并只显示前10个结果。
  1. 查看特定用户的进程:
  • 如果你想查看特定用户的所有进程,可以使用以下命令: ps -u <用户名> ,例如 ps -u root。如果你还想查看该用户所运行的所有子进程,可以使用 ps -e -o user,pid,cmd | grep <用户名> 命令。例如,要查找所有以 "root" 用户运行的进程,你可以输入 ps -e -o user,pid,cmd | grep root。这将列出所有由 root 用户启动的进程及其命令行。
  1. 查看特定进程:
  • 如果你想查看特定进程的详细信息,可以使用 ps -p <pid> 命令,其中 <pid> 是你要查找的进程的 ID号。例如,要查找 PID 为 1234 的进程,你可以输入 ps -p 1234。这会显示出该进程的详细信息,包括它的状态、CPU使用率、内存使用率等。
  1. 查看线程信息:
  • 如果你想查看某个进程的线程信息,可以使用 ps -T -p <pid> 命令,其中 <pid> 是你要查找的进程的ID号。例如,要查找 PID 为 1234 的进程的所有线程,你可以输入 ps -T -p 1234。这会显示出该进程的所有线程及其相关信息。
  1. 查看系统负载:
  • 如果你想查看系统的负载情况,可以使用 uptime 命令。这将显示出系统已经运行了多长时间、有多少用户在线、以及系统负载的平均值等信息。如果你还想查看更详细的系统负载信息,可以使用 tophtop 命令。这些命令可以实时地显示出系统的CPU使用率、内存使用率、运行的进程等信息,并且还可以进行交互操作。

关闭进程

kill pid号

示例:

bash
kill 7851 # 使用进程id号,来终止进程 kill -9 pid号 # 慎用

批量关闭进程:

bash
pkill CMD命令名称 pkill sleep # 使用进程的命令名称,来终止进程,会中止所有CMD执行着 sleep 的进程的。 pkill -9 sleep

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

如果想把某个远程连接踢下线,可以杀掉显示pts的远程连接进程的父进程。

查看计算机硬件信息

  • lscpu :查看cpu
  • free :查看内存
  • df -h :查看硬盘

-h 表示人类可读。

bash
[root@localhost /]# df 文件系统 1K-块 已用 可用 已用% 挂载点 devtmpfs 2002356 0 2002356 0% /dev tmpfs 2013076 0 2013076 0% /dev/shm tmpfs 2013076 11848 2001228 1% /run tmpfs 2013076 0 2013076 0% /sys/fs/cgroup /dev/sda1 20960256 4479704 16480552 22% / tmpfs 402616 0 402616 0% /run/user/0 [root@localhost /]# df -h 文件系统 容量 已用 可用 已用% 挂载点 devtmpfs 2.0G 0 2.0G 0% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 2.0G 12M 2.0G 1% /run tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/sda1 20G 4.3G 16G 22% / tmpfs 394M 0 394M 0% /run/user/0

含有tmp的表示是内存给硬盘的空间,默认会给一半内存空间,把内存当作硬盘使用,这个我们不用管。

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

bash
[root@localhost /]# top top - 21:05:47 up 4:49, 1 user, load average: 0.05, 0.04, 0.05 Tasks: 102 total, 1 running, 101 sleeping, 0 stopped, 0 zombie %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 98.3 id, 1.7 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 4026156 total, 2921832 free, 421424 used, 682900 buff/cache KiB Swap: 0 total, 0 free, 0 used. 3303324 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 30 root 20 0 0 0 0 S 0.3 0.0 0:08.20 kworker/0:1 5932 root 20 0 161988 2236 1556 R 0.3 0.1 0:00.03 top 1 root 20 0 125868 4352 2592 S 0.0 0.1 0:04.17 systemd 2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd 4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 6 root 20 0 0 0 0 S 0.0 0.0 0:00.07 ksoftirqd/0 7 root rt 0 0 0 0 S 0.0 0.0 0:00.12 migration/0 8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 9 root 20 0 0 0 0 S 0.0 0.0 0:00.91 rcu_sched 10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain 11 root rt 0 0 0 0 S 0.0 0.0 0:00.08 watchdog/0 12 root rt 0 0 0 0 S 0.0 0.0 0:00.07 watchdog/1 13 root rt 0 0 0 0 S 0.0 0.0 0:00.06 migration/1 14 root 20 0 0 0 0 S 0.0 0.0 0:00.18 ksoftirqd/1 16 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/1:0H 18 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kdevtmpfs 19 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 netns 20 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khungtaskd 21 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 writeback ...

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

  • - 21:05:47 up 4:49 :表示 21:05:47 是系统当前时间,4:49 是已经运行了4小时49分钟。linux很稳定耐用,开机好多年都稳定运行着,不会卡顿。
  • 1 user :表示当前只有一个用户在使用
  • load average: 0.05, 0.04, 0.05 :平均负荷,指的是CPU的负载高不高,CPU负载高,那么平均负荷就比较大,如果这几个值很大的时候,服务器会变得很卡。如果发现服务器卡了,就是异常情况,就可以看看这个数据。这三个值表示:1分钟、5分钟、15分钟的负载情况,load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。
  • Tasks: 102 total, 1 running, 101 sleeping, 0 stopped, 0 zombie :表示进程数量,总共102个,21个正在运行,101个在睡眠状态,当我们的CPU是1核的时候,是在所有进程之间来回切换执行,所以只有一个或者切换速度很快的时候显示2个。 0 stopped 表示停止的进程,但是这里一般都是0,以为进程结束之后会自动从内存中释放。0 zombie 表示僵尸进程数量,僵尸进程是杀不死的,就是由于各种原因,系统无法自动释放的进程,僵尸进程也消耗系统资源,一般 kill 掉它的父进程可以杀掉僵尸进程,或者 kill -9来杀掉。但是 kill -9 要慎用!它也容易产生僵尸进程,kill 会将进程运行中的信息保存下来,进程不会出问题,kill -9 不会保存,强制结束进程的运行,容易出现僵尸进程。
  • %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 98.3 id, 1.7 wa, 0.0 hi, 0.0 si, 0.0 st :关于CPU我们其他参数不用看,就看这个 98.3 idididle 的简写,表示 98.3% 空闲,因为我们现在 CPU使用率很低,所以显示了 98.3% 空闲。我们只关注这个参数即可,看一下CPU忙不忙就行。
  • KiB Mem : 4026156 total, 2921832 free, 421424 used, 682900 buff/cache :是内存(英文:memroy)的描述信息,total 表示总内存量,free 表示可用剩余量,userd 表示已经使用的量,buff/cache 表示用作缓存,是和磁盘进行读写时的缓存区域,这个参数不用管。
  • KiB Swap: 0 total, 0 free, 0 used. 3303324 avail Mem :Swap 表示虚拟内存,这是硬盘分配给内存的一部分空间,为了当内存不足时,临时将硬盘当作内存使用。这个数值是可以自行调整的。一般自动就分配好了,所以我们不用管,实在是内存不够用的时候再加大这个虚拟内存。现在看的是虚拟机上的虚拟内存,虚拟机不设置虚拟内存,所以显示为0。
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:@Rrx

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!