当前位置: 首页 > article >正文

【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 


http://www.kler.cn/a/395031.html

相关文章:

  • Naive UI 多选框自定义tag和label
  • 远程控制macOS一直卡在100%,能连接上了却只显示了壁纸?
  • docker 部署win系统
  • Linux 中的 cat 命令:使用、原理与源码解析
  • img向后端获取图片时怎么解决需携带token的问题
  • 【C++读写.xlsx文件】OpenXLSX开源库在 Ubuntu 18.04 的编译、交叉编译与使用教程
  • 【LangChain系列7】【LangChain实战—客服机器人项目】
  • Javascript中的深浅拷贝以及实现方法
  • CSS 语法规范
  • 【卷积神经网络】
  • 关于k8s中镜像的服务端口被拒绝的问题
  • ubuntu20.04 colmap 安装2024.11最新
  • Redis环境部署(主从模式、哨兵模式、集群模式)
  • 在Docker环境下为Nginx配置HTTPS
  • Java结合ElasticSearch根据查询关键字,高亮显示全文数据。
  • 20241114软考架构-------软考案例15答案
  • MQ集群
  • Intellij idea 报错:Error : java 不支持发行版本5
  • 华为数字化转型的本质为何是管理变革
  • PostgreSql - 字符串函数
  • 综合文化信息管理系统|基于java和小程序的综合文化信息管理系统设计与实现(源码+数据库+文档)
  • 双层for循环嵌套式(day12)
  • Docker构建禅道项目管理系统
  • 【Electron】总结:如何创建Electron+Element Plus的项目
  • 游戏引擎中LOD渲染技术
  • NeurIPS2024论文分享┆HyperPrism:一种针对非独立同分布数据和时变通信链路的分布式机器学习自适应非线性聚合框架