【Linux】-学习笔记03

第十一章-管理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

相关推荐
zbyyd5 分钟前
Linux 进程管理详解:从概念到实战
linux·运维·服务器
我命由我1234534 分钟前
人脸识别 - 勒克斯(光线照射到物体表面上的明亮程度)
android·java·学习·java-ee·人脸识别·学习方法·android runtime
薛定猫AI1 小时前
OpenAI Codex本地完整配置教程|(Windows/Mac/Linux全平台,修复鉴权报错)
linux·windows·macos
乐橙开放平台2 小时前
养老 SaaS 笔记:setMessageCallback 事件桥接 + msgType 映射 P0/P1,先 ACK 再分流值班流
笔记·物联网·音视频·智能家居
Logintern092 小时前
【每天学习一点点】MPI是什么?
学习·mpi·多机训练
fengci.2 小时前
提示词注入学习小结
学习
晓梦林2 小时前
Tools2靶场学习笔记
笔记·学习
躺不平的理查德2 小时前
OpenSSL 的异步 TLS 1.3 加密
linux·运维·服务器
tedcloud1232 小时前
Awesome DSH Plugin 怎么用?给 DeepSeek Harness 搭建自己的插件生态
大数据·linux·服务器·人工智能·音视频