操作系统都有进程的概念,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]
...
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]
...
常用选项:
-e
:显示所有进程。-f
:全格式显示。-l
:长格式显示。-a
:显示终端上的所有进程,包括其他用户的进程。-u
:显示进程的详细状态。-x
:显示没有控制终端的进程。-T
:显示当前线程的层次结构。-o
:自定义输出格式,其中 <format>
可以是如下的格式选项之一或组合:%cpu、%mem、%tty、%time、%cmd等。例如,ps -o pid,tty,cmd 将只显示进程ID、终端类型和执行的命令行。--sort
:按指定的字段对输出进行排序。head
:仅显示输出中的前N行,其中N是用户指定的数字。用法示例:
ps
:默认情况下,ps
命令将显示当前用户的进程。ps -e
:显示所有进程。ps -A
:显示所有进程,与 ps -e
相同。ps -a
:显示终端上的所有进程,包括其他用户的进程。ps aux
:显示所有进程的详细状态。ps -ef | grep <pattern>
:使用 grep
命令过滤特定模式的进程。ps aux --sort=-%cpu
:按CPU使用率降序显示进程。ps aux --sort=-%mem
:按内存使用率降序显示进程。ps -u <username>
:显示指定用户的进程。ps -o args=
:显示完整的命令行参数。ps -T
:显示当前线程的层次结构。ps -o pid,tty,cmd
:自定义输出格式,只显示进程ID、终端类型和执行的命令行。ps -p <pid>
:显示指定进程ID的详细信息。ps -f
:全格式显示进程信息。ps -l
:长格式显示进程信息。ps -o stat,tid,comm,lwp,pri,ni,stime,etime,cpu,rss,pcpu,pmem,args --sort=-tid --sort=-pcpu
:这条命令提供了关于进程的详细状态信息,包括线程ID、命令名称、本地和远程信号时间、CPU和内存使用情况等。ps
命令的输出,以满足特定的需求。例如,ps aux --sort=-%cpu | head
命令将按CPU使用率降序显示进程,并只显示前10个结果。ps -u <用户名>
,例如 ps -u root
。如果你还想查看该用户所运行的所有子进程,可以使用 ps -e -o user,pid,cmd | grep <用户名>
命令。例如,要查找所有以 "root" 用户运行的进程,你可以输入 ps -e -o user,pid,cmd | grep root
。这将列出所有由 root 用户启动的进程及其命令行。ps -p <pid>
命令,其中 <pid>
是你要查找的进程的 ID号。例如,要查找 PID 为 1234 的进程,你可以输入 ps -p 1234
。这会显示出该进程的详细信息,包括它的状态、CPU使用率、内存使用率等。ps -T -p <pid>
命令,其中 <pid>
是你要查找的进程的ID号。例如,要查找 PID 为 1234 的进程的所有线程,你可以输入 ps -T -p 1234
。这会显示出该进程的所有线程及其相关信息。uptime
命令。这将显示出系统已经运行了多长时间、有多少用户在线、以及系统负载的平均值等信息。如果你还想查看更详细的系统负载信息,可以使用 top
或 htop
命令。这些命令可以实时地显示出系统的CPU使用率、内存使用率、运行的进程等信息,并且还可以进行交互操作。kill pid号
示例:
bash kill 7851 # 使用进程id号,来终止进程
kill -9 pid号 # 慎用
批量关闭进程:
bashpkill CMD命令名称
pkill sleep # 使用进程的命令名称,来终止进程,会中止所有CMD执行着 sleep 的进程的。
pkill -9 sleep
kill -9,这个强大和危险的命令迫使进程在运行时突然终止,进程在结束后不能自我清理。危害是导致系统资源无法正常释放,一般不推荐使用,除非其他办法都无效。
如果想把某个远程连接踢下线,可以杀掉显示pts的远程连接进程的父进程。
lscpu
:查看cpufree
:查看内存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 id
,id
是 idle
的简写,表示 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。本文作者:@Rrx
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!