RHCSA Linux系统软件管理和进程管理
1. RPM管理工具
(1)简介
① 包名格式
软件名 - 主版本 - 次版本 - 修订号 - 软件发布次数 - 发行商 - CPU架构平台 - 支持系统位数.rpm
eg: zsh - 5.0.2 - 14.el7.x86_64.rpm
② 相关网站
http://rpmfind.net/, http://rpm.pbone.net/
(2)安装软件
① 本地安装
[root@localhost ~]#rpm - ivh 安装包名
② 网络安装
[root@localhost ~]#wget 下载链接
[root@localhost ~]#rpm - ivh 下载后的包名
③参数说明:
-i 安装
-v 显示详细安装信息
-h 显示哈希标记
-e 卸载
--nodeps 不验证依赖
(3)查询软件
① 查询所有已安装软件名
[root@localhost ~]#rpm - qa
② 显示已安装软件包的相关文件列表和信息
[root@localhost ~]#rpm - ql 软件包名
③ 查询文件所属的软件包
[root@localhost ~]#rpm - qf 文件路径
④ 显示已安装rpm软件包的信息
[root@localhost ~]#rpm - qi 软件包名
(4)卸载软件包
[root@localhost ~]#rpm - evh 软件包名
2. YUM/DNF管理工具
(1)简介
① 功能
可在线下载、安装、卸载、升级rpm软件包,自动查找并解决rpm包之间的依赖关系
② 工作原理
系统通过读取/etc/yum.repos.d/目录下的.repo结尾文件,获取软件仓库信息及地址
(2)使用yum安装软件包
① 方法1:本地源
[root@localhost ~]#mount /dev/sr0 /mnt #挂载
[root@localhost ~]#vim /etc/yum.repos.d/xixi.repo
[ku01]
name = base # 定义仓库的显示名称
baseurl = /mnt/BaseOS # 指定软件包所在路径
gpgcheck = 0 # 表示不进行软件包签名的校验
enable = 1 # 表示启用该仓库
[ku02]
name = app
baseurl = /mnt/AppStream
gpgcheck = 0
enable = 1
[root@localhost ~]#yum install lrzsz
② 方法2:网络源
[root@localhost ~]#vim /etc/yum.repos.d/xixi.repo( 必须以此结尾.repo)
[ku01]
name = base
baseurl=https://mirrors.163.com/rocky/19.4/BaseOS/x86_64/os/ #仓库地址
enable = 1
gpgpgcheck = 0 #是否校验软件签名
[ku02]
name = app
baseurl=https://mirrors.163.com/rocky/19.4/AppStream/x86_64/os/
enable = 1
pgpgcheck = 0
[root@localhost ~]#yum install httpd -y
❗❗❗注
0:仓库Id
1:仓库名字
2:仓库在哪
3:校验仓库里的软件是否来源合法
4:启用仓库
(3)软件管理操作
① 查看信息
[root@localhost ~]#yum repolist:查看系统中yum源配置信息
[root@localhost ~]#yum list available:列出仓库所有可安装软件包
[root@localhost ~]#yum list installed:列出已安装及所有或指定的rpm包
[root@localhost ~]#yum info 包名:查看指定软件包详细信息
[root@localhost ~]#yum group list:查看仓库所有组信息
[root@localhost ~]#yum groupinfo 包组名:查看指定包组更详细信息
② 安装软件
[root@localhost ~]#yum install [-y] 包名:安装指定软件包
[root@localhost ~]# yum update [-y] 包名:升级指定软件包或系统中所有已安装软件包
[root@localhost ~]#yum group install 包组名:安装指定包组里所有包
③ 卸载软件
[root@localhost ~]#yum remove [-y] 包名:卸载指定软件包
④ 查询软件
[root@localhost ~]#yum provides 文件名:查找指定文件属于哪个包
[root@localhost ~]#yum whatprovides /etc/fstab:查看文件由哪个包提供
[root@localhost ~]#yum search 模糊包名:查看模糊包名的软件包
⑤ 清楚缓存
[root@localhost ~]#yum clean packages all:清除下载到本机指定或所有软件包的yum源缓存
3. 源代码编译
(1)优点
① 能获取软件最新版,及时修复bug
② 可按需重新配置软件,添加新功能
(2)编译前准备
确认系统安装了支持C/C++语言的编译器,如安装gcc:[root@localhost ~]# yum install gcc
(3)安装步骤
① 下载软件包:从官网等渠道获取软件源代码包
② 解压到指定目录:
tar -xf 软件包名.tar.gz
cd 解压后的目录
③ 配置
./configure 检测环境并配置编译参数
④ 编译
make 依据Makefile进行编译
exit
⑤ 安装
make install 命令将软件安装到系统中
(4)测试安装
wget www.baidu.com
4. 进程管理
(1)基本概念
① 程序:存储在硬盘上的二进制文件,如/bin/ls
② 进程:已启动的可执行程序的运行实例,是程序的一次执行过程
③ 线程:进程中可独立执行的最小单位,一个进程可包含多个线程,线程共享进程资源
(2)进程特性
① 并发性:多个进程可在一段时间内交替执行
② 独立性:进程间相互独立,有各自的资源和运行空间
③ 异步性:进程执行速度不可预知,按各自速度推进
(3)线程特点
① 开销小,创建和切换速度快
② 可执行不同任务,提高程序执行效率
(4)进程分类
① 按运行主体
➤系统进程:由系统内核启动,承担内存资源分配等管理工作,不受用户干预
➤用户进程:由用户启动,如应用程序,在用户控制下运行
② 按运行方式
➤交互进程:由shell启动,运行中需与用户交互,如命令行程序
➤批处理进程:按顺序依次执行一系列任务,无需用户交互
➤守护进程:在后台周期性执行任务或等待特定事件,如Web服务器
③ 按隶属关系
➤父进程:创建其他进程的进程
➤子进程:被父进程创建的进程
④ 按运行环境
➤前台进程:在控制台占用命令行,运行期间独占控制台
➤后台进程:在后台运行,不占用控制台,可使用&符号将命令放后台执行
5. 查看进程
(1)PS命令
① 常用参数组合及作用
➤ps-l:以长格显示当前用户的进程,展示进程状态、优先级等信息
➤ps -le:长格式显示系统中所有进程,包含系统进程和用户进程
➤ps aux:显示所有用户的进程,包含CPU使用率、内存使用率等详细信息
② 输出字段含义
PID:进程ID
%CPU:CPU使用率
%MEM:内存使用率
STAT:进程状态(如R运行,S睡眠,D不可中断睡眠等)
START:进程启动时间
TIME:进程累计运行时间
COMMAND:启动进程的命令
(2)pstree命令
① 功能:以树状结构显示进程间的父子进程关系,便于查看进程家族树
② 常用选项
-p:显示每个进程的PID
(3)top命令
① 功能:动态实时查看系统中进程的状态,包括CPU、内存等资源使用情况
② 常用快捷键及功能
- d:设置刷新间隔时间
- n:按进程名称排序
- P:按CPU使用率排序
- M:按内存使用率排序
③ 输出信息解读
➤统计信息区:包括系统运行时间、用户数、负载平均值等系统总体信息
➤进程信息区:显示各进程PID、用户、CPU使用率、内存使用率等详细信息
6. 信号控制进程
(1)常用信号及作用
➤SIGHUP(1):重新加载配置文件,常用于让守护进程重新读取其配置
➤SIGINT(2):键盘中断信号,相当于Ctrl+C,用于终止正在运行的前台进程
➤SIGKILL(9):强行终止信号,无法被进程捕获或忽略,用于强行结束无响应进程
➤SIGTERM(15):正常终止信号,进程可捕获并进行清理工作后退出
➤SIGSTOP(19):暂停进程执行,可使用SIGCONT信号恢复
(2)发送信号命令
kill - 信号编号 进程PID
eg: kill -9 1134,强制终止PID为1134的进程
7. 作业控制
(1)作业相关概念
一个shell会话中可同时运行和管理多个作业,作业是正在运行的进程或进程组
(2)作业控制命令
前后台切换
➤&:将命令放入后台运行,如sleep 100 &
➤Ctrl+z:将前台作业暂停并放到后台
➤jobs:查看当前shell会话中的所有作业及其状态
➤fg %作业编号:将指定编号的后台作业调至前台运行
➤bg %作业编号:将指定编号的后台暂停作业恢复到后台继续运行
❗❗❗ 在后台运行的命令,如果有输出信息,可使用输出重定向(如>文件名)将输出保存到文件,避免信息在前台显示