阶段三:Linux基础_包、服务、进程相关命令
1. 软件包管理
1.1 软件包介绍
这个就是Windows系统下的软件安装包(Python软件的安装程序)。Linux下也有很多可以安装的软件,而这些软件的安装包可细分为两种,分别是源码包和二进制包。
- 源码包:
软件都是由开发工程师(程序猿)开发而来的。
软件 => 开发阶段 => 源码(.c/.java)=> 编译过程(gcc => 开发工具) => (.exe/.msi)
Linux系统信奉“开源”,开放源代码。 Apache社区: 全球最大的开源社区 www.apache.com
nginx.tar.gz => 源码包
安装比较复杂,需要经过配置、编译、安装过程。注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
软件 => 开发阶段 => 源码(.c/.java)=> 编译过程(gcc => 开发工具) => (.exe/.msi) 二进制软件包(Linux中的软件包格式为.rpm)
不同的操作系统,二进制包的类型会有所不同。CentOS系列 => *.rpm,Debian => *.deb注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
1.2 包管理工具
在 CentOS Stream 9 中,dnf 和 rpm 是协同工作的包管理工具,但它们的功能和定位有所不同:
dnf是高级包管理工具,负责解决依赖关系、从仓库下载软件包并进行安装、更新或删除操作。它是用户管理软件包的主要接口。可以网络的情况下(内网或外网)
rpm是底层工具,用于直接处理 RPM 软件包文件(安装、查询、卸载等),不处理依赖关系。它更多地用于系统维护或特定情况下的手动操作。无法连接外部网络, 而且内部环境中也没有对应安装包能够直接安装情况
在Ubuntu Server操作系统中, dpkg 和 apt 是协同工作的包管理工具, dpkg类似于centos stream 9的rpm包管理工具, apt则类似于centos stream 9的dnf包管理工具
1.2.1 rpm包管理操作
格式:rpm [选项]
选项:整体了解即可 无需要特别关注, 主要记忆常用的组合
| 选项 | 说明 |
|---|---|
| -a | 查询所有套件 |
| -c | 只列出组态配置文件,本参数需配合"-l"参数使用 |
| -d | 只列出文本文件,本参数需配合"-l"参数使用 |
| -e或--erase | 删除指定的套件 |
| -f+ | 查询拥有指定文件的套件 |
| -h或--hash | 套件安装时列出标记 |
| -i | 显示套件的相关信息 |
| -i或--install | 安装指定的套件档 |
| -l | 显示套件的文件列表 |
| -p+ | 查询指定的RPM套件档 |
| -q | 使用询问模式,当遇到任何问题时,rpm指令会先询问用户 |
| -R | 显示套件的关联性信息 |
| -s | 显示文件状态,本参数需配合"-l"参数使用 |
| -U或--upgrade | 升级指定的套件档 |
| -v | 显示指令执行过程 |
| -vv | 详细显示指令执行过程,便于排错 |
| --force | 强制安装 |
| --nodeps | 强制卸载,不考虑软件的依赖关系 |
常用组合说明:
# 安装 【重点】
$ rpm -ivh rpm包
# 强制安装 【重点】
$ rpm --force -ivh rpm包
# 卸载
$ rpm -e proftpd-1.2.8
$ rpm -e proftpd-1.2.8 --nodeps 【重点】
--nodeps:强制卸载,不考虑软件的依赖关系
# 列出所有安装过的包
$ rpm -qa
$ rpm -qa | grep sql 【重点】
# rpm包中的文件安装到那里
$ rpm -ql ***.rpm
# 某个程序是哪个软件包安装
$ rpm -qf `which 程序名` # 返回软件包的全名
$ rpm -qif `which 程序名` # 返回软件包的有关信息
$ rpm -qlf `which 程序名` # 返回软件包的文件列表案例:
需求一: 尝试通过rpm包安装wget命令: 在今日资料中,提供了一个wget命令的rpm包
rpm -ivh wget-1.21.1-8.el9.x86_64.rpm
或
rpm -ivh --force wget-1.21.1-8.el9.x86_64.rpm
需求二: 查看所有安装过的包
rpm -qa
需求三: 从所有安装过的包中筛选出wget包
rpm -qa | grep wget
需求四: 卸载wget命令
rpm -e wget
或
rpm -e wget --nodeps注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
1.2.2 dnf包管理操作
1.2.2.1 dnf的仓库说明
仓库(Repository)是存放软件包的地方,dnf 使用仓库来管理软件的安装、更新和删除。
仓库包含多个软件包,并可以有不同的源,例如官方仓库、第三方仓库等。
为什么需要仓库?
- 提供软件包的集中管理。
- 处理软件包的依赖关系,确保系统的一致性。
仓库的分类:
- 默认仓库: CentOS 配置了多个默认仓库:
BaseOS、AppStream和Extras
dnf自动使用这些仓库来查找和安装软件包。
- 如何查看当前系统配置的仓库: dnf repolist
- 添加和管理第三方仓库: 有时需要安装
dnf默认仓库中没有的软件包,可以通过添加第三方仓库来解决
- 如何添加呢?
以 EPEL 仓库为例,如何添加第三方仓库
dnf install epel-release注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
dnf repolist all注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
禁用仓库:
dnf config-manager --set-disabled repo_name
启用仓库:
dnf config-manager --set-enabled repo_name注意事项:
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
1.2.2.2 dnf命令相关操作
格式: dnf [选项]
选项:整体了解即可 无需要特别关注, 主要记忆常用的组合
类型选项说明 安装/更新/删除相关install <package>安装指定软件包及其依赖 update <package>更新指定软件包(不写软件包则更新所有可更新的软件包) remove <package>卸载指定软件包及其依赖 reinstall <package>重新安装已安装的软件包 查询相关list <package>列出已安装或可用的软件包 info <package>显示软件包的详细信息 search <keyword>根据关键词搜索可用的软件包 provides <file>查找提供某文件的包 系统操作 可以清理安装包以及对软件可以进行更新check-update检查系统可用更新 updateinfo查看安全更新和其他更新信息 autoremove清除未使用的依赖包 clean all清理缓存(如元数据、临时文件等) 存储库相关repolist列出已启用的仓库 repoquery <package>查询仓库中某软件包的信息 调试和高级功能history查看或回滚历史操作 downgrade <package>降级到软件包的低版本 group list列出软件包组 makecache生成本地缓存
**注意事项:**
- 修改配置前先备份原文件,尤其是 SSH、Nginx、数据库和 Kubernetes 生产配置。
# 安装 `httpd`(Apache)服务
dnf -y install httpd
# 更新所有软件包
dnf update
# 删除软件包
dnf remove
# 查看可用更新
dnf check-update
# 搜索包含关键字的软件包
dnf search
# 清理缓存
dnf clean all
# 实用组合
# 更新系统所有包并清理缓存:
dnf update && dnf clean all
# 查询某文件属于哪个软件包:
dnf provides /usr/bin/vim命令作用:
- 使用
dnf包管理器执行-y操作,对软件包进行安装、更新、删除或查询。
- 使用
dnf包管理器执行update操作,对软件包进行安装、更新、删除或查询。
- 使用
dnf包管理器执行remove操作,对软件包进行安装、更新、删除或查询。
- 使用
dnf包管理器执行check-update操作,对软件包进行安装、更新、删除或查询。
- 使用
dnf包管理器执行search操作,对软件包进行安装、更新、删除或查询。
- 使用
dnf包管理器执行clean操作,对软件包进行安装、更新、删除或查询。
- 使用
dnf包管理器执行provides操作,对软件包进行安装、更新、删除或查询。
执行结果:
- 成功后软件包会按指定动作完成安装、更新、删除或查询;失败时检查仓库、网络和权限。
关键参数:
注意事项:
如何测试连接外网是否通畅:
**注意事项:**
关键参数:
注意事项:
命令说明:
ubuntu方案:
**注意事项:**
什么是进程概念:
>
>
>
常用组合说明输出结果
--forest以树状结构显示当前用户的进程
查询指定的进程是否存在:注意事项:
常用组合说明
| 选项 | 说明 |
|---|---|
| -t | 显示 TCP 端口 |
| -u | 显示 UDP 端口 |
| -l | 显示监听中的端口 |
| -p | 显示使用端口的进程信息 |
| -n | 以数字形式显示地址和端口(不解析主机名和服务名) |
| -a | 显示所有端口(监听和非监听) |
常用组合:
| 常用组合 | 说明 |
|---|
输出示例:
本文由飞书云文档同步生成。涉及命令、SQL、配置示例时,请以飞书源文档和实际环境执行结果为准。