第十一章-管理Linux软件包和进程
1.源码下载安装软件
1.1概念
源码文件:程序编写者使用C或C++等语言编写的原始代码文本文件
源码文件使用.tar.gz或.tar.bz2打包成压缩文件
1.2特点
源码包可移植性好,与待安装软件的工作环境依赖性不大
由于有编译过程,其代码运行效率较高,是针对当前使用者环境的“量体裁衣”
安装功能可以定制,可以选择需要的功能进行安装
卸载方便,只需删除对应安装目录即可,没有Windows“注册表”的概念
安装过程较为麻烦
1.3安装过程
下载解压缩源码压缩包
分析安装软件环境
编译软件
安装软件
2.安装QQ
2.1方法一(rpm)
首先要具备网络环境
通过wget来获取rpm包
接着下载
rpm -ivh QQ_3.2.13_241104_x86_64_01.rpm
发现需要libXScrnSaver依赖
我们接着下载依赖
wget https://mirrors.aliyun.com/rockylinux/9.4/devel/x86_64/os/Packages/l/libXScrnSaver-1.2.3-10.el9.x86_64.rpm
将依赖下载好
此时下载qq
成功下载
2.2方法二(软件仓库)
配置软件仓库
首先挂载光驱到/dev/cdrom目录下
mkdir /rhel9 //提供一个特定的挂载点
mount /dev/cdrom /rhel9/ //将光盘设备(/dev/cdrom)挂载到刚刚创建的 “/rhel9” 目录下。这样 就可以访问光盘中的内容,例如安装软件、读取文档等。
echo mount /dev/cdrom /rhel9/ >> /etc/rc.d/rc.loacl //将 “mount /dev/cdrom/rhel9/” 这个命令追加到 “/etc/rc.d/rc.local” 文件中。“/etc/rc.d/rc.local” 是一个在系统启动时会被执行的脚本文件。通过将挂载命令添加到这个文件中,可以确保在系统每次启动时自动挂载光盘到 “/rhel9” 目录。
chmod +x /etc/rc.d/rc/local //为 “/etc/rc.d/rc.local” 文件添加可执行权限。这样系统在启动时才能正确执行这个文件中的命令。如果没有可执行权限,文件中的命令将不会被执行。
在该目录下(/etc/yum.repos.d/)进行软件仓库的配置
配置内容如下所示:
保存退出即可
配置好软件仓库后,利用dnf下载即可
3.RPM管理工具
3.1概念
RPM(Redhat Package Manager)由Red Hat公司提出的一种软件包管理标准
是Linux各发行版中应用最广泛的软件包格式之一(还有debian的发行版deb安装包)。
产生原因:软件制作者在其工作环境下将软件编译完毕后再进行发布,以此减少安装编译时间,要
求:软件安装环境与编译时的环境要相同。
3.2RPM安装软件要求
软件安装环境必须与打包软件环境一致
必须满足软件依赖性
软件卸载时必须小心,最底层软件不能先卸载
3.3rpm软件包命名格式
含义:软件名-版本号-发行号.操作系统版本.硬件平台的类型.rpm
如:zsh-5.0.2-14.el7.x86_64.rpm
3.4 rpm软件安装
1.格式
rpm -参数 软件包名
2.参数
参数 | 说明 |
-i, --install | 安装软件包 |
--nodeps | 不验证软件包依赖 |
--force | 安装时提示已安装则重新覆盖安装 |
-v, --verbose | 提供更多的详细信息输出 |
-U | 软件包升级 |
-e | 软件包卸载 |
3.5 rpm查询功能
1.格式
rpm –q 包名
# -q常与下面参数组合使用
2.参数
参数 | 说明 |
-a | 查询所有已安装的软件包 |
-l | 显示已安装软件包的相关文件列表和信息 |
-f | 查询文件所属软件包 |
-i | 显示已经安装的rpm软件包信息 |
3.示例
rpm -qa
rpm -ql
rpm -qf
rpm -qi
4.进程管理
4.1概念
程序: 二进制文件,文件存储在磁盘中,例如/usr/bin/目录下
进程:进程是已启动的可执行程序的运行实例
进程和程序并不是一一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
线程:是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单
位。一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行
执行不同的任务。
一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才
能被执行。
4.2进程分类
5.查看进程
5.1ps命令
1.作用
ps显示某个时间点的程序运行情况
2.格式
ps -参数
3.参数
4.示例
ps -a
ps -u
ps a
ps x
表示要输出进程的 CPU 使用率(%cpu
)、内存使用率(%mem
)和对应的命令(command
)这三个信息
ps ax
表示显示所有进程(包括其他用户的进程)的信息。--sort +%mem
是按照内存使用率(%mem
)进行升序排序。-o %cpu,pid
则是指定输出格式为 CPU 使用率(%cpu
)和进程 ID(pid
)。
5.2top命令
1.格式
top [-d 数字] | [-bnp]
2.参数
-d:后面可以接秒数,就是整个进程界面更新的秒数,默认是5秒
-b:以批次的方式执行top,还有更多的参数可用。通常会搭配数据流重定向来将批处理的结果输出为文件。
-n:与-b搭配,进行几次top的输出结果
-i:不显示闲置或者僵死的进程信息
-c:显示进程的整个命令路径,而不是只显示命令名称
-s:使top命令在安全模式下运行,此时top的交互式指令被取消,避免潜在危险
-p:指定某些个PID来进行查看检测
3.示例
top -d
统计信息区:
第一行
top - 17:24:08 up 17 min, 4 users, load average: 0.00, 0.00, 0.00
解释:
17:24:08表示当前系统时间;
up 17 min表示系统已经启动17分钟;
4 users表示当前登录系统的用户数;
load average:0.00, 0.00, 0.00表示系统1分钟、5分钟、15分钟前到现在的平均负载(如果是1表示满负载)
第二行
Tasks: 304 total, 1 running, 303 sleeping, 0 stopped, 0 zombie
解释:
304 total进程的总数
1 running正在运行的进程数
303 sleeping处于休眠状态的进程数
0 stopped停止的进程数
0 zombie僵死的进程数
第三行
%Cpu(s): 0.0 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.2 hi, 0.1 si, 0.0 st
解释:
0.0 us表示用户进程占用CPU的百分比
0.1 sy系统进程占用CPU的百分比;
0.0 ni用户进程空间内改变过优先级的进程占用CPU的百分比
99.6 id空闲CPU占用的百分比
0.0 wa代表I/Owait表示等待输入、输出的进程占用CPU的百分比;
0.2 hi表示cpu服务于硬件中断所耗费的时间总额
0.1 si表示cpu服务于软件中断所耗费的时间总额;
0.0 st表示虚拟机被hypervisor偷去的cpu时间
另外,如果是多内核设备,可按下数字键“1”来切换成不同cpu的负载率。
第四五行
MiB Mem : 3627.2 total, 1844.6 free, 1306.6 used, 729.4 buff/cache
MiB Swap: 4012.0 total, 4012.0 free, 0.0 used. 2320.6 avail Mem
total系统的内存大小
free目前空余内存大小
used已经使用的内存大小
进程信息区:
PID:进程的id
USER:进程所有者的用户名
PR:进程优先级
NI:nice值。负值表示高优先级,正值表示低优先级
VIRT:进程使用的虚拟内存总量,单位为KB
RES:进程使用的、未被换出的物理内存大小,单位KB
SHR:共享内存大小,单位KB
S:进程状态,D表示不可中断的睡眠状态,R表示运行状态,S表示睡眠状态,T表示跟踪/停止,Z表示僵
死进程
%CPU:上次更新到现在的CPU时间占用百分比
%MEM:进程占用的物理内存百分比
TIME+:进程总计使用的CPU时间,单位为1/100秒
COMMAND:正在运行进程的命令名或者命令路径
top -c
top -p
6.kill命令
6.1作用
强制结束进程
6.2格式
killall #进程的名字
kill #进程的id
killall
kill