Linux操作命令之进程管理

一、进程管理

进程: 可执行程序运行后在系统产生的记录,和该进程占用的资源(cpu 内存 网络 磁盘 GPU)

1、静态查询

[root@controller ~]# ps -ef  | head  //静态查询
UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 14:58 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2      0  0 14:58 ?        00:00:00 [kthreadd]
root          4      2  0 14:58 ?        00:00:00 [kworker/0:0H]
root          6      2  0 14:58 ?        00:00:00 [ksoftirqd/0]
root          7      2  0 14:58 ?        00:00:00 [migration/0]
root          8      2  0 14:58 ?        00:00:00 [rcu_bh]
root          9      2  0 14:58 ?        00:00:01 [rcu_sched]
root         10      2  0 14:58 ?        00:00:00 [lru-add-drain]
root         11      2  0 14:58 ?        00:00:00 [watchdog/0]
//UID         用户id
//PID         进程id
//PPID        父进程ID
//C           占用CPU的百分比
//STIME       进程启动时间
//TTY         运行终端
//TIME        占用CPU时间
//CMD         程序名
[root@controller ~]# ps aux | head
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  0.1 191272  4340 ?        Ss   14:58   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root          2  0.0  0.0      0     0 ?        S    14:58   0:00 [kthreadd]
root          4  0.0  0.0      0     0 ?        S<   14:58   0:00 [kworker/0:0H]
root          6  0.0  0.0      0     0 ?        S    14:58   0:00 [ksoftirqd/0]
root          7  0.0  0.0      0     0 ?        S    14:58   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    14:58   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    14:58   0:01 [rcu_sched]
root         10  0.0  0.0      0     0 ?        S<   14:58   0:00 [lru-add-drain]
root         11  0.0  0.0      0     0 ?        S    14:58   0:00 [watchdog/0]
//USER       用户名
//PID        进程ID
//%CPU       CPU占用率
//%MEM       内存占用率 memory
//VSZ        虚拟内存
//RSS        实际消耗内存
//TTY        运行终端
//STAT       进程状态
//START      启动时间
//TIME       占用CPU时间
//COMMAND    程序名

2、动态查询

[root@controller ~]# top  //动态查询
//输入 P:按照CPU使用率排序
     //M:按照内存使用率排序
     //数字1:  按照展开CPU核心
top - 19:15:21 up  4:17,  2 users,  load average: 0.00, 0.01, 0.05 
//当前系统时间 运行时长   登录用户       平均负载:   1分钟  5分钟 15分钟
Tasks: 220 total,   1 running, 219 sleeping,   0 stopped,   0 zombie 
//进程总量        1个运行      187个休眠    0个停止    0个僵尸
%Cpu(s):  0.0 us,  0.0 sy,  0.0 ni,100.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st 
// 用户态   内核态   nice值调整  空闲率   等待硬盘百分比   硬中断   软中断    虚拟化偷取
KiB Mem :  4026224 total,  2414232 free,   770888 used,   841104 buff/cache 
//内存总量        空闲内存         使用内存        缓存                有效内存
KiB Swap:  2097148 total,  2097148 free,        0 used.  2994960 avail Mem 
//交换分区        空闲            使用

   PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND               
   864 rtkit     21   1  198804   1796   1432 S   0.3  0.0   0:00.19 rtkit-daemon         
 48308 root      20   0  162020   2352   1592 R   0.3  0.1   0:00.03 top                  
     1 root      20   0  191272   4340   2640 S   0.0  0.1   0:01.53 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.06 ksoftirqd/0          
     7 root      rt   0       0      0      0 S   0.0  0.0   0:00.06 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:01.21 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.07 watchdog/0           
    12 root      rt   0       0      0      0 S   0.0  0.0   0:00.06 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.10 ksoftirqd/1          
    16 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/1:0H         
    17 root      rt   0       0      0      0 S   0.0  0.0   0:00.06 watchdog/2
//PID        进程id
//USER    用户名
//PR        优先级
//NI        nice值
//VIRT    虚拟内存
//RES        实际消耗内存
//SHR    共享内存
//S        进程状态
//%CPU    CPU消耗百分比
//%MEM    内存消耗百分比
//TIME+    占用CPU时间
//COMMAND    程序名  

输入P

输入P

输入M

输入数字1

二、杀死进程

[root@controller ~]# kill -15 48443

[root@controller ~]# kill -9 48453 

[root@controller ~]# pkill vim     //杀死所有vim进程
[root@controller ~]# killall vim   //杀死所有vim进程
[root@robin ~]# xkill   //xshell不可使用

三、进程状态 PROCESS STATE CODES:

           D    uninterruptible sleep (usually IO)
           R    running or runnable (on run queue)
           S    interruptible sleep (waiting for an event to complete)
           T    stopped by job control signal
           t    stopped by debugger during the tracing
           W    paging (not valid since the 2.6.xx kernel)
           X    dead (should never be seen)
           Z    defunct ("zombie") process, terminated but not reaped by its parent

           <    high-priority (not nice to other users)
           N    low-priority (nice to other users)
           L    has pages locked into memory (for real-time and custom IO)
           s    is a session leader
           l    is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
           +    is in the foreground process group

1、前后台切换

Ctrl+Z 将一个于前台运行的命令调至后台

yum install -y xclock
[root@controller ~]# xclock -update 1  //前台运行
Warning: Missing charsets in String to FontSet conversion

[root@controller ~]# xclock -update 1 & //后台运行
[1] 3239

[root@controller ~]# jobs  //查询后台进程
[1]+  运行中               xclock -update 1 &
[root@controller ~]# bg 1 //后台程序运行
bash: bg: 任务 1 已在后台
[root@controller ~]#  fg 1 //后台程序调用到前台
xclock -update 1          
kill %1                   //杀死后台进程
[1]+  已终止               xclock -update 1
[root@controller ~]# nohup xclock -update 1 &  //脱离终端运行
[1] 3348
nohup: 忽略输入并把输出追加到"nohup.out"
[root@controller ~]# 

2、nice值(-20~19 值越小优先级越高)

[root@controller ~]# nice -n -20 vim
[root@controller ~]# ps 
   PID TTY          TIME CMD
  2678 pts/0    00:00:00 bash
  3348 pts/0    00:00:00 xclock
  3439 pts/0    00:00:00 ps
[root@controller ~]# renice -10 -p 3348
3348 (进程 ID) 旧优先级为 0,新优先级为 -10

3、CPU相关

[root@controller ~]# uptime
 19:54:59 up 26 min,  2 users,  load average: 0.08, 0.10, 0.13
[root@controller ~]# mpstat -P ALL
Linux 3.10.0-1062.el7.x86_64 (controller) 	2025年01月06日 	_x86_64_	(4 CPU)

19时55分31秒  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest  %gnice   %idle
19时55分31秒  all    0.78    0.01    0.58    1.52    0.00    0.04    0.00    0.00    0.00   97.07
19时55分31秒    0    0.68    0.02    0.56    1.52    0.00    0.04    0.00    0.00    0.00   97.18
19时55分31秒    1    1.10    0.01    0.64    1.46    0.00    0.07    0.00    0.00    0.00   96.72
19时55分31秒    2    0.70    0.01    0.52    1.17    0.00    0.03    0.00    0.00    0.00   97.58
19时55分31秒    3    0.64    0.02    0.60    1.93    0.00    0.03    0.00    0.00    0.00   96.79
[root@controller ~]# mpstat -P ALL 1 10 //实时更新
[root@controller ~]# lscpu 
Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                4   //总核心数
On-line CPU(s) list:   0-3  
Thread(s) per core:    1  //一个核心线程数
Core(s) per socket:    1   //一个cpu核心数
座:                 4   //有几个cpu
NUMA 节点:         1
厂商 ID:           GenuineIntel
CPU 系列:          6
型号:              126
型号名称:        Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz
步进:              5
CPU MHz:             1190.400
BogoMIPS:            2380.80
超管理器厂商:  VMware
虚拟化类型:     完全
L1d 缓存:          48K
L1i 缓存:          32K
L2 缓存:           512K
L3 缓存:           6144K
NUMA 节点0 CPU:    0-3
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ss syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon rep_good nopl xtopology tsc_reliable nonstop_tsc eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm 3dnowprefetch ssbd ibrs ibpb stibp ibrs_enhanced fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid avx512f avx512dq rdseed adx smap avx512ifma clflushopt avx512cd sha_ni avx512bw avx512vl xsaveopt xsavec xgetbv1 arat avx512vbmi umip pku ospke avx512_vbmi2 gfni vaes vpclmulqdq avx512_vnni avx512_bitalg avx512_vpopcntdq md_clear spec_ctrl intel_stibp flu
sh_l1d arch_capabilities
[root@controller ~]# cat /proc/cpuinfo  //内存相关






4、内存相关

[root@controller ~]#  free -m
              total        used        free      shared  buff/cache   available
Mem:           3931         752        2106          22        1072        2927
Swap:          2047           0        2047
[root@controller ~]# cat /proc/meminfo

5、高级命令

[root@controller ~]# tac /etc/passwd //上下颠倒
[root@controller ~]# rev /etc/passwd  //左右颠倒

6、统计行数

1 wc命令

[root@controller ~]# wc -l /etc/passwd  //统计行数
[root@controller ~]# wc -w aa.txt  //统计单词数
[root@controller ~]# wc -c aa.txt  //统计字符

2 sort命令 默认首位排序

[root@controller ~]# sort -n aa.txt   -n 按整个数字排序
[root@controller ~]# sort -nr aa.txt   -r 降序
[root@controller ~]# sort -nru aa.txt    -u 去重

3 uniq 去重 默认连续相同行

[root@controller ~]# sort aa.txt  | uniq -c   //-c  求重复次数
[root@controller ~]# sort aa.txt  | uniq -d   //-c  只显示重复行
[root@controller ~]# sort aa.txt  | uniq -u   //-u  显示不重复的行

4 grep: 过滤

[root@controller ~]# grep root /etc/passwd
[root@controller ~]# grep -A 2 root /etc/passwd     //-A  匹配行后两行
[root@controller ~]# grep -B 2 root /etc/passwd     //-B   匹配行前两行
[root@controller ~]# grep -C 2 root /etc/passwd     //-C   前后2行
[root@controller ~]# grep -n root /etc/passwd       //-n  显示行号
[root@controller ~]# grep -i root /etc/passwd       //-i  忽略大小写
[root@controller ~]# grep -v root /etc/passwd       //-v  取反
[root@controller ~]# grep -x root /root/aa.txt      //-x  完全匹配
[root@controller ~]# grep -rl hostname /etc/        //-r  递归  -l 列出文件名

5 cut: 剪切

[root@controller ~]# cut -d':' -f 1 /etc/passwd    //第一个字段
[root@controller ~]# cut -d':' -f 1-3 /etc/passwd   //第1-3字段
[root@controller ~]# cut -d':' -f 1,3-5 /etc/passwd   //第1, 3-5字段
 
[root@controller ~]# cut -c 1 /etc/passwd        //取第一个字符
[root@controller ~]# cut -c 1-10  /etc/passwd
[root@controller ~]# cut -c 1,5-10  /etc/passwd

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

ximy1335

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

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

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

打赏作者

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

抵扣说明:

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

余额充值