如何通过编程方式确定Linux中的默认应用程序

9 投票
6 回答
2172 浏览
提问于 2025-04-17 09:42

在Linux系统中,我怎么才能知道默认的文本编辑器、终端等是什么呢?

这个会因不同的发行版而有所不同吗?

6 个回答

2

选择编辑器的顺序是这样的:首先是 $EDITOR,然后是 editor,最后是一些预设的控制台编辑器。在 Debian 或 Ubuntu 系统上,sensible-editor(还有 sensible-browsersensible-pager)会帮你找到合适的编辑器,它会查看一些环境变量。类似的环境变量还有 $PAGER$SHELL$BROWSER。如果你想查找文件的关联程序,可以使用 xdg-open

3

我之前用一种比较笨的方法程序matically访问了这个列表,我知道这不是最好的方式。选项存储在一个叫做 defaults.list 的文件里(我觉得一般都是这样)。这个文件的位置不太固定,我在我的 Ubuntu 系统上找到了它,路径是 /usr/share/applications/,不过我觉得它可能还会出现在其他地方。然后我把它当作一个文本文件来处理。

1

我觉得“默认”编辑器或终端这个概念不太合理。对于编辑器来说,通常会使用一个叫做 $EDITOR 的环境变量来定义它。

在Debian及其相关系统(比如Ubuntu、Mint)中,有一些路径,比如 /usr/bin/editor/usr/bin/x-terminal-emulator,这些路径通过符号链接(在 /etc/alternatives/ 中)指向某个系统的默认设置。

你可以看看 Dacav的回答

撰写回答