Ubuntu从图标到卸载应用

通用"三板斧":从图标到卸载的完整思路

以后遇到任何想卸载但不知道包名的软件,按这个流程走,基本都能搞定。


🔧 第一板斧:在系统安装包中搜索关键词

目的:快速确认软件是否通过系统包管理器(APT)安装。

bash

复制代码
dpkg -l | grep -i <关键词>
  • <关键词> 可以是软件英文名、中文拼音,甚至部分字母,比如 todo、wechat、code。

  • 如果输出中包含 ii 开头的行,说明这个软件是 APT 安装的,冒号后或末尾的名称就是包名。

示例:dpkg -l | grep -i todo → 找到 io.elementary.tasks


🧩 第二板斧:查找 Snap / Flatpak 包

有些软件是从 Ubuntu 软件商店(Snap)或 Flathub(Flatpak)安装的,APT 搜不到,需要分别检查:

bash

复制代码
snap list | grep -i <关键词>
flatpak list | grep -i <关键词>
  • 如果看到结果,对应的卸载命令是:

    • Snap:sudo snap remove <包名>

    • Flatpak:flatpak uninstall <包名>


🧭 第三板斧:从启动器文件中反查(最准确)

适用于:上述命令都搜不到,或不确定软件名的场景。

步骤 1:找到对应的 .desktop 启动器文件

bash

复制代码
grep -r -i "<中文名>" /usr/share/applications/ ~/.local/share/applications/ 2>/dev/null
  • 系统级启动器在 /usr/share/applications/

  • 用户级启动器在 ~/.local/share/applications/(优先级更高,通常由用户自行添加或 AppImage 生成)

步骤 2:查看 .desktop 文件内容,获取实际运行命令

bash

复制代码
cat /usr/share/applications/<找到的文件名>.desktop

重点关注 Exec= 行,它代表软件的真实启动命令。

步骤 3:用 dpkg -S 反查命令属于哪个包

bash

复制代码
dpkg -S $(which <Exec=后的命令>)

或直接指定路径:

bash

复制代码
dpkg -S /usr/bin/<命令>

返回结果格式为:包名: 文件路径,冒号前就是准确的包名。

如果 dpkg -S 查不到,说明该命令不是 APT 包提供的,可能是 AppImage、手动解压版、或源码编译安装的程序。此时:

  • 检查是否为 AppImage:直接删除 .AppImage 文件,并清理快捷方式

  • 检查是否在 /opt/ 或 ~/ 目录下:删除对应文件夹

  • 检查是否通过脚本安装:查看安装脚本,或直接删除目录并清理环境变量


✅ 最终卸载

确定包名后,执行:

bash

复制代码
sudo apt purge <包名>
sudo apt autoremove

📋 流程图总览

text

复制代码
想卸载一个软件但不知道包名
        │
        ▼
┌───────────────────────┐
│ 用 dpkg -l | grep     │  ← 第一板斧(APT 包)
└───────────────────────┘
        │
     ❌ 没找到
        ▼
┌───────────────────────┐
│ 用 snap list / flatpak│  ← 第二板斧(Snap/Flatpak)
└───────────────────────┘
        │
     ❌ 没找到
        ▼
┌──────────────────────────────────────────┐
│ grep -r "中文名" /usr/share/applications/ │  ← 第三板斧(反查启动器)
└──────────────────────────────────────────┘
        │
        ▼
┌───────────────────────┐
│ cat xxx.desktop       │  查看 Exec= 获取命令
└───────────────────────┘
        │
        ▼
┌───────────────────────┐
│ dpkg -S $(which 命令) │  反查包名
└───────────────────────┘
        │
        ▼
┌───────────────────────┐
│ sudo apt purge 包名   │  卸载
└───────────────────────┘

💡 额外技巧:查找非 APT 安装的程序

如果 dpkg -S 查不到,还可以用 which 或 type 查看命令的实际位置:

bash

复制代码
which <命令>
type <命令>
  • 如果指向 /home/用户/...,可能是用户目录下的独立程序

  • 如果指向 /opt/...,可能是第三方解压版

  • 如果指向 /snap/...,那是 Snap 版(已在第二板斧中覆盖)

如果是 AppImage,直接删除文件即可。如果不想留下快捷方式残留,手动删除 ~/.local/share/applications/ 下对应的 .desktop 文件,并运行 update-desktop-database ~/.local/share/applications/ 刷新菜单。

相关推荐
ITKEY_9 小时前
用 Emacs Dired 实现 em:退出文件管理器后,让终端自动切换目录
linux·服务器·emacs
wt95279 小时前
VMware 虚拟机磁盘扩容实战文档(Ubuntu 22.04 + LVM)
linux·后端
就像楞次定律9 小时前
【Linux 学习记之二】C++ 构建体系与底层链接机制的深度透视(2)
linux·后端
无足鸟ICT10 小时前
【RHCA+】slabtop命令(查看slab缓存)
linux
且从容.10 小时前
Ubuntu 安装 Docker
linux·ubuntu·docker
青梅味猪大肠11 小时前
【操作系统-60】临近适应算法
java·linux·开发语言·嵌入式硬件·算法·操作系统
沫璃染墨11 小时前
从零入门计算机网络系列(十四):TCP报文与字节流本质——从数据封装到报文边界
linux·服务器·网络·网络协议·tcp/ip·tcp
CodeYp201912 小时前
第19讲:自旋锁
linux·自旋锁
此生决int12 小时前
Linux系列(08)——进程控制
linux·运维·驱动开发
Percep_gan12 小时前
Linux中安装gitea,很详细
linux·elasticsearch·gitea