「Linux 系统编程」软件安装命令、压缩命令

1 apt 软件安装命令的使用

1.1 apt 与 apt-get

aptapt-get 都是 Debian/Ubuntu 系统中用于包管理的命令行工具,核心功能基本相同(都基于 dpkg)。

操作 apt-get 命令 apt 命令 说明
更新软件源 apt-get update apt update 同步软件源索引
升级所有软件包 apt-get upgrade apt upgrade 不删除旧包
升级系统 (谨慎!) apt-get dist-upgrade apt full-upgrade 可能删除旧包(解决依赖)
安装软件包 apt-get install pkg apt install pkg
删除软件包 apt-get remove pkg apt remove pkg 保留配置文件
彻底删除 apt-get purge pkg apt purge pkg 删除软件包+配置文件
自动清理 apt-get autoremove apt autoremove 删除不再需要的依赖包
搜索软件包 apt-cache search pkg apt search pkg
查看软件包信息 apt-cache show pkg apt show pkg
列出可升级包 apt list --upgradable apt list --upgradable apt 原生支持

注意apt 整合了部分 apt-cacheapt-config 的功能(如 search, show)。


Ubuntu 14.04 LTS 及更早版本中,默认主要使用 apt-getapt 尚未作为默认工具广泛推广。

从 Ubuntu 16.04 LTS 开始,apt 被正式引入并作为默认的包管理前端工具,与 apt-get 同时存在于系统中。



1.2 软件包的安装

1
sudo apt install [软件包名称]

在下面的示例中,执行 sudo apt install tree 安装了软件包 tree


sudo dpkg -i 文件名.deb 是 直接安装本地 .deb 软件包 的命令,但是,dpkg 并不能自动解决依赖。现有的 apt 工具会调用 dpkg 完成 .deb 软件包的安装,同时也会 自动处理依赖

因此,现在通常用以下命令代替 sudo dpkg -i 文件名.deb

1
sudo apt install ./文件名.deb  # 注意路径前的 `./`

注意: 使用该命令 必须指定相对路径(如 ./package.deb)或绝对路径(如 /home/user/package.deb



1.3 软件包的卸载

  • 卸载软件包(保留配置文件):
1
sudo apt remove [软件包名称]
  • 彻底卸载(包括配置文件):
1
sudo apt purge [软件包名称]



2 tar 命令

2.1 tar 命令语法

tar 命令是管理归档文件(打包、压缩、解压)的核心工具。

1
tar [操作选项] [选项参数] [归档文件] [文件/目录列表]
选项 功能
-c 创建新归档文件
-x 从归档中提取文件
-t 列出归档内容
-f 指定归档文件名(必须
-v 显示详细过程(verbose)
-z 使用gzip压缩/解压(.gz)
-j 使用bzip2压缩/解压(.bz2)
-J 使用xz压缩/解压(.xz)
-C 解压到指定目录
--exclude 排除特定文件/目录

注意事项:

  1. -f 选项必须放在最后

    正确:tar -czvf archive.tar.gz folder
    错误:tar -fvcz ...(会导致错误)

  2. 压缩效率对比

    xz > bzip2 > gzip(压缩率越高,耗时越长)



2.2 tar 打包与压缩

  • 仅打包,不压缩。生成 .tar
1
tar -cvf archive.tar [文件/目录列表]
  • 打包 + gzip 压缩。生成 .tar.gz 或者 .tgz
1
tar -czvf archive.tar.gz [文件/目录列表]
  • 打包 + bzip2 压缩。生成 .tar.bz2
1
tar -cjvf archive.tar.bz2 [文件/目录列表]
  • 打包 + xz 压缩。生成 .tar.xz
1
tar -cJvf archive.tar.xz [文件/目录列表]



2.3 tar 解压

将压缩命令中的参数 -c 换为 -x 即可。

  • 解压 .tar 文件
1
tar -xvf archive.tar
  • 解压 .tar.gz
1
tar -xzvf archive.tar.gz
  • 解压 .tar.bz2
1
tar -xjvf archive.tar.bz2
  • 解压到指定目录
1
tar -xzvf archive.tar.gz -C /target_dir



2.4 tar 查看压缩包内容

1
2
tar -tvf archive.tar       # 查看.tar内容
tar -tzvf archive.tar.gz # 查看.tar.gz内容



3 rar 和 zip 命令

Ubuntu 通常自带 zipunzip 工具。然而,在使用 rar 之前通常需要先下载 rarunrar 包:

1
sudo apt install rar unrar

3.1 rar 压缩

1
2
3
4
5
6
7
8
9
10
11
# 基本压缩
rar a archive.rar [文件/目录列表]

# 递归压缩目录
rar a -r archive.rar [文件/目录列表]

# 设置压缩级别(0-5,5为最高)
rar a -m5 max_compress.rar [文件/目录列表]

# 添加恢复记录(防损坏)
rar a -rr3% recovery.rar [文件/目录列表]



3.2 rar 解压

1
2
3
4
5
6
7
8
9
10
11
12
# 解压到当前目录
unrar x archive.rar

# 解压到指定目录
unrar x archive.rar /target_dir_2

# 解压但不保留路径结构
# 压缩包内所有文件均直接提取到当前目录或指定目录下,不创建任何子文件夹
unrar e archive.rar

# 列出压缩包内容
unrar l archive.rar



3.3 zip 压缩

1
2
3
4
5
6
7
8
9
10
11
# 压缩单个文件
zip archive.zip [文件/目录列表]

# 递归压缩目录(-r 选项)
zip -r archive.zip [文件/目录列表]

# 设置压缩级别(0-9,9为最高)
zip -9 -r high_compress.zip [文件/目录列表]

# 排除文件
zip -r archive.zip [文件/目录列表] -x "*.txt"



3.4 zip 解压

1
2
3
4
5
6
7
8
9
10
11
# 解压到当前目录
unzip archive.zip

# 解压到指定目录
unzip archive.zip -d /target_dir_2

# 解压时覆盖已有文件(-o 选项)
unzip -o archive.zip

# 列出压缩包内容(不解压)
unzip -l archive.zip



3.5 rar 和 zip 对比

  1. 跨平台兼容性

    • ZIP 格式在 Windows/macOS/Linux 通用性更好
    • RAR 在 Windows 更常见,Linux 通常需额外安装工具
  2. 压缩效率

    • RAR 通常比 ZIP 压缩率更高(尤其大文件)
    • ZIP 的压缩速度更快
  3. 默认行为差异

    • unzip 默认覆盖文件 会询问unrar x 默认直接覆盖
    • 使用 -o(unzip)或 -o+(unrar)强制覆盖

「Linux 系统编程」软件安装命令、压缩命令
https://marisamagic.github.io/2025/08/06/20250806_2/
作者
MarisaMagic
发布于
2025年8月6日
许可协议