程序和进程
程序
保存在硬盘、光盘等介质中的可执行代码和数据
文件中静态保存的代码
进程
在CPU及内存中运行的程序代码
动态执行的代码
父、子进程(每个程序可进程以创建一个或多个进程)
查看进程信息
查看静态进程
PS命令:是Linux系统里最为常用进程查看工具,根据不同的命令选项,可以有选择的查看进程信息 (查看静态统计信息)
ps aux 以简单的列表显示出进程信息
a:显示当前终端下的所有进程信息,包括其他用户的进程
u:使用以用户为主的格式输出进程信息
x:显示当前用户在所有的终端下的进程
ps -elf 以长格式显示系统中的进程信息
-e:显示系统内所有信息
-l:使用长格式显示进程信息
-f:使用完整版的格式显示进程信息
选项 |
说明 |
USER |
进程的用户 |
PID |
进程的ID |
%CPU |
进程占用的CPU百分比 |
%MEM |
占用内存的百分比 |
VSZ |
该进程使用的虚拟内存量(KB) |
RSS |
该进程占用的物理内存量(KB) |
TTY |
启动进程的终端名,不是从终端启动的进程则显示为 ? |
STAT |
该进程的状态(D:不可中断的休眠状态:R:正在运行状态:S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态: Z:僵尸’进程,进程已经中止,但是部分程序还在内存当中) . |
START |
该进程被触发启动时间 |
TIME |
该进程实际使用CPU运行的时间。 |
COMMAND |
进程的启动命令 |
注意:ps aux | grep bash 物品们可以使用管道操作进行过滤,可以查找过滤出包含我们想要找到的进程信息
选项 |
说明 |
F |
内核分配给进程的系统标记 |
S |
进程的状态 |
UID |
启动这些进程的用户 |
PID |
进程的进程ID |
PPID |
父进程的进程号(如果该进程是由另-一个进程启动的) |
C |
进程生命周期中的CPU利用率 |
PRI |
进程的优先级( 越大的数字代表越低的优先级) |
NI |
谦让度值用来参与决定优先级 |
ADDR |
进程的内存地址 |
SZ |
假如进程被换出,所需交换空间的大致大小 |
WCHAN |
若该进程在睡眠,则显示睡眠中的系统函数名 |
STIME |
进程启动时的系统时间 |
TTY |
进程启动时的终端设备 |
TIME |
运行进程需要的累计CPU时间 |
CMD |
进程的启动命令 |
动态查看进程命令
top命令:以动态刷新方式显示各进程的状态信息
op行:任务队列信息
15:05:01 系统时间
up 2:58 系统已运行时长
2 user 当前用户登录数
load average 0.00,0.01,0.05 系统负载,单位时间内系统处理的任务数,这三个数分别为1分钟,5分钟,15分钟前到现在的平均值
Tasks行:进程信息
total:总进程数
running:正在运行的进程数
sleeping:休眠进程数
stopped:中止的进程数
zombie:僵尸无响应进程数
%CPU行:CPU的信息
us:用户占用
sy:内核占用
ni:优先级调度占用
id:空闲cpu
wa:I/O等待占用
hi:硬件中断占用
si:软件中断占用
st:虚拟化占用
注意:要想了解空闲的CPU百分比,主要看%id部分
Mem行:内存占用信息
total:总内存空间
used:已用内存
free:空闲内存
buffers:缓冲区域
Swap行:交换空间信息
total:总交换空间
free:空闲交换空间
used:已用空间交换
avail Mem:可用物理空间
选项 |
说明 |
PID |
进程id |
USER |
进程所有者的用户名 |
PR |
优先级 |
NI |
谦让度值。负值表示高优先级,正值表示低优先级 |
VIRT |
进程使用的虚拟内存总量,单位kb |
RES |
进程使用的物理内存大小,单位kb |
SHR |
共享内存大小,单位kb |
S |
进程状态 |
%CPU |
上次更新到现在的CPU时间占用百分比 |
%MEM |
进程使用的物理内存百分比 |
TIME+ |
进程使用的CPU总计,单位1/100秒 |
COMMAND |
命令名/命令行 |
top常用命令
①P 键 |
根据CPU使用百分比大小进行排序 |
②M 键 |
根据驻留内存大小进行排序 |
③N 键 |
根据启动时间进行排序 |
④c 键 |
切换显示命令名称和完整命令行 |
⑤h 键 |
可以获得 top程序的在线帮助信息 |
⑥k 键 |
根据提示输入指定进程的 PID 号并按 Enter 键终止对应的进程 |
⑦q 键 |
退出 top 程序 |
⑧数字1 键 |
显示CPU个数和状态 |
查看进程信息pgrep
● pgrep -l "进程关键字" -U 指定特定用户
● pgrep -l "进程关键字" -t 指定终端 使用较少
查看进程树pstree
pstree命令可以输出Linux系统中各种进程的树形结构,更加直观地判断出各进程之间的相互关系(父子进程),默认情况下只显示各进程的名称,可结合选项如下:
-u 列出对应用户名
-p 列出对应PID
-a 列出完整信息
pstree -aup XXX
只查看属于XXX用户的进程树结构
查看load average
进程的启动方式
手工启动
①前台启动:用户输入命令,直接执行程序
②后台启动:在命令行尾加入“&”符号
调度启动
①使用at命令,设置一次性计划任务
②使用crontab命令,设置周期性计划任务
进程的前后台调度
Ctrl + Z 组合键
将当前进程挂起,即调入后台并停止执行
jobs命令
查看处于后台的任务列表
fg命令
将后台进程恢复到前台运行,可指定任务序号
kill、killall命令
①kill用于终止指定PID号的进程
②killall用于终止指定名称相关的所有进程
③-9选项用于强制终止
kill [-n] -s <信号名> <PID>
###-n:选择发送指定的信号给进程,n为信号数,默认15
###-s:选择发送指定的信号给进程,参数为信号数对应的信号名,默认为SIGTERN
###PID:杀死指定PID的进程
killall <进程名> ###关闭所有用户的指定进程
pkill命令
①根据特定条件终止相应的进程
②常用命令选项
pkill <关键词> -U “XXX” -t “XXX”
关键词:根据关键词关闭所有带关键词的进程
-U:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
at一次性任务设置
crontab周期性任务设置
1.按照预先设置的时间周期(分、时、日、月、周)重复执行用户指定的命令操作
2.属于周期性计划任务
3.主要设置文件
1)全局配置文件,位于文件:/etc/crontab
2)系统默认的设置,位于目录:/etc/cron.*/
3)用户定义的设置,位于文件:/var/spool/cron/用户名同名文件
crontab -e [-u 用户名]
###编辑计划任务,可指定用户,缺省时为针对当前用户
vim /var/spool/cron/用户同名文件
###编辑计划任务
echo '* * * * * /usr/bin/ls' >> /var/spool/cron/用户同名文件
###编辑计划任务
crontab -l [-u 用户名]
###查看计划任务,可指定用户,缺省时为针对当前用户
crontab -r [-u 用户名]
###删除计划任务,可指定用户,缺省时为针对当前用户