【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

相关推荐
滴水之功40 分钟前
VMware OpenWrt怎么桥接模式联网
linux·openwrt
ldinvicible1 小时前
How to run Flutter on an Embedded Device
linux
OopspoO1 小时前
qcow2镜像大小压缩
学习·性能优化
A懿轩A2 小时前
C/C++ 数据结构与算法【栈和队列】 栈+队列详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·栈和队列
居居飒2 小时前
Android学习(四)-Kotlin编程语言-for循环
android·学习·kotlin
YRr YRr2 小时前
解决Ubuntu 20.04上编译OpenCV 3.2时遇到的stdlib.h缺失错误
linux·opencv·ubuntu
认真学习的小雅兰.2 小时前
如何在Ubuntu上利用Docker和Cpolar实现Excalidraw公网访问高效绘图——“cpolar内网穿透”
linux·ubuntu·docker
zhou周大哥2 小时前
linux 安装 ffmpeg 视频转换
linux·运维·服务器
kkflash32 小时前
提升专业素养的实用指南
学习·职场和发展
Hejjon2 小时前
SpringBoot 整合 SQLite 数据库
笔记