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

相关推荐
C++ 老炮儿的技术栈2 小时前
char 造成的数据溢出
linux·服务器·c语言·c++·算法·c
qetfw3 小时前
Bash 内置与外部命令:type、command 与 builtin 验证
linux·开发语言·bash
虚无的纽扣3 小时前
【Linux】信号(上):一个进程是怎么“被通知”的
linux·运维·驱动开发
大哥您好11 小时前
QEMU 11.1.2 多架构编译指南(x86_64 / aarch64 / riscv64)
linux·服务器
jack1868911 小时前
百度 AI 搜索实战:从精准获客到智能决策的应用全景
windows
道满科技12 小时前
Function Calling 参数总出错?只修参数就行
linux·windows·python
Android系统攻城狮13 小时前
Linux Gstreamer深度解析之gst_audio_ring_buffer_prepare_read调用流程与实战(七十四)
linux·运维·服务器·gstreamer音视频·音视频进阶
GHN198788813 小时前
开源小工具按一下空格,什么都看见了
windows
我科绝伦(Huanhuan Zhou)13 小时前
Linux 通用压力测试脚本合集:磁盘 + 网络
linux·网络·压力测试
Soneswy16 小时前
Linux系统篇--重定向与文件操作命令
linux