Ubuntu从图标到卸载应用

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

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


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

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

bash

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

  • 如果输出中包含 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 查不到,还可以用 whichtype 查看命令的实际位置:

bash

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

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

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

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

相关推荐
头发够用的程序员1 小时前
别被 TOPS 参数迷惑:手把手推导边缘 GPU 整型算力
人工智能·python·ubuntu·计算机视觉·硬件架构·边缘计算
江湖人称菠萝包1 小时前
【Windows】《深入浅出Windows API程序设计:编程基础篇》笔记-Chapter2-Windows窗口程序
windows·笔记
爱吃提升1 小时前
VMware虚拟机迁移系统磁盘完整教程(VMware Workstation17)
linux·运维·服务器
2401_868534781 小时前
网规备考_5.4 防火墙及访问控制技术
linux·网络协议
wuminyu1 小时前
Linux内核线程调度与虚拟线程调度机制系统级深度剖析
java·linux·c语言·jvm·c++
诸葛李1 小时前
linux 配置
linux·运维·服务器
程序员老赵1 小时前
Docker 部署 Rocky Linux:轻松搭建 RHEL 兼容企业级基础镜像平台
linux·后端·docker
rest10243 小时前
对ebpf的理解(3)
linux
奈斯先生Vector3 小时前
AIGC 视频生成实战:用 Kling Video 拆解文生视频、图生视频与完整工作流
开发语言·人工智能·windows·python·aigc·音视频