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命令结尾加上“&”符号相似。

  1. 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服务器的相关信息