ps 查看正在运行的进程 
  -a     看所有进程 
  -u     以用户的格式显示进程 
  -x     显示后台进程运行的参数 
  -e     显示当前所有进程 
  -f     全格式 
  -ef    以全格式显示当前所有进程 
  --sort  可以指定内存、CPU等安装顺序排列,--sort=%mem 默认是升序如果想要降序就--sort=-%mem
USER 用户
PID 进程iD,不是唯一的,重启进程就会更新
%CPU    cpu占用
%MEM     内存占用
PPID 父进程 
VSZ 虚拟内存,也就是完整申请的内存,预分配
RSS(实际使用内存) 比如一个进程向系统申请1G的空间,但是他实际只用了500M那么1G就说虚拟内存空间,500M是实际内存空间,可以有百分之150%
TTY (终端)
    伪终端pts:在图形界面打开的终端或远程登录的终端
    ? 在总端登录前就有的进程,不属于任何终端
STAT(运行状态 S表示休眠 R表示运行  D不可终端 Z僵5死 (需要定 
时进行清除) T被跟踪或者被停止了,<搞优先级,N低优先级,L页面锁定在内存 I 表示多线程 +在前台进程组
START(执行开始时间) 
TIME(进程执行时间) 
COMMAND(进程名,过长就截断显示)


top
    CPU负载和使用百分比分别是什么
        CPU使用百分比 是指cpu可使用的资源进程使用了多少
        CPU负载    是指CPU进程排队数,负载越高表示进程多
    1       显示CPU逻辑内核
    c       切换显示详细command
    M       可按照内存占用情况镜像排序
    P       根据CPU使用百分比大小进行排序
    T       根据时间/累计实际进行排序
    f       可以选择显示内容
    
pgrep [进程名] 过滤进程   | pkill [经常名] 过滤
    -U 查找某个用户的进程ID
    -G 查找某个组的进程ID
    -P 根据父进程ID,查重所有子进程ID
    -l 不仅打印pid,也打印进程名
    -o 表示如果该程序有多个进程正在运行,则查找最先启动的
    -n 表示如果该程序有多个进程正在运行,则查找最后启动的
    -d 定义多个进程直接的分隔符;默认使用换行符

pidof [进程名]    查找进程

kill  [信号] [pid] 发送信号
    -15     默认中止
    -9      强制结束
    -1      重读配置文件相对于reload
    19      停止,在后台运行
killall   [进程名]    直接结束进程


调度优先级 使用 ps -eo comm,nice查看
    调度优先级决定对CPU的访问
    进程的nice值影响优先级
        范围伪-20到19,默认为0
            nice值越低表示CPU优先级越高
    更改优先级 
        启动后 renice -n [值] [pid] 重启就失败
        启动前 nice -n [值] [pid] [进程可执行的命令]

如果想要让程序在后台运行就在命令后面加一个 & 或者使用ctrl + z 这样就会生成一个job任务
    [root@Rehl8 ~]# vim passwd &
    [1] 2969
    [1]表示任务号
    2969表示进程号
    
    可以使用 jobs命令查看后台任务
如果想要把任务调度到前台使用 fg %[任务号]  
            fg %1                                                                                                                                                   

:star:进程执行操作生成进程,进程也会有UID和GID,然后进程在去读取匹配文件,匹配文件进程会使用GID和UID去匹配文件的UID和GID;列如:dns服务进程默认GID和UID都为named的,那么他就会去匹配服务下属文件,匹配成功后再去匹配GID和UID,UID如果匹配不上,那就去匹配GID,GID也匹配不成功那么进程将会启动失败

:star: CPU在处理进程时所采用的是轮询算法,比如有1、2、3、4这4个进程在排队等cpu处理,那么cpu会先给1分配一点时间,1执行完成了,给2分配,如果2在分配的时间内没有执行完成,那就继续排队等待分配执行