linux ps 命令

(http://blog.csdn.net/lsbhjshyn/article/details/18549869)


(http://os.51cto.com/art/201312/421280.htm)

ps:要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到的.

ps命令最常用的还是用于监控后台进程的工作情况,因为后台进程是不和屏幕键盘这些标准输入/输出设备进行通信的,所以如果需要检测其情况,便可以使用ps命令了.

注意:ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。

[root@lsbhjshyn ~]# man ps


通过man ps可以获得ps的详细参数用法。下面可以通过示例看看效果:

[root@lsbhjshyn ~]# ps aux

[root@ lsbhjshyn ~]# ps -lA

[root@ lsbhjshyn ~]# ps axjf

参数:

-A :所有的进程均显示出来,与 -e 具有同样的效用;

-a : 显示现行终端机下的所有进程,包括其他用户的进程;

-u :以用户为主的进程状态 ;

x :通常与 a 这个参数一起使用,可列出较完整信息。

输出格式规划:

l :较长、较详细的将该 PID 的的信息列出;

j :工作的格式 (jobs format)

-f :做一个更为完整的输出。

特别说明:

由于 ps 能够支持的系统类型相当的多,所以他的参数多的离谱!

而且有没有加上 - 差很多!详细的用法应该要参考 man ps 喔!

例1:将目前属于您自己这次登入的 PID 与相关信息列示出来


# 各相关信息的意义为:

# F 代表这个程序的旗标 (flag), 4 代表使用者为 superuser;

# S 代表这个程序的状态 (STAT);

#UID 代表执行者身份

# PID 进程的ID号!底下的 PPID 则父进程的ID;

# C CPU 使用的资源百分比

# PRI指进程的执行优先权(Priority的简写),其值越小越早被执行;

# NI 这个进程的nice值,其表示进程可被执行的优先级的修正数值。

# ADDR 这个是内核函数,指出该程序在内存的那个部分。如果是个执行

# 的程序,一般就是『 - 』

# SZ 使用掉的内存大小;

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

# TTY 登入者的终端机位置啰;

# TIME 使用掉的 CPU 时间。

# CMD 所下达的指令名称

例2:列出目前所有的正在内存当中的程序


• USER:该进程属于那个使用者账号的?

• PID :该进程的进程ID号。

• %CPU:该进程使用掉的 CPU 资源百分比;

• %MEM:该进程所占用的物理内存百分比;

• VSZ :该进程使用掉的虚拟内存量 (Kbytes)

• RSS :该进程占用的固定的内存量 (Kbytes)

• TTY :该进程是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。

• STAT:该程序目前的状态,主要的状态有:

   R :该程序目前正在运作,或者是可被运作;

   S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。

   T :该程序目前正在侦测或者是停止了;

   Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态

• START:该进程被触发启动的时间;

• TIME :该进程实际使用 CPU 运作的时间。

• COMMAND:该程序的实际指令为什么?

例3:以例一的显示内容,显示出所有的程序


例4:列出类似程序树的程序显示


例5:找出与 cron 与 syslog 这两个服务有关的 PID 号码



============================================================


Linux ps命令

在Linux下ps命令是用于查看系统上运行的进程的最基本的命令之一。它提供了当前进程的同时,如用户ID,CPU使用率,内存使用率,命令名称等,它不显示实时数据,如top或htop命令的详细信息。但是,即使是功能和输出简单,但它仍然是一个必用的过程管理/监控工具,每一个Linux新手应该知道这一点,好好学习。在这篇文章中,我们将使用ps命令以不同的方式来查看进程、筛选和排序它们,以加强基础部分。

语法注意:

ps命令带有2种不一样的风格,分别是BSD和UNIX。新用户经常会混淆和错误地解释这两种风格。所以要弄清楚他们,继续操作之前这里是一些基本的信息。

注意:"ps aux"和"ps -aux"不相同。例如"-u"用来显示该用户的进程。但是"u"则是显示详细的信息。

BSD风格:在BSD风格的语法选项前不带连字符。

 
 
  1. ps aux 

UNIX/LINUX的风格:在linux风格的语法选项前面有一个破折号如常。…

 
 
  1. ps -ef 

混合使用两种Linux系统上的语法风格是好事儿。例如“ps ax -f”。但在这篇文章中,我们将主要集中在UNIX风格的语法。

如何使用ps命令呢?

1、显示所有进程:

下面的命令将列出所有的进程:

 
 
  1. $ ps ax 
  2. $ ps -ef 

加上管道输出给less,来滚动显示

"u"或者"-f"参数来显示所有进程的详细信息

 
 
  1. $ ps aux 
  2. $ ps -ef -f 

注意:为什么用户列不显示我的用户名,但显示其他用户,如root、www等,对于所有的用户名(包括你)如果长度大于8个字符,然后ps将只显示UID,而不是用户名。

2、根据用户显示进程:

由进程的所属用户使用“-u”选项后跟用户名来显示。多个用户名可以提供以逗号分隔。

 
 
  1. $ ps -f -u www-data 
  2. UID        PID  PPID  C STIME TTY          TIME CMD 
  3. www-data  1329  1328  0 09:32 ?        00:00:00 nginx: worker process 
  4. www-data  1330  1328  0 09:32 ?        00:00:00 nginx: worker process 
  5. www-data  1332  1328  0 09:32 ?        00:00:00 nginx: worker process 
  6. www-data  1377  1372  0 09:32 ?        00:00:00 php-fpm: pool a.localhost                                                
  7. www-data  1378  1372  0 09:32 ?        00:00:00 php-fpm: pool a.localhost                                                
  8. www-data  4524  2359  0 10:03 ?        00:00:00 /usr/sbin/apache2 -k start 
  9. www-data  4527  2359  0 10:03 ?        00:00:00 /usr/sbin/apache2 -k start 
  10. www-data  4528  2359  0 10:03 ?        00:00:00 /usr/sbin/apache2 -k start 

3、通过名字和进程ID显示进程:

通过名字或命令搜索进程,使用“-C”选项后面加搜索词。

 
 
  1. $ ps -C apache2 
  2.   PID TTY          TIME CMD 
  3.  2359 ?        00:00:00 apache2 
  4.  4524 ?        00:00:00 apache2 
  5.  4525 ?        00:00:00 apache2 
  6. ... 

4、根据CPU或者内存进行排序:

系管理员经常希望找出那些消耗大量内存或CPU的进程。排序选项将基于特定的字段或参数让进程列表进行排序。

“–sort”选项由逗号分隔的多个字段可以用指定。此外,该字段可以带有前缀“-”或“”符号,表示降序或升序分别排序。通过进程列表进行排序有很多参数,你可以检查手册页的完整列表。

 
 
  1. $ ps aux --sort=-pcpu,+pmem 

显示前5个消耗了大部分的CPU进程。

 
 
  1. $ ps aux --sort=-pcpu | head -5 
  2. USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND 
  3. root         1  2.6  0.7  51396  7644 ?        Ss   02:02   0:03 /usr/lib/systemd/systemd --switched-root --system --deserialize 23 
  4. root      1249  2.6  3.0 355800 30896 tty1     Rsl+ 02:02   0:02 /usr/bin/X -background none :0 vt01 -nolisten tcp 
  5. root       508  2.4  1.6 248488 16776 ?        Ss   02:02   0:03 /usr/bin/python /usr/sbin/firewalld --nofork 
  6. silver    1525  2.1  2.3 448568 24392 ?        S    02:03   0:01 /usr/bin/python /usr/share/system-config-printer/applet.py 

5、用树的风格显示进程的层次关系:

许多进程实际上是一些父进程分的分支,知道这父子进程关系往往是有用的。在'–forest'选项将建立ASCII艺术风格层次的树视图。

下面的命令将搜索进程名字为Apache2,形成一个树结构来显示详细的信息。

 
 
  1. $ ps -f --forest -C apache2 
  2. UID        PID  PPID  C STIME TTY          TIME CMD 
  3. root      2359     1  0 09:32 ?        00:00:00 /usr/sbin/apache2 -k start 
  4. www-data  4524  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start 
  5. www-data  4525  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start 
  6. www-data  4526  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start 
  7. www-data  4527  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start 
  8. www-data  4528  2359  0 10:03 ?        00:00:00  \_ /usr/sbin/apache2 -k start 

尽量不要使用任何的排序和树风格一起展示,因为他们使用了不同的顺序。

6、显示一个父进程的子进程:

这里有一个例子显示所有apache进程的分支

 
 
  1. $ ps -o pid,uname,comm -C apache2 
  2.   PID USER     COMMAND 
  3.  2359 root     apache2 
  4.  4524 www-data apache2 
  5.  4525 www-data apache2 
  6.  4526 www-data apache2 
  7.  4527 www-data apache2 
  8.  4528 www-data apache2 
  9. [term] 
  10. The first process that is owned by root is the main apache2 process and all other apache2 processes have been forked out of this main process. The next command lists all child apache2 processes using the pid of the main apache2 process 
  11. [term] 
  12. $ ps --ppid 2359 
  13. PID TTY       TIME CMD 
  14. 4524 ?        00:00:00 apache2 
  15. 4525 ?        00:00:00 apache2 
  16. 4526 ?        00:00:00 apache2 
  17. 4527 ?        00:00:00 apache2 
  18. 4528 ?        00:00:00 apache2 

7、显示一个进程的线程:

“-L”选项将显示进程的线程。它可以用来显示特定进程的所有线程或者所有进程。

下面的命令将显示所有id为3150的进程所拥有的线程。

 
 
  1. $ ps -p 3150 -L 

8、改变要显示的列:

ps命令可以配置为只显示选中的列表。为了显示完整列表可以查看手册。

下面的命令只显示PID,用户名,CPU,内存和命令的列。

 
 
  1. $ ps -e -o pid,uname,pcpu,pmem,comm 

可以重命名列标签,相当的灵活。

 
 
  1. $ ps -e -o pid,uname=USERNAME,pcpu=CPU_USAGE,pmem,comm 
  2. PID USERNAME CPU_USAGE %MEM COMMAND 
  3. 1 root           0.0  0.0 init 
  4.  2 root           0.0  0.0 kthreadd 
  5. 3 root           0.0  0.0 ksoftirqd/0 
  6. 4 root           0.0  0.0 kworker/0:0 
  7. 5 root           0.0  0.0 kworker/0:0H 
  8. 7 root           0.0  0.0 migration/0 
  9. 8 root           0.0  0.0 rcu_bh 
  10. 9 root           0.0  0.0 rcuob/0 
  11. 10 root           0.0  0.0 rcuob/1 

9、显示进程运行的时间:

表示进程的运行时间。对于运行的时间,列默认情况下是不显示的,可以使用“-O”选项查看。

 
 
  1. $ ps -e -o pid,comm,etime 

10、把ps命令变成一个实时查看器:

像往常一样,watch命令可以用来实时捕捉ps显示进程。简单的例子如下:

 
 
  1. $ watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15' 

输出在桌面上像这样:

 
 
  1. Every 1.0s: ps -e -o pid,uname,cmd,pmem,pcpu --...  Sun Dec  1 18:16:08 2013 
  2. PID USER     CMD                         %MEM %CPU 
  3. 3800 1000     /opt/google/chrome/chrome -  4.6  1.4 
  4. 7492 1000     /opt/google/chrome/chrome -  2.7  1.4 
  5. 3150 1000     /opt/google/chrome/chrome    2.7  2.5 
  6. 3824 1000     /opt/google/chrome/chrome -  2.6  0.6 
  7. 3936 1000     /opt/google/chrome/chrome -  2.4  1.6 
  8. 2936 1000     /usr/bin/plasma-desktop      2.3  0.2 
  9. 9666 1000     /opt/google/chrome/chrome -  2.1  0.8 
  10. 3842 1000     /opt/google/chrome/chrome -  2.1  0.8 
  11. 4739 1000     /opt/google/chrome/chrome -  1.8  1.0 
  12. 3930 1000     /opt/google/chrome/chrome -  1.7  1.0 
  13. 3911 1000     /opt/google/chrome/chrome -  1.6  0.6 
  14. 3645 1000     /opt/google/chrome/chrome -  1.5  0.4 
  15. 3677 1000     /opt/google/chrome/chrome -  1.5  0.4 
  16. 3639 1000     /opt/google/chrome/chrome -  1.4  0.4 

输出将被刷新,每1秒刷新统计数据。不过不要以为这是类似上面。

你会注意到在相比情况下top/htop命令的输出变化会更加频繁。

这是因为上面输出各种各样的值,CPU使用率和内存使用情况的组合。但上述ps命令排序显示的更简单,采取的是一个时间1列(如学校数学).所以它不会像top那样快速更新。

【6层】一字型框架办公楼(含建筑结构图、计算书) 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值