Rad Hat公司推出RPM(Red package Manager)软件包管理程序。目前RPM已成为Linux中公认的软件包管理标准。
典型的RPM软件包的文件名采用固定格式:“软件名-主版本号-次版本号.硬件平台类型.rpm”。
管理RPM软件包的Shell命令
RPM命令可实现RPM软件安装、升级、删除、查询和验证五大功能。
1. 安装RPM软件包
rpm –I [选项] 软件包文件 安装RPM软件包
-v (verbose):显示安装过程
-h (hash):显示“#”符号来反映安装的进度
--replacepkgs:重新安装软件包
RPM软件包安装时首先将检查软件包的依赖关系,如果所关联的软件包不存在,那么安装无法完成。然后将检查软件包的签名信息,如果签名检测失败,安装也无法完成。
2. 升级RPM软件包
rpm –U [选项] 软件包文件 升级RPM软件包。如果当前系统中未安装指定的RPM软件包则直接安装。
-v (verbose):显示升级过程
-h (hash):显示“#”符号来反映安装的进度
3. 查询RPM软件包
格式1: rpm –q [选项] 软件包
-l (list):查询已安装软件包所包含的所有文件
-I (info):查询已安装软件包的详细信息
格式2: rpm –q [选项]
-a (all):查询已安装的所有软件包
-f 文件 (file):查询指定文件所属的软件包
4. 验证RPM软件包
格式1: rpm –V 软件包
格式2: rpm –V [选项]
-a (all):验证已安装的所有软件包
-f 文件 (file):验证指定文件所属的软件包
验证输出结果字符含义:
S (size):文件大小不同
M (mode):文件权限和文件类型不同
5:MD5校验码不同
D (device):设备的标识号不同
L (link):文件的链接路径不同
U (user):文件所有者用户不同
G (group):文件所属组群不同
T (time):文件修改时间不同
5. 删除RPM软件包
rpm –e 软件包
软件包删除操作时,参数不能使用RPM软件包的完整文件名,只能使用软件名称或软件名称加上版本编号。如果将删除的软件包与其他已安装的软件包存在依赖关系,那么系统会显示提示信息并中止删除操作。
第7章 进程管理与系统监视
进程:进程是具有独立功能的程序的一次运行过程,也是系统进行资源分配和调度的基本单位。
作业:正在执行的一个或多个相关进程可形成一个作业。使用管道命令和重定向命令,一个作业可启动多个进程。
根据作业运行方式的不同,可将作业分为两大类:
- 前台作业:运行于前台,用户正对其进行交互操作。
- 后台作业:运行于后台,不接收终端的输入,但向终端输出执行结果。
进程的状态:
Linux中进程具有以下基本状态:
- 就绪状态:进程已获得除CPU以外的运行所需的全部资源。
- 运行状态:进程占用CPU正在运行。
- 等待状态:进程正在等待某一事件或某一资源。
- 挂起状态:正在运行的进程,因为某个原因失去CPU而暂时停止运行。
- 休眠状态:进程主动暂时停止运行。
- 终止状态:进程已结束。
- 僵死状态:进程已停止运行,但是相关控制信息仍保留。
启动进程的用户或超级用户可以修改进程的优先级,但普通用户只能调低优先级,而超级用户既可以调低优先级也可以调高优先级。Linux中进程优先级的取值范围为-20~19之间的整数,取值越低,优先级越高,默认为0。
启动进程与作业
启动进程与作业的方式可分为手工启动和调度启动两种。
(1)手工启动是指由用户输入Shell命令后直接启动进程,又可分前台启动和后台启动。用户输入一个Shell命令后按【Enter】健就启动了一个前台作业。这个作业可能同时启动了多个前台进程。而如果在输入的Shell命令的末尾加上“&”符号,再按【Enter】健,那么就将启动一个后台作业。
(2)调度启动时系统按用户要求的时间或方式执行特定的进程。Linux中可实现at调度、batch调度和cron调度。
作业的前后台切换
利用bg命令和fg命令可实现前台作业和后台作业之间的相互转换。将正在运行的前台作业切换到后台,功能上与在Shell命令结尾加上“&”符号相似。
- bg命令
bg [作业号] 将前台作业切换到后台运行。若没有指定作业号,则将当前作业切换到后台。
2. fg命令
fg [作业号] 将后台作业切换到前台运行。若没有指定作业号,则将后台作业序列中的第一个作业切换到前台运行。
管理进程与作业的Shell命令
1. jobs命令
jobs [选项] 显示当前所有的作业
-p (process):仅显示进程号
-l (list):同时显示进程号和作业号
2. ps命令
ps [选项] 显示进程的状态。无选项时显示当前用户在当前终端启动的进程。
-a (all):显示当前终端上的所有进程,包括其他用户的进程信息
-e:显示系统中所有进程,包括其他用户进程和系统进程的信息
-l (list):显示进程的详细信息,包括父进程号、进程优先级等
u (user):显示进程的详细信息,包括CPU和内存的使用率等
x: 显示后台进程的信息
-t 终端号: 显示指定终端上的进程信息
3. kill命令
格式1: kill [选项] 进程号
格式2: kill % 作业号
终止正在运行的进程或作业。超级用户可终止所有的进程,普通用户只能终止自己启动的进程。
-9 当无选项的kill命令不能终止进程时,可强行终止指定进程
4. nice命令
nice [-优先级值] 命令 指定将启动的进程的优先级。不指定优先级值时,将优先级设置为10
5. renice命令
renice 优先级值 参数 修改运行中的进程的优先级,设置指定用户或组群的进程优先级。优先级值前无“-”符号。
-p 进程号 (process):修改指定进程的优先级
-u 用户名 (user):修改指定用户所启动进程的默认优先级
-g 组群号 (group):修改指定组群中所有用户的所启动进程的默认优先级
进程调度
1. at 调度
at [选项] [时间] 设置指定时间执行的指定命令
-f 文件名 (file): 从指定文件而非标准输入设备获取将要执行的命令
-l (list): 显示等待执行的调度作业
-d (delete):删除指定的调度作业
进程开始执行的时间可采用以下方法表示:
(1)绝对计时法
HH:MM:即时:分钟,可采用24小时计时制。如果采用12小时计时制,则时间后面需加上AM或PM。
MMDDYY或MM/DD/YY或DD.MM.YY:指定具体的日期,必须写在具体时间之后。
(2)相对计时法
now+时间间隔:时间单位为minutes、hours、day、week。
(3)直接计时法
today、tomorrow、midnight、noon、teatime(下午4点)。
2. batch调度
batch [选项] [时间] 与at命令几乎相同,唯一的区别是如果不指定运行时间,进程将在系统较空闲时运行。batch调度适合于时间上要求不高,但运行时占用系统资源较多的工作。batch命令的选项与at命令相同。
3. cron调度
at调度和batch调度中指定的命令只能执行一次。cron调度可以使命令在指定的日期和时间重复执行。cron调度与crond进程、crontab命令和crontab配置文件有关。
(1)crontab配置文件
字段 |
分钟 |
时 |
日期 |
月份 |
星期 |
命令 |
取值范围 |
0~59 |
0~23 |
01~31 |
01~12 |
0~6, 0为周日 |
|
所有的字段不能为空,字段之间用空格分开,如果不指定字段内容,则使用“*”符号。
可以使用“-”符号表示一段时间。如果在日期栏中输入“1-5”则表示每个月前5天每天都要执行该命令。
可以使用“,”符号来表示指定的时间。如果在日期栏中输入“5,15,25”则表示每个月的5日、15日和25日都要执行该命令。
如果执行的命令未使用输出重定向,那么系统将会把执行结果以邮件的方式发送给crontab文件的所有者。
用户的crontab配置文件保存于/var/spool/cron目录中,其文件名与用户名相同。
crontab命令
crontab [选项] 维护用户的corntab配置文件
-e (edit):创建并编辑crontab配置文件
-l (list):显示crontab配置文件的内容
-r (erase):删除crontab配置文件
实施系统监视的Shell命令
1. who命令
who [选项] 查看当前已登录的所有用户
-m:显示当前用户的用户名
-H (heading):显示用户的详细信息
2. top命令
top [-d 秒数] 动态显示CPU利用率、内存利用率和进程状态等相关信息,是目前使用最广泛的实时系统性能监视程序。默认每5秒更新显示信息,而“-d 秒数”选项可指定刷新频率。
top命令默认按照进程的CPU使用率排列所有的进程。按【M】键将按照内存使用率排列所有进程,按【T】键将按照进程的执行时间排列所有进程,而按【P】键将恢复按照CPU使用率排列素有进程。最后按【Ctrl+C】组合键或者【q】键结束top命令。
3. free命令
free [选项] 显示内存和交换分区的相关信息
-m:以MB为单位显示,默认以KB为单位
-t (total):增加显示内存和交换分区的总和信息
-s 秒数 (second):指定动态显示时的刷新频率
系统日志管理
系统日志文件都保存于/var/log目录中,包括以下重要的日志文件:
boot.log 记录系统引导的相关信息
cron 记录cron调度的执行情况
dmesg 记录内核启动时的信息,主要包括硬件和文件系统的启动信息
maillog 记录邮件服务器的相关信息
messages 记录系统运行过程的相关信息,包括I/O,网络等
rpmpkgs 记录已安装的RPM软件包信息
secure 记录系统安全信息
Xorg.0.log 记录图形化用户界面的Xorg服务器的相关信息