Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识( 三 )

#include <pthread.h>void* func(void * args) {while (1){/* code */}}int main() {#define num_threads 10pthread_t t[num_threads];for(int i = 0; i < num_threads; i++) {pthread_create(&t[i], NULL, func, NULL);}for (size_t i = 0; i < num_threads; i++){pthread_join(t[i], NULL);}return 0;}执行上面的程序之后,top的输出结果如下所示:

Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

文章插图
从上面的这个结果我们可以知道CPU的占有率是可以超过%100的,这个值的计算主要是在刷新之间内一个进程消耗的CPU时间和在这段时间内一个CPU能够产生的CPU时间的比值 。
  • %MEM,这个主要是进程使用的内存占用实际的可用的物理内存的比例 。
  • TIME+,这个表示自从进程启动以来累计消耗的CPU时间 。
  • COMMAND,这个表示启动进程的时候执行的命令 。
top命令交互操作
  • c , 详细显示命令行的内容,你在交互模式下直接按下键盘上的c即可 。
    Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

    文章插图
  • o,在交互模式下先按下键盘上的o,然后就可以输入过滤条件,在这里掩饰的是COMMAND=a.out的进程:
    Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

    文章插图
  • k,shell给我们提供了一个非常方便的操作我们可以在交互模式下选择我们想要杀死的进程,比如在下图当中我们杀死进程135020 。
我们先在交互模式下先按下键盘上的k , 然后输入进程号,然后输入回车,再输入想发送的信号类型 。
输入进程号
Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

文章插图
【Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识】再输入想要发送的信号:
Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

文章插图
这里可以输入代表信号的数字 , 也可以输入代表信号的名字,不同的信号的名字和代表输入如下:
1) SIGHUP2) SIGINT3) SIGQUIT4) SIGILL5) SIGTRAP 6) SIGABRT7) SIGBUS8) SIGFPE9) SIGKILL 10) SIGUSR111) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+338) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+843) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+1348) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-1253) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-758) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-263) SIGRTMAX-1 64) SIGRTMAX
  • u,通过用户过滤,在交互模式下按下键盘上的u键,然后就可以输入你想看那个用户的进程,输入对应的用户名称即可,比如说看root用户的进程:
    Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

    文章插图
然后我们就只能够看到root用户的进程了 。
Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

文章插图
  • h,查看帮助信息:
    Linux命令系列之top——里面藏着很多鲜为人知的宝藏知识

    文章插图
  • i,过滤掉CPU利用率很低的进程,很多时候我们在进行系统分析的时候需要去判断那个进程CPU占有率高,因此i是一个非常有效的方式过滤掉干扰进程 。
以上就是本篇文章的所有内容了,我是LeHung,我们下期再见?。。「嗑誓谌莺霞煞梦氏钅浚篽ttps://github.com/Chang-LeHung/CSCore
关注公众号:一无是处的研究僧 , 了解更多计算机(Java、Python、计算机系统基础、算法与数据结构)知识 。

推荐阅读