Linux命令ps和进程详解

进程 : 加载到内存中的一段指令
在硬盘中的app应用程序----->加载到内存中------>再加载到cpu的缓存中----->最后加载到cpu中

ps(process) aux
a : 查看所有终端的进程
u : 打印进程的详细信息,进程的拥有人、使用百分比
x : 打印不属于任何终端的进程,例如?
-e : 查看系统所有进程
-f : 查看额外的信息
-o : 查看指定的列    例如: ps  -eo  pid,%cpu,%mem  :  可查看指定的pid,%cpu,%mem列
--sort  : 指定列进行排序-(降序),+(升序),格式为--sort=pid 
ps -eo pid,%cpu,%mem --sort=+%mem | head : 查看指定的pid,%cpu,%mem列,并以mem内存的使用百分比升序排列

在用户进行重启或者别的操作时,会生成一个进程,然后进程再访问文件
USER         PID   %CPU    %MEM     VSZ      RSS    TTY        STAT        START          TIME     COMMAND
root           1        0.0           0.3      326716 13944   ?            Ss            Apr08          0:04   /usr/lib/systemd/syst
   1             2         3              4           5          6        7            8                 9               10          11
1 :  进程的拥有人,一般情况下谁运行该进程,拥有人就是谁
进程匹配权限的流程:
注意: 进程的拥有组是进程拥有人所在的组,可以是主组也可以是多个附加组
用户(有自己的uid和gid)通过任何操作生成了进程------>进程就会匹配用户(uid和gid(可以是主组和多个附加组))权限-------->进程的拥有人uid和拥有组的gid匹配文件的拥有人和拥有组的uid和gid,并不是匹配执行用户的uid和gid,所以说并不是哪个用户执行的命令,拥有人就是该用户,过于绝对
2 : 进程的ID,也叫pid,不是唯一不变的,每次重启都会自动分配,(注意 : 重启进程是比较耗内存的,一般建议用reload,不要用restart)
3 : cpu的使用百分比
4 : 内存的使用百分比
5 : 虚拟内存,进程申请的内存
6 : 实际使用的内存,也是应用程序实际使用的内存
7 : tty,进程运行的终端,例如tty1,tty2,tty3(图形控制台和字符界面的终端),pts(伪终端: 图形界面打开的终端,或者远程ssh登录的终端),?(不属于任何终端,在进程运行之前就存在的)
8 : 进程的运行状态
9 : 进程开始的时间,通过这个可以判断系统的开始时间
10 : 系统运行的时间
11 : 进程的命令或者进程名

top - 02:27:46 up  1:03,  2 users,  load average: 0.00, 0.00, 0.00
                      1                   2                 3                 
1: 系统启动的时间
2: 有2个远程链接的用户登入
3: cpu的平均负载,分别是1分钟的负载,5分钟,15分钟
cpu负载和cpu的利用率的关系
cpu利用率: 程序在运行期间实时占用cpu的百分比
cpu平均负载: 显示的是一段时间内正在使用和等待使用cpu的平均任务数
理论上说cpu的利用率越高,cpu的负载就是越大,一般cpu负载趋近于0.7是较好的状态
特殊情况中,在运行一个任务一直需要cpu的运算能力,那么此时cpu的利用率可能达到100%,但是cpu的平均负载只是趋近于1,因为cpu仅负载一个任务,若此时增加一个这样的任务,则cpu的负载可能达到2,这时cpu就需要在两个任务中频繁的切换
Tasks: 268 total,   2 running, 266 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.2 sy,  0.0 ni, 99.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
               1                2       3            4           5         6         7         8 
1: us(user):用户进程占有率
2: sy(system):内核空间占有率
3: ni(niced)
4: id(idle):空闲空间占有率
5: wa(wait):系统I/O等待时间
6: hi(hard-interrupt):硬中断时间
7: si(soft-interrupt):软中断时间
8: st:被虚拟化占用的时间
top(实时查看进程的占用百分比)
-d :  指定多久实时监控的刷新频率,例如,top -d -1 : 表示1秒刷新一次
-p :  指定pid进行查看,实时监控某一个指定的进程
用下面的按键在top里面操作
1 : 可以监控每个逻辑cpu的状况
M(大写的m) : 按照内存占用的百分比降序排列
P(大写的p) : 按照cpu的占用百分比降序排列
f : 可以选中显示的内容,例如%CPU,PID,COMMAND等等
c : 显示进程COMMAND的完整命令

pgrep(过滤进程): 通过程序的名字来查询进程的工具,如: pgrep httpd
-u : 查找某个用户的进程id,可接用户id和用户名
-g : 查找某个组的进程id,可接组的id和组名
-p : 根据父进程id,查找出所有子进程id
-l : 显示PID和进程名,可配合上面的选项使用,例如:pgrep -l  -u root : 过滤出来root的pid和进程名
-d : 指定列出的多个进程的分隔符
pgrep -d : -u root
1:2:3:4:6:8:9:10:11:12:13:14:15:
-o : 如果该进程有多个进程正在运行,过滤出正在运行的最老的程序
例如 : pgrep -o -u root
1
-n : 如果该进程有多个进程正在运行,过滤出正在运行的最新的程序
例如 : pgrep -o -u root
2683

pidof + 进程名 : 查找准确的进程的所有pid
ps -p $(pidof httpd)指定进程的pid查询进程的详细信息

kill : 通过指定pid给进程发送信号执行操作
killall 进程名 :  接的信号是一样的,但是后面接进程名
kill  [signal] pid
15 : 退出,进行操作可以看到进程被中断
9 : 强制退出,显示进程被杀死
1 : 重新加载配置文件,等同于systemctl reload httpd 
19 : 将后台进程暂停

nice值(只有root用户才可以临时修改nice值)
-20到19 : 数值从大到小
nice -n 19 命令(如vim) : 当进程未启动修改优先级为19启动
renice  19  -p 2100  :  当进程正在运行修改优先级为19,指定pid为2100的进程nice设为19

进程和作业控制jobs
jobs : 查看后台运行的进程名和作业号
firefox : 直接运行的进程会直接在前台,占用终端
ctrl + z : 暂停前台的进程并放入后台,并不完全是后台进程    或者kill -19 %jobnum/pid : 暂停后台运行的进程
ctrl + c : 结束前台的进程
ctrl + d : 退出有交互式的命令操作,例如tr 
bg %jobnum :  把程序放入后台运行,pkill -9 %jobnum : 结束后台进程
fg %jobnum : 把程序放入前台运行
firefox & : 让进程在后台运行
dd(从进程到进程) if=/dev/zero(输入0字节的数据)  of=/dev/null(类似于黑洞) :干耗cpu资源,不会死机,因为cpu使用的轮询调度算法

  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小王丨小王

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值