linux ps 查看进程命令

2023-05-16

linux 中ps命令是Process Status的缩写。ps命令可以列出系统中当前运行的进程,所列出的进程是执行ps命令这个时刻正在运行的进程。

如果要动态显示进程信息,需要使用top命令。


通过ps命令,可以确定哪些进程正在运行和运行状态、进程是否结束、进程是否僵死,哪些进程占用过多资源等。


要杀死进程,使用kill命令,例:kill 12345 (12345为进程的pid)


linux进程有5种状态

1.运行(正在运行或在运行队列中等待)

2.中断(休眠中,受阻,或等待某个条件的形成或接受到信号)

3.不可中断(收到信号不唤醒和不可运行,进程必须等待直到有中断发生)

4.僵死(进程已终止,但进程描述符存在,直到父进程调用wait4()系统调用后释放)

5.停止(进程受到SIGSTOP,SIGSTP,SIGTIN,SIGTOU信号后停止运行)


ps 5种进程状态的标识码如下:

R 运行 runnable(on run queue)

S 中断 sleeping

D 不可中断 uninterruptible sleep (usually IO)

Z 僵死 a defunct("zombie") process

T 停止 traced or stopped


命令参数

a 显示所有进程

-a 显示同一终端下的所有程序

-A 显示所有进程

c 显示进程的真实名称

-N 反向选择

-e 等于“-A”

e 显示环境变量

f 显示程序间的关系

-H 显示树状结构

r 显示当前终端的进程

T 显示当前终端的所有程序

u 指定用户的所有进程

-au 显示较详细的资讯

-aux 显示所有包含其他使用者的进程

-C<命令> 列出指定命令的状况

–lines<行数> 每页显示的行数

–width<字符数> 每页显示的字符数

–help 显示帮助信息

–version 显示版本显示


输出列的含义

F 代表这个程序的旗标 (flag), 4 代表使用者为 super user

S 代表这个程序的状态 (STAT),关于各 STAT 的意义将在内文介绍

UID 程序被该 UID 所拥有

PID 进程的ID

PPID 则是其上级父程序的ID

C CPU 使用的资源百分比

PRI 这个是 Priority (优先执行序) 的缩写,详细后面介绍

NI 这个是 Nice 值,在下一小节我们会持续介绍

ADDR 这个是 kernel function,指出该程序在内存的那个部分。如果是个 running的程序,一般就是 “-“

SZ 使用掉的内存大小

WCHAN 目前这个程序是否正在运作当中,若为 - 表示正在运作

TTY 登入者的终端机位置

TIME 使用掉的 CPU 时间。

CMD 所下达的指令


例子:

1.显示所有进程信息

fdipzone@ubuntu:~$ ps -A
  PID TTY          TIME CMD
    1 ?        00:00:01 init
    2 ?        00:00:00 kthreadd
    3 ?        00:00:00 ksoftirqd/0
    4 ?        00:00:00 kworker/0:0
    5 ?        00:00:00 kworker/u:0
    6 ?        00:00:00 migration/0
    7 ?        00:00:00 migration/1
    8 ?        00:00:00 kworker/1:0
    9 ?        00:00:00 ksoftirqd/1
   10 ?        00:00:00 kworker/0:1
...省略部分结果

2.显示指定用户进程

fdipzone@ubuntu:~$ ps -u fdipzone
  PID TTY          TIME CMD
 1502 ?        00:00:00 gnome-keyring-d
 1521 ?        00:00:00 gnome-session
 1551 ?        00:00:00 ibus-daemon
 1555 ?        00:00:00 ssh-agent
 1558 ?        00:00:00 dbus-launch
 1559 ?        00:00:00 ibus-gconf
 1561 ?        00:00:00 python
 1563 ?        00:00:00 dbus-daemon
 1564 ?        00:00:00 ibus-x11
 1569 ?        00:00:00 gconfd-2
...省略部分结果

3.显示所有进程,并显示命令行

fdipzone@ubuntu:~$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 22:53 ?        00:00:01 /sbin/init
root         2     0  0 22:53 ?        00:00:00 [kthreadd]
root         3     2  0 22:53 ?        00:00:00 [ksoftirqd/0]
root         4     2  0 22:53 ?        00:00:00 [kworker/0:0]
root         5     2  0 22:53 ?        00:00:00 [kworker/u:0]
root         6     2  0 22:53 ?        00:00:00 [migration/0]
root         7     2  0 22:53 ?        00:00:00 [migration/1]
root         8     2  0 22:53 ?        00:00:00 [kworker/1:0]
root         9     2  0 22:53 ?        00:00:00 [ksoftirqd/1]
root        10     2  0 22:53 ?        00:00:00 [kworker/0:1]
...省略部分结果

4.与grep命令组合使用,查找指定的进程

fdipzone@ubuntu:~$ ps -ef | grep apache
root      2032     1  0 22:56 ?        00:00:01 /usr/sbin/apache2 -k start
www-data  2318  2032  0 22:58 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2319  2032  0 22:58 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2320  2032  0 22:58 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2321  2032  0 22:58 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2322  2032  0 22:58 ?        00:00:00 /usr/sbin/apache2 -k start
www-data  2323  2032  0 22:58 ?        00:00:00 /usr/sbin/apache2 -k start
...省略部分结果

5.显示当前登入用户的bash相关的进程

fdipzone@ubuntu:~$ ps -l
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
0 S  1000  1805  1798  0  80   0 -  7011 wait   pts/0    00:00:00 bash
0 R  1000  2561  1805  0  80   0 -  3377 -      pts/0    00:00:00 ps

6.列出所有用户启动的进程

fdipzone@ubuntu:~$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.1  0.2  24136  2188 ?        Ss   22:53   0:01 /sbin/init
root         2  0.0  0.0      0     0 ?        S    22:53   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    22:53   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S    22:53   0:00 [kworker/u:0]
root         6  0.0  0.0      0     0 ?        S    22:53   0:00 [migration/0]
root         7  0.0  0.0      0     0 ?        S    22:53   0:00 [migration/1]
root         8  0.0  0.0      0     0 ?        S    22:53   0:00 [kworker/1:0]
root         9  0.0  0.0      0     0 ?        S    22:53   0:00 [ksoftirqd/1]
root        10  0.0  0.0      0     0 ?        S    22:53   0:00 [kworker/0:1]
root        11  0.0  0.0      0     0 ?        S<   22:53   0:00 [cpuset]
root        12  0.0  0.0      0     0 ?        S<   22:53   0:00 [khelper]
...省略部分结果

a:显示其他用户启动的进程

x:查看系统中属于自己的进程

u:启动这个进程的用户和启动时间



本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux ps 查看进程命令 的相关文章

  • 我们如何在使用循环时调用 ansible playbook 中的变量

    我有两个文件 其中这些文件包含server names and server IP s 我想更改 替换一些特定的server names and IP addressees根据要求在两个文件中 这与这篇文章 因为它被要求开设一个新职位 ht
  • 段错误...关于你好世界

    这段代码非常简单 但我在 x86 64 Linux 系统上遇到了段错误 这让我很烦恼 刚开始接触asm 请耐心等待 与 NASM 组装nasm f elf64 test asm 与连接ld o test test o SECTION tex
  • Qt 嵌入式触摸屏 QMouseEvents 在收到 MouseButtonRelease 之前未收到

    我在带有触摸屏的小型 ARM 嵌入式 Linux 设备上使用 Qt 4 8 3 我的触摸屏配置了 tslib 并对其进行了校准 因此 etc 中有一个 pointcal 文件 我的触摸事件的位置工作得很好 但无论如何我都会在鼠标按下或鼠标释
  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • Apache 端口转发 80 到 8080 并访问 Apache (80) 中托管的应用程序,即 phpMyadmin 和 Tomcat (8080)

    我想访问托管在 tomcat 服务器 8080 中的应用程序 myapp 当前可以通过以下方式访问http example com 8080 myapp http example com 8080 myapp in http example
  • 选择fasta文件中氨基酸超过300个且“C”出现至少4次的序列

    我有一个包含蛋白质序列的 fasta 文件 我想选择超过 300 个氨基酸且半胱氨酸 C 氨基酸出现超过 4 次的序列 我使用此命令来选择具有超过 300 个 aa 的序列 cat 72hDOWN fasta fasta bioawk c
  • 如何在Linux上用C/C++编写Web服务器[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在考虑在 Linux 平台上开发一个小型 阅读 初级 Web 服务器 但我不知道从哪里开始 我希望它能够做的是 监听特定端口 接受
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • 链接错误:命令行中缺少 DSO

    我对 Linux 使用 Ubuntu 14 04 LTS 64 位 相当陌生 来自 Windows 并且正在尝试移植我现有的 CUDA 项目 当通过链接时 usr local cuda bin nvcc arch compute 30 co
  • Linux shell 从用户输入中获取设备 ID

    我正在为一个程序编写安装脚本 该程序需要在其配置中使用 lsusb 的设备 ID 因此我正在考虑执行以下操作 usblist lsusb put the list into a array for each line use the arr
  • 如何并行执行4个shell脚本,我不能使用GNU并行?

    我有4个shell脚本dog sh bird sh cow sh和fox sh 每个文件使用 xargs 并行执行 4 个 wget 来派生一个单独的进程 现在我希望这些脚本本身能够并行执行 由于某些我不知道的可移植性原因 我无法使用 GN
  • /sys/device/ 和 dmidecode 报告的不同 CPU 缓存大小

    我正在尝试获取系统中不同缓存级别的大小 我尝试了两种技术 a 使用 sys device 中的信息 这是输出 cat sys devices system cpu cpu0 cache index1 size 32K cat sys dev
  • 如何在线程创建和退出时调用函数?

    include
  • 如何在不使用 IDE 的情况下在 Linux 上运行 Java 项目

    我是 Java 新手 基本上 我开发了一个java项目 其中包含Eclipse中的多个Java包 该项目在我安装了 redhat Linux 的桌面上运行正常 然而 我需要在一个更强大的没有安装X11的Linux服务器 redhat ent
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • ioctl 命令的用户权限检查

    我正在实现 char 驱动程序 Linux 并且我的驱动程序中有某些 IOCTL 命令仅需要由 ADMIN 执行 我的问题是如何在 ioctl 命令实现下检查用户权限并限制非特权用户访问 IOCTL 您可以使用bool capable in
  • SSH,运行进程然后忽略输出

    我有一个命令可以使用 SSH 并在 SSH 后运行脚本 该脚本运行一个二进制文件 脚本完成后 我可以输入任意键 本地终端将恢复到正常状态 但是 由于该进程仍在我通过 SSH 连接的计算机中运行 因此任何时候它都会登录到stdout我在本地终
  • ALSA:snd_pcm_writei 调用时缓冲区不足

    当运行我最近从灰烬中带回来的旧程序时 我遇到了缓冲区不足的情况 该程序将原始声音文件完全加载到内存中 2100 字节长 525 帧 并准备 ALSA 进行输出 44 1khz 2 通道 有符号 16 位 if err snd pcm set
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可

随机推荐