包管理-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

来源:菜鸟教程

包管理-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

来源:菜鸟教程

包管理-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 / 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 应用

来源:菜鸟教程

压缩与归档-compress 📦 — 传统文件压缩

作用

compress 是最早期的 Unix 文件压缩工具,使用 LZW 算法,压缩后文件以 .Z 为扩展名。在现代 Linux 系统中已被 gzipbzip2 取代,但部分老旧系统和脚本仍在使用。

语法

1
2
compress [选项] 文件名
uncompress [选项] 文件.Z

用法

compress 压缩文件并替换原文件。-d 解压(等价于 uncompress);-f 强制压缩(即使不节省空间);-v 显示压缩信息;-V 显示版本号;-c 输出到标准输出。uncompress FILE.Z 解压。在现代系统中,更推荐使用 gzip 替代。

常用参数

参数 说明
-d 解压
-f 强制压缩
-v 显示压缩信息
-V 版本信息
-c 输出到标准输出

示例

1
2
3
4
5
compress FILE.TXT                  # 压缩为 .Z 格式(传统 LZW)
uncompress FILE.TXT.Z # 解压 .Z 文件
compress -f FILE.TXT # 强制压缩(即使压缩后更大)
compress -v # 显示压缩信息
compress -V # 显示版本信息

已被 gzip 替代。


来源:菜鸟教程

压缩与归档-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 # 测试压缩文件完整性

来源:菜鸟教程

压缩与归档-gzip 📦 — 文件压缩与解压

作用

gzip(GNU zip)是 Linux 最广泛使用的文件压缩工具,基于 DEFLATE 算法。压缩后文件以 .gz 为扩展名,常与 tar 组合使用。压缩率高、速度快,是日常文件压缩的首选工具。

语法

1
2
gzip [选项] 文件名
gunzip [选项] 文件名.gz

用法

gzip 将指定文件压缩为 .gz 格式并替换原文件。-d 解压(等价于 gunzip);-r 递归压缩/解压;-c 输出到标准输出(保留原文件);-n 不保存原始文件名和时间戳;-l 显示压缩比;-k 保留原文件(默认删除原文件);-1~-9 压缩级别(-1 最快,-6 默认,-9 最高压缩比);-t 测试文件完整性。gunzip FILE.GZ 解压文件。

常用参数

参数 说明
-d 解压
-r 递归
-c 输出到标准输出
-n 不保存原始文件名和时间戳
-l 显示压缩比
-k 保留原文件
-1~-9 压缩级别
-t 测试完整性

示例

1
2
3
4
5
6
gzip FILE.TXT                      # 压缩文件(原文件被替换)
gzip -9 FILE.TXT # 最高压缩比压缩
gzip -d FILE.TXT.GZ # 解压 .gz 文件
gzip -r -k /HOME/USER # 递归压缩目录并保留原文件
gzip -c FILE.TXT > FILE.TXT.GZ # 压缩到标准输出(保留原文件)
gzip -t FILE.TXT.GZ # 测试压缩文件完整性

来源:菜鸟教程

Shell内置与杂项-command-exec / exec 🛠️ — 执行命令

作用

command 忽略 Shell 函数和别名,直接执行外部命令。exec 用指定命令替换当前 Shell 进程,不创建新子进程。两者都是 Shell 内置命令,用于控制命令执行方式。

command

1
command [选项] 命令 [参数...]

绕过别名和函数,直接执行外部命令。-v 显示命令路径;-p 使用默认 PATH 搜索。适用于脚本中需要确保执行的是系统命令而非别名或函数。

exec

1
exec [选项] 命令 [参数...]

用指定命令替换当前 Shell 进程,原 Shell 进程终止(不会返回)。exec < FILE 重定向当前 Shell 的标准输入;exec > FILE 重定向标准输出。常用于脚本中重定向所有后续输出,或在容器启动时替换 Shell 为主进程。

示例

1
2
3
4
5
6
7
command ls                          # 忽略别名直接执行 ls
command -v ls # 显示命令路径
command -p ls # 使用默认 PATH 查找 ls
exec bash # 用 bash 替换当前 Shell
exec zsh # 用 zsh 替换当前 Shell
exec < FILE.TXT # 重定向当前 Shell 标准输入
exec > OUTPUT.LOG 2>&1 # 重定向当前 Shell 全部输出到文件

来源:菜鸟教程

Shell内置与杂项-echo 🛠️ — 输出文本

作用

echo 将指定文本输出到标准输出,是 Shell 脚本中最常用的输出命令。支持转义字符和变量替换,用于打印信息、调试脚本、生成文件内容等。

语法

1
echo [选项] [字符串...]

用法

echo 默认在输出末尾添加换行符。-n 不输出换行;-e 启用转义字符(如 \n 换行、\t 制表符、\\ 反斜杠)。转义字符需用 -e 选项或在字符串外使用 $'...' 语法。变量替换直接用 $VAR。多个字符串自动用空格连接。

常用参数

参数 说明
-n 不输出换行
-e 启用转义字符

示例

1
2
3
4
5
echo "HELLO WORLD"                  # 输出文本
echo -n "NO NEWLINE" # 输出不换行
echo -e "LINE1\nLINE2" # 启用转义(\n 换行)
echo "USER: $USER" # 输出变量值
echo -e "COL1\tCOL2\tCOL3" # 制表符对齐输出

来源:菜鸟教程

Shell内置与杂项-eval-trap-shift / trap / shift 🛠️ — Shell 高级用法

作用

eval 将字符串作为 Shell 命令二次解析执行;trap 捕获信号或事件执行自定义操作;shift 移动位置参数(左移丢弃 $1)。三者都是 Shell 脚本中常用的高级控制命令。

eval

1
eval [参数...]

将参数拼接为字符串并作为 Shell 命令执行(二次解析)。适用于构造动态命令或访问间接变量。注意安全风险,不要对不受信任的输入使用 eval。

trap

1
trap [操作] 信号...

捕获指定信号并执行操作。常用信号:INT(Ctrl+C)、TERM(终止)、EXIT(退出)、ERR(命令错误)。trap 'rm -f /tmp/tempfile' EXIT 在脚本退出时清理临时文件。trap '' INT 忽略 Ctrl+C。

shift

1
shift [N]

将位置参数左移 N 位(丢弃前 N 个参数,$1 变为原来的第 N+1 个参数)。默认 N=1。在脚本中遍历所有参数时常用:while [ $# -gt 0 ]; do ...; shift; done

示例

1
2
3
4
5
6
CMD="ls -la"                       # 构造命令字符串
eval "$CMD" # 二次解析执行动态命令
trap 'echo "INTERRUPTED"; exit' INT # 捕获 Ctrl+C 后执行
trap 'rm -f /tmp/temp' EXIT # 脚本退出时清理临时文件
shift # 左移一个位置参数(丢弃 $1)
shift 2 # 左移两个位置参数

⚠️ eval 注意安全风险。


来源:菜鸟教程

0%