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/ 刷新菜单。

相关推荐
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies4 天前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
未济4 天前
linux 配置环境变量
linux
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
_艾伦 耶格尔.4 天前
进程间通信
linux
Liuqy-054 天前
Linux IO编程——静态库、动态库
linux
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅4 天前
linux(8) 软硬链接
linux·运维·服务器
AIgorithmGEEK4 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid
琥珀色糖4 天前
SimlpeHttp
linux·服务器