做为初学者,Linux永远是那么神秘,高大上的内容我也不会,因此在这里只能整理一下与管理相关的命令了,若是有不对的或不许确的地方,请指正。linux
可参考:Linux内核--进程管理与调度http://www.linuxidc.com/Linux/2014-08/105366.htmsession
做用:列出当前的进程,以及它们的树状结构多线程
用法:pstree [选项]ssh
-a: 显示执行程序的命令与完整参数ide
在/proc/目录中包含了进程和内核模拟生成的伪文件,该路径下每一个进程用本身的PID命名目录,目录里面包含了这个进程运行的各个参数。ui
内核参数在/proc/sys/目录中,可设置其值动态调整内核运行的特性。this
用法:ps [选项]spa
选项有三种风格操作系统
1 UNIX options, which may be grouped and must be preceded by a dash.命令行
2 BSD options, which may be grouped and must not be used with a dash.
3 GNU long options, which are preceded by two dashes.
经常使用选项组合之一:
# pstree aux
a:全部与终端相关的进程
x:全部与终端无关的进程
u:以用户为中心组织进程状态信息显示
显示字段含义:
USER 表示此进程以哪一个用户身份运行
PID 表示进程号
%CPU 表示占用cpu利用率百分比
%MEM 表示占用物理内存百分比
VSZ 表示虚拟内存集大小,包含共享的数据空间
RSS 表示常驻内存集大小,位于物理内存,并不能被交换出去
TTY 表示此进程从哪一个终端启动,问号?表示与终端无关的进程
STAT 表示进程状态
R:running
S:interruptable sleeping
D:uninterruptable sleeping
T:Stopped
Z:zombie
+:前台进程
l:多线程进程
N:低优先级进程,通常表示该进程优先级别数值是负数
<:高优先级进程
s:session leader
START 表示进程起始时间
TIME 表示累计占用cpu的时间
COMMAND 表示由哪一个命令启动,带中括号的是内核线程
经常使用选项组合之二:
# pstree –ef
-e : 显示全部进程
-f : 显示完整格式的进程信息
部分字段含义:
PPID 表示此进程的父进程号
C 表示cpu的占用百分比
经常使用选项组合之三:
# ps –eFH
-F:显示完整格式的进程信息
-H:以层级结构显示进程的相关信息
部分字段含义:
SZ 表示虚拟内存集大小,包含共享的数据空间
PSR 表示此进程运行在哪颗cpu上
经常使用选项组合之四:
# ps –eo <FIELD1,FIELD2,…>
或
# ps axo <FIELD1,FIELD2,…>
o FIELD1,FIELD2,… : 自定义要显示的字段列表,以逗号分隔
经常使用的FIELD:pid, ni, pri, psr, pcpu, stat, comm, tty, ppid, rtprio
ni : nice值
pri : priority 优先级
rtprio : real time priority,实时优先级
pcpu : cpu的利用率
用法:pgrep [options] pattern
-u uid:effective user
-U uid:read user
-t TERMINAL:与指定的终端相关的进程
-l:显示进程名
-a:显示完整格式的进程名
-P pid:显示此进程的子进程
[root@localhost ~]# pidof sshd
3987 2368 1062
[root@localhost ~]# uptime
00:06:21 up 7:12, 2 users, load average: 0.00, 0.01, 0.05
load average:等待运行的进程队列的长度在过去1分钟、5分钟和15分钟的平均负载
用法:
# top -d 2 :指定2秒延迟时长刷新显示,单位是秒
# top -b :批模式
# top -bn 2 :在批模式下,共显示2批
显示含义:
第一行信息是uptime命令的显示内容
第二行显示的是全部启动的、目前运行的、挂起( Sleeping )的和无用( Zombie )的进程数量
第三号显示的是目前CPU的使用状况,依次为
us用户使用比例
sy系统占用的比列
ni调整之后额外占用的时间百分比
id闲置( Idle)比例
wa等待IO完成占用的百分比
hi处理硬件中断消耗的百分比
si处理软件中断消耗的百分比
st被当前主机上虚拟化技术所分走的百分比
第四行显示物理内存的使用状况,包括总的可使用内存、空闲内存、已用内存、buff/cache占用的内存
buffers与cached都是内存操做,用来保存系统曾经打开过的文件以及文件属性信息,这样当操做系统须要读取某些文件时,会首先在buffers与cached内存区查找,若是找到,直接读出传送给应用程序,若是没有找到须要数据,才从磁盘读取。
buffers是用来缓冲块设备作的,它只记录文件系统的元数据(metadata)以及tracking in-flightpages,而cached是用来给文件作缓冲。更通俗一点说:buffers主要用来存放目录里面有什么内容,文件的属性以及权限等等。而cached直接用来记忆咱们打开过的文件和程序。
第五行显示交换分区的使用状况,包括总的、空闲的、已用的和可用的内存空间大小
第六行显示项目以下:
PID : 进程号
USER : 进程全部者
PR : 进程的优先级别
NI : nice值
VIRT : 进程占用的虚拟内存值
RES : 进程占用的物理内存值
SHR : 进程占用的共享内存值
S : 进程的状态,参见ps命令
%CPU : 该进程占用的CPU使用率
%MEM : 该进程占用的物理内存的百分比
TIME+ : 进程启动后在CPU上运行的时长
COMMAND : 进程启动的启动命令
在top命令使用的过程当中,还可使用一些交互式的命令来完成其余功能,可用如下快捷键:
M: 根据驻留内存大小进行排序
P: 根据cpu使用百分比进行排序
T: 根据累计时间进行排序
l: 是否显示平均负载和启动时间
t: 是否显示进程和cpu状态相关信息
m: 是否显示内存相关信息
c: 是否显示完整的命令行信息
s:修改刷新时间间隔
<空格键>:当即刷新
k:终止指定的进程
q: 退出top
htop是top命令在功能上的一个升级命令,所以二者的显示和使用习惯比较类似,可是htop命令须要手动安装,而且在发行版光盘上没有它的安装包,须要经过其余途径得到,建议用yum指向的epel源安装
htop的功能很强大,还能支持鼠标操做,显示项目内容和top命令相似,这里只说一下它的交互命令
u: 仅显示指定用户的进程
s: 以指定字段显示
l: 显示选定的进程打开的文件列表
s: 跟踪选定的进程的系统调用
t: 以层级关系显示各进程状态
a: 将选定的进程绑定至某指定的CPU核心
更多帮助按F1键得到
用法:vmstat [options] [delay [count]]
# vmstat 2 5 //表示每5秒采集一次,共采集5次
-s : 显示内存相关统计信息
-d : 显示磁盘相关统计信息
-S : Switches outputs between 1000 (k), 1024 (K), 1000000 (m), or 1048576 (M) bytes. Note this does not change the swap (si/so) or block (bi/bo) fields.
显示字段含义:
------procs------
r:等待运行的进程的个数;CPU上等待运行的任务的队列长度
b:处于不可中断睡眠态的进程个数;被阻塞的任务队列的长度
------memory------
swpd:交换内存使用总量;
free:空闲的物理内存总量;
buffer:用于buffer的内存总量;
cache:用于cache的内存总量;
------swap------
si:数据进入swap中的数据速率(kb/s)
so:数据离开swap的速率(kb/s)
------io------
bi:从块设备读入数据到系统的速度(kb/s)
bo:保存数据至块设备的速率(kb/s)
------system------
in:interrupts,中断速率
cs:context switch, 上下文 切换的速率
------cpu------
us: user space
sy:system
id:idle
wa:wait
st: stolen
若是bi和bo长期不等于0,则表示物理内存过小
用法:pmap [options] pid [...]
-x:显示详细格式的信息
另外一种查看方式:cat /proc/PID/maps
-terminate a process
做用:用于向进程发送信号,以实现对进程的管理
显示当前系统可用信号:
# kill –l
每一个信号的标识方法有三种:
1) 信号的数字标识
2) 信号的完整名称
3) 信号的简写名称
向进程发信号:
# kill [-s signal|-SIGNAL] pid...
经常使用信号:
1) SIGHUP:无须关闭进程而让其重读配置文件
2)SIGINT:终止正在运行的进程,至关于Ctrl+c
9)SIGKILL:杀死运行中的进程
15)SIGTERM:终止运行中的进程
18)SIGCONT
19)SIGSTOP
-kill processes by name
# killall [-SIGNAL] program
前台做业(foregroud):经过终端启动,且启动后会一直占据终端
后台做业(backgroud):能够经过终端启动,但启动后即转入后台运行(释放终端)
如何让做业运行于后台?
(1) 运行中的做业
Ctrl+z
注意:送日后台后,做业会转为中止态;
(2) 还没有启动的做业
# COMMAND &
注意:此类做业虽然被送日后台,但其依然与终端相关;若是但愿把送日后台的做业剥离与终端的关系:
# nohup COMMAND &
查看全部的做业:
# jobs
可实现做业控制的经常使用命令:
# fg [[%]JOB_NUM]:把指定的做业调回前台
# bg [[%]JOB_NUM]:让送日后台的做业在后台继续运行
# kill %JOB_NUM:终止指定的做业
0-139 种优先级,数字越小,优先级越高
100-139 :用户可控制
0-99: 内核调整的
优先级高能够:
一、得到更多的CPU运行时间
二、更优先得到运行的机会
可经过nice值调整的优先级范围:100-139
其nice值分别对应于:-20, 19
进程启动时,其nice值默认为0,其优先级是120
nice 值:数值越小,优先级调高
普通用户只能调大本身进程的nice值
仅管理员可调低nice值
以指定的nice值启动并运行命令
# nice [OPTION] [COMMAND [ARGU]...]
选项:-n NICE
# nice –n 1 ls > 1.txt
容许用户修改一个正在运行的进程的优先级
# renice [-n] NICE PID... 查看Nice值和优先级: # ps axo pid, ni, priority, comm