包管理-dnf-yum / yum 📦 — RHEL/CentOS 包管理

作用

dnf(Dandified YUM)是 Fedora/RHEL 8+ 的现代包管理工具,yum 的下一代替代品。yum(Yellowdog Updater Modified)是 RHEL/CentOS 7 的传统包管理工具。两者用法高度兼容,负责解决 RPM 依赖关系。

dnf(RHEL 8+/Fedora)

1
dnf [选项] 操作 [包名]

install 安装;remove 卸载;update 升级;search 搜索;info 查看信息;list installed 已安装列表;reinstall 重新安装;history 操作历史;groupinstall 安装包组。-y 自动确认。

yum(RHEL 7/CentOS 7)

1
yum [选项] 操作 [包名]

操作与 dnf 基本相同:installremoveupdatesearchinfolist installed 等。yum install -y nginx 静默安装。yum grouplist 查看包组。

常用参数

参数 说明
install 包 安装
remove 包 卸载
update 升级
search 包 搜索
info 包 包信息
list installed 已安装列表
-y 自动确认

示例

1
2
3
4
5
6
7
sudo dnf install nginx              # 安装 nginx 包
sudo dnf remove nginx # 卸载 nginx 包
sudo dnf update # 升级所有包
dnf search nginx # 搜索 nginx 相关包
dnf info nginx # 查看 nginx 包信息
dnf list installed # 列出已安装的包
sudo yum install -y nginx # yum 静默安装 nginx

来源:菜鸟教程

🔗 相关文档

包管理-rpm | snap-flatpak

包管理-dpkg 📦 — Debian 包管理器

作用

dpkg(debian package)是 Debian/Ubuntu 系统底层包管理工具,直接操作 .deb 包文件。aptapt-get 上层工具底层调用 dpkg 完成安装和卸载。用于手动安装 .deb 文件或查询已安装包的状态。

语法

1
dpkg [选项] [操作] [包文件或包名]

用法

dpkg 常用操作:-I 包.DEB 查看包信息;-L 包名 列出包安装的文件;-S 路径 查找文件属于哪个包;-i 包.DEB 安装(--install);-r 包名 卸载(保留配置,需传入包名而非 .deb 文件);-P 包名 完全卸载(--purge);-l 列出已安装包。解决依赖问题需借助 apt(如 apt install -f 修复依赖)。

常用参数

参数 说明
-I 包.DEB 查看包信息
-L 包名 列出包文件
-S 路径 查找属主包
-i 包.DEB 安装包
-r 包名 卸载包(传入包名)
-P 包名 完全卸载
-l 列出已安装
--configure 重新配置

示例

1
2
3
4
5
6
7
dpkg -I PACKAGE.DEB                # 查看 .deb 包信息
dpkg -L BASH # 列出 bash 包安装的文件
dpkg -S /BIN/LS # 查找 /bin/ls 属于哪个包
dpkg -i PACKAGE.DEB # 安装 .deb 包
dpkg -r PACKAGE # 卸载包(保留配置)
dpkg -P PACKAGE # 完全卸载包(清除配置)
dpkg -l | grep nginx # 列出已安装包并过滤 nginx

来源:菜鸟教程

🔗 相关文档

包管理-apt | 包管理-apt-get | 包管理-rpm

包管理-pacman 📦 — Arch Linux 包管理

作用

pacman(package manager)是 Arch Linux 及其衍生发行版(如 Manjaro)的包管理工具,以滚动更新和简洁设计著称。管理官方仓库和 AUR(Arch User Repository)中的软件包。

语法

1
pacman [选项] 操作 [包名]

用法

pacman 使用 -S(sync)同步和安装包、-R(remove)卸载、-U 从本地文件或 URL 安装包、-Q(query)查询。常见组合:-Syu 同步源并全面升级;-S 包 安装;-Rs 包 卸载及其依赖;-Rns 包 卸载并删除配置和依赖;-Ss 关键词 搜索;-Si 包 包信息;-Qs 关键词 搜索已安装包;-Q 包 查询包;-Sc 清理缓存;-U 文件.PKG.TAR.XZ 本地安装。

常用参数

参数 说明
-Syu 全面升级
-S 包 安装包
-Rs 包 卸载及依赖
-Rns 包 完全卸载
-Ss 关键词 搜索包
-Si 包 包信息
-Qs 关键词 搜索已安装
-Sc 清理缓存

示例

1
2
3
4
5
6
7
8
sudo pacman -Syu                   # 同步源并全面升级
sudo pacman -S nginx # 安装 nginx 包
sudo pacman -Rs nginx # 卸载 nginx 及依赖
sudo pacman -Rns nginx # 完全卸载(含配置和依赖)
pacman -Ss nginx # 搜索 nginx 相关包
pacman -Si nginx # 查看 nginx 详细信息
pacman -Q nginx # 查询 nginx 是否已安装
sudo pacman -Sc # 清理包缓存

来源:菜鸟教程

🔗 相关文档

snap-flatpak | 包管理-apt

包管理-rpm 📦 — RPM 包管理器

作用

rpm(red hat package manager)是 Red Hat 系列(RHEL/CentOS/Fedora)的底层包管理工具,直接操作 .rpm 包文件。dnfyum 上层工具底层调用 rpm 完成安装和卸载。用于手动安装 .rpm 文件或查询已安装包信息。

语法

1
rpm [选项] [操作] [包文件或包名]

用法

rpm 常用操作:-i 包.RPM 安装(--install);-U 包.RPM 升级安装;-e 包名 卸载(--erase);-q 包名 查询是否安装;-qi 包名 查看包详细信息;-ql 包名 列出包安装的文件;-qf 路径 文件属于哪个包;-qa 列出所有已安装包;-V 包名 验证包完整性。安装时 -v 显示详细输出。

常用参数

参数 说明
-i 包.RPM 安装
-U 包.RPM 升级
-e 包名 卸载
-q 包名 查询
-qi 包名 详细信息
-ql 包名 列出文件
-qf 路径 文件属主
-qa 所有已安装
-V 包名 验证完整性

示例

1
2
3
4
5
6
7
8
rpm -i PACKAGE.RPM                 # 安装 .rpm 包
rpm -U PACKAGE.RPM # 升级安装 .rpm 包
rpm -e nginx # 卸载 nginx 包
rpm -q nginx # 查询 nginx 是否已安装
rpm -qi nginx # 查看 nginx 详细信息
rpm -ql nginx # 列出 nginx 安装的文件
rpm -qf /usr/bin/nginx # 查找 nginx 命令属于哪个包
rpm -qa | grep nginx # 列出所有已安装包并过滤 nginx

来源:菜鸟教程

🔗 相关文档

dnf-yum | 包管理-dpkg

包管理-snap-flatpak / flatpak 📦 — 跨发行版包管理

作用

snap(Canonical 开发)和 flatpak(由 Fedora/Red Hat 主导)是两种沙箱式跨发行版包管理框架,提供应用隔离和依赖捆绑,可在任何 Linux 发行版上运行。

snap

1
snap [操作] [包名]

Ubuntu 的沙箱式包管理框架。find 搜索;install 安装;remove 移除;list 列出已安装;refresh 更新所有 snap;revert 回退到上一版本;info 查看信息。默认从 Canonical 的 Snap Store 安装。snap 包自动更新。

flatpak

1
flatpak [操作] [包名]

跨发行版的桌面应用沙箱管理。search 搜索;install 安装(需指定远程源如 flathub);uninstall 移除;list 列出已安装;update 更新;run 运行应用。默认远程源为 flathub.org。

常用参数

参数 说明
find/search 包 搜索
install 包 安装
remove/uninstall 包 移除
list 列出已安装
refresh/update 更新
revert 包(snap) 回退版本

示例

1
2
3
4
5
6
7
8
snap find PKG                       # 搜索 snap 包
snap install PKG # 安装 snap 包
snap list # 列出已安装的 snap 包
snap refresh # 更新所有 snap 包
flatpak search PKG # 搜索 flatpak 包
flatpak install flathub org.videolan.vlc # 安装 VLC 播放器
flatpak list # 列出已安装的 flatpak 应用
flatpak update # 更新所有 flatpak 应用

来源:菜鸟教程

🔗 相关文档

包管理-apt | dnf-yum | 包管理-pacman

压缩与归档-bzip2 📦 — 文件压缩(高压缩比)

作用

bzip2 基于 Burrows-Wheeler 算法,提供比 gzip 更高的压缩比,压缩后文件以 .bz2 为扩展名。适合压缩较大的文本文件,压缩速度较慢但压缩率更高。配套工具 bunzip2 解压。

语法

1
2
bzip2 [选项] 文件名
bunzip2 [选项] 文件.bz2

用法

bzip2 压缩文件并替换原文件。-d 解压(等价于 bunzip2);-k 保留原文件;-c 输出到标准输出;-t 测试完整性;-1~-9 压缩级别(-1 最快,-9 最高压缩比,默认 -9);-v 显示详细信息;-s small 模式(降低内存使用)。常与 tar 搭配:tar -cjvf ARCHIVE.TAR.BZ2 DIR/

常用参数

参数 说明
-d 解压
-k 保留原文件
-c 输出到标准输出
-t 测试完整性
-1~-9 压缩级别
-v 详细信息
-s small 模式(降低内存使用)

示例

1
2
3
4
5
bzip2 FILE.TXT                     # 压缩为 .bz2(原文件被替换)
bzip2 -9 FILE.TXT # 最高压缩比压缩
bunzip2 FILE.TXT.BZ2 # 解压 .bz2 文件
bzip2 -k FILE.TXT # 压缩并保留原文件
bzip2 -t FILE.TXT.BZ2 # 测试压缩文件完整性

来源:菜鸟教程

Shell内置与杂项-read 🛠️ — 从标准输入读取

作用

read 从标准输入(或文件描述符)读取一行内容并赋值给变量,是 Shell 脚本中获取用户输入和解析文本文件的核心命令。

语法

1
read [选项] 变量名...

用法

read 将输入行按 IFS(Internal Field Separator)分割后赋值给变量,多余的合并到最后一个变量。-p "提示" 显示提示信息;-s 静默模式(不回显,适合密码输入);-t 秒 设置超时;-n 字符数 精确读取 N 个字符后返回;-a 数组名 读取到数组;-d 分隔符 自定义分隔符;-r 原始模式(不处理转义字符)。

常用参数

参数 说明
-p "提示" 显示提示信息
-s 静默模式
-t 秒 超时时间
-n 数 读取字符数
-a 数组 读取到数组
-d 分隔符 自定义分隔符
-r 原始模式

示例

1
2
3
4
5
read -p "ENTER NAME: " NAME         # 带提示读取输入
read -s -p "PASSWORD: " PASS # 静默模式读取密码
read -t 5 -p "INPUT (5S): " DATA # 设置 5 秒超时
read -a ARR <<< "A B C" # 读取到数组
read -r LINE # 原始模式读取(不处理转义)

来源:菜鸟教程

🔗 相关文档

Shell内置与杂项-echo | Shell内置与杂项-test | Shell内置与杂项-source

Shell内置与杂项-set-unset / unset 🛠️ — Shell 选项与变量

作用

set 设置或取消 Shell 选项和位置参数,查看所有 Shell 变量。unset 删除变量或函数。两者都是 Shell 内置命令,用于控制 Shell 行为和变量管理。

set

1
set [选项] [参数...]

不加参数列出所有 Shell 变量和函数。常用选项:-eerrexit)出错立即退出脚本;-xxtrace)调试模式(显示每行命令);-unounset)使用未定义变量时报错;-o pipefail 管道中任一命令失败返回非零。用 + 关闭选项:set +e 关闭 -e

unset

1
unset [选项] 变量或函数

删除 Shell 变量或函数。-v 删除变量(默认);-f 删除函数。不可删除只读变量(readonly)。

常用参数

参数(set) 说明
-e 出错立即退出
-x 调试模式
-u 未定义变量报错
-o pipefail 管道失败检测

示例

1
2
3
4
5
set -ex                             # 启用调试模式 + 出错退出
set -u # 使用未定义变量时报错
set +e # 关闭出错退出
unset MY_VAR # 删除变量
unset -f MY_FUNCTION # 删除函数

来源:菜鸟教程

🔗 相关文档

系统管理-export | Shell内置与杂项-source | eval-trap-shift

Shell内置与杂项-source 🛠️ — 在当前 Shell 中执行脚本

作用

source 在当前 Shell 环境中读取并执行脚本文件,不创建子进程。常用于重新加载配置文件(如 source ~/.bashrc)或导入函数库,修改的环境变量会保留在当前 Shell 中。

语法

1
source 文件名 [参数...]

用法

source 在当前 Shell 进程内执行文件,因此对变量的修改、函数的定义、别名设置等都会保留。等效于 .(点命令):. FILENAMEsource FILENAME 相同。常用于在 Shell 启动文件生效后立即应用更改。source 自身无特殊选项参数,仅接受文件名和参数。

常用参数

无(source 仅接受文件名和参数,自身无特殊选项)

示例

1
2
3
4
source ~/.bashrc                     # 重新加载 bash 配置
source /PATH/TO/SCRIPT.SH # 执行脚本(保留环境变量)
. ~/.profile # 点命令等效于 source
source FUNCTIONS.SH # 加载函数库

来源:菜鸟教程

🔗 相关文档

Shell内置与杂项-read | command-exec | Shell内置与杂项-type

Shell内置与杂项-test 🛠️ — 条件测试

作用

test 评估条件表达式并返回退出码(0 为真,1 为假),是 Shell 脚本条件判断的基础。常用于文件属性检查、字符串比较、数值比较。等效语法 [ 表达式 ](注意中括号两侧必须有空格)。

语法

1
2
test 表达式
[ 表达式 ]

用法

文件测试:-f 文件 是否存在且为普通文件;-d 目录 是否存在且为目录;-s 文件 是否存在且非空;-x 文件 是否可执行;-w 文件 是否可写;-N 文件 是否已修改。字符串测试:-z 字符串 长度为零;-n 字符串 长度非零。数值比较:-eq 相等、-ne 不等、-gt 大于、-lt 小于、-ge 大于等于、-le 小于等于。逻辑运算:! 非、-a 与、-o 或。

常用参数

参数 说明
-f 文件 是否为普通文件
-d 目录 是否为目录
-s 文件 是否非空
-x 文件 是否可执行
-z 字符串 字符串为空
-n 字符串 字符串非空
-eq 数值相等
-gt 数值大于
-lt 数值小于

示例

1
2
3
4
5
test -f /etc/passwd                  # 测试 /etc/passwd 是否为普通文件
[ -d /home ] && echo "DIR EXISTS" # 测试 /home 是否为目录
[ -z "$VAR" ] && echo "VAR IS EMPTY" # 测试变量是否为空
[ "$A" -eq "$B" ] && echo "EQUAL" # 数值相等比较
[ ! -f "/tmp/lock" ] && touch /tmp/lock # 取反测试(文件不存在则创建)

来源:菜鸟教程

🔗 相关文档

Shell内置与杂项-echo | Shell内置与杂项-read | true-false-sleep
0%