---
# System prepended metadata

title: 【linux學習】apt 基礎命令
tags: [linux命令, linux學習]

---


## 📦 查看安裝的套件

最基本的方式，可以列出所有已安裝的套件：

```bash
sudo apt list --installed
```

---

## ⚙️ 進階用法

若你只想要更乾淨的輸出，可以加上錯誤輸出重導，
去除「Listing... Done」等雜訊：

```bash
sudo apt list --installed 2>/dev/null
```

---

## 🔍 篩出 `[installed]` 與 `[upgradable]` 的套件

列出所有「已安裝」或「可升級」的套件：

```bash
sudo apt list --installed 2>/dev/null | grep -E '\[installed($|,upgradable)'
```

---

## 🚫 排除自動安裝的依賴套件

若你只想看「手動安裝」或「可升級」的主要套件（排除 `[installed,automatic]`）：

```bash
sudo apt list --installed 2>/dev/null | grep -E '\[installed(,upgradable to:|])' | grep -v 'automatic'
```

這樣輸出會更乾淨，只留下你真正手動安裝的套件或可更新項目。

---

## 🧠 小提示

| 指令                      | 功能說明          |
| ----------------------- | ------------- |
| `apt-mark showmanual`   | 顯示所有手動安裝的套件   |
| `apt-mark showauto`     | 顯示所有自動安裝的依賴套件 |
| `apt list --upgradable` | 顯示所有可升級的套件    |
| `apt show <package>`    | 查看單一套件的詳細資訊   |

---

✅ **總結：**

* `apt list --installed` → 查看所有安裝的套件
* `grep -E '\[installed(,upgradable to:|])'` → 篩出手動安裝與可升級
* `grep -v 'automatic'` → 過濾掉自動安裝的依賴

---




### 方法 1：按時間排序已安裝的套件
```bash
grep " install " /var/log/dpkg.log* | sort
```
- 從 `dpkg.log` 日誌文件中提取安裝記錄，並按時間排序。
- 如果需要查看更舊的記錄，可使用 `zgrep` 來讀取 `.gz` 壓縮日誌文件。

---

### 方法 2：查看歷史安裝記錄並格式化輸出
```bash
awk '$3 == "install" {print $1, $2, $4}' /var/log/dpkg.log | sort
```
- 提取 **日期、時間、套件名稱**，並排序顯示。

---

### 方法 3：顯示最近安裝的 10 個套件
```bash
grep " install " /var/log/dpkg.log | tail -n 10
```
- 快速查看最近安裝的 10 個軟體包。

---

### 方法 4：查詢特定套件詳細資訊
```bash
apt show <package_name>
```
例如，查詢 `curl` 的詳細資訊：
```bash
apt show curl
```
輸出中包含：
- **Installed-Size**：已安裝大小
- **Size**：下載的壓縮包大小
- **Description**：描述

---

### 方法 5：以人類可讀格式列出所有套件大小
```bash
dpkg-query -W --showformat='${Package}\t${Installed-Size}\n' | \
awk '{printf "%-30s %10.2f MB\n", $1, $2/1024}' | sort -k2 -n | tail
```
- 顯示已安裝套件的大小（以 MB 為單位），並按大小排序。

範例輸出：
```
python3-botocore                    89.73 MB
linux-modules-extra-6.8.0-51-generic 106.84 MB
docker-ce                           106.93 MB
libllvm18                            117.57 MB
linux-firmware                       474.57 MB
```

---

### 方法 6：計算所有安裝套件總佔用磁碟空間
```bash
dpkg-query -W --showformat='${Installed-Size}\n' | \
awk '{total+=$1} END {printf "Total Installed Size: %.2f MB\n", total/1024}'
```
範例輸出：
```
Total Installed Size: 3528.68 MB
```

---

## 刪除套件

### 1. 移除不再需要的依賴包
```bash
sudo apt-get autoremove
```
- 移除已安裝但不再需要的依賴包。
- **注意**：可能會刪除某些系統認為不需要但實際仍需的軟件，請謹慎使用。

---

### 2. 移除已安裝的軟件包（保留配置文件）
```bash
sudo apt-get remove <package_name>
```
- 只刪除軟件包，不刪除配置文件。
- 例如：
```bash
sudo apt-get remove firefox
```

---

### 3. 完全刪除軟件包及其配置文件
```bash
sudo apt-get purge <package_name>
```
- 刪除已安裝的軟件包，**包含配置文件**。
- 例如：
```bash
sudo apt-get purge libreoffice
```

---

### 4. 清理過期的軟件包快取
```bash
sudo apt-get autoclean
```
- 刪除過期的 `.deb` 軟件包，釋放磁碟空間。

---

### 5. 清除所有快取文件
```bash
sudo apt-get clean
```
- 清除所有下載的 `.deb` 軟件包（不影響已安裝的軟件）。

---



