阶段三:Linux基础_包、服务、进程相关命令

1. 软件包管理

1.1 软件包介绍

这个就是Windows系统下的软件安装包(Python软件的安装程序)。Linux下也有很多可以安装的软件,而这些软件的安装包可细分为两种,分别是源码包二进制包

软件都是由开发工程师(程序猿)开发而来的。

软件 => 开发阶段 => 源码(.c/.java)=> 编译过程(gcc => 开发工具) => (.exe/.msi)

Linux系统信奉“开源”,开放源代码。 Apache社区: 全球最大的开源社区  www.apache.com

nginx.tar.gz  =>  源码包

安装比较复杂,需要经过配置、编译、安装过程。

注意事项:

软件 => 开发阶段 => 源码(.c/.java)=> 编译过程(gcc => 开发工具) => (.exe/.msi) 二进制软件包(Linux中的软件包格式为.rpm)

不同的操作系统,二进制包的类型会有所不同。CentOS系列 => *.rpm,Debian => *.deb

注意事项:

1.2 包管理工具

在 CentOS Stream 9 中,dnfrpm 是协同工作的包管理工具,但它们的功能和定位有所不同:

在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

注意事项:

1.2.2 dnf包管理操作

1.2.2.1 dnf的仓库说明

仓库(Repository)是存放软件包的地方,dnf 使用仓库来管理软件的安装、更新和删除。

仓库包含多个软件包,并可以有不同的源,例如官方仓库、第三方仓库等。

为什么需要仓库?

仓库的分类:

  以 EPEL 仓库为例,如何添加第三方仓库
  dnf install epel-release

注意事项:

  dnf repolist all

注意事项:

  禁用仓库:
  dnf config-manager --set-disabled repo_name
  
  启用仓库:
  dnf config-manager --set-enabled repo_name

注意事项:

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

命令作用:

执行结果:

关键参数:

注意事项:

如何测试连接外网是否通畅:


**注意事项:**



关键参数:

注意事项:

命令说明:

ubuntu方案:


**注意事项:**




什么是进程概念:

> 
> 
> 


常用组合说明输出结果


--forest以树状结构显示当前用户的进程

查询指定的进程是否存在:

注意事项:

常用组合说明

选项说明
-t显示 TCP 端口
-u显示 UDP 端口
-l显示监听中的端口
-p显示使用端口的进程信息
-n以数字形式显示地址和端口(不解析主机名和服务名)
-a显示所有端口(监听和非监听)

常用组合:

常用组合说明

输出示例:

本文由飞书云文档同步生成。涉及命令、SQL、配置示例时,请以飞书源文档和实际环境执行结果为准。