You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu不同默认应用设置方式差异及文本编辑器设置对比

Ubuntu默认应用设置方法差异详解

嘿,我来帮你把Ubuntu里设置默认应用的这些方法掰扯清楚,尤其是你关心的「文本文件GUI/CLI默认编辑器」场景——每个工具的适用范围、优先级、影响对象都不一样,咱们一个个拆解:

一、各方法的核心特点与适用场景

1. Nautilus右键→属性→打开方式→设为默认(GUI可视化操作)

这是最适合新手的方式,完全不用碰命令行:

  • 适用场景:给特定类型的文本文件(比如.txt.md)设置默认GUI编辑器,比如双击文本文件直接打开VS Code而不是Gedit。
  • 影响范围:仅对当前用户生效,因为设置会自动写到你个人目录下的~/.local/share/applications/mimeapps.list文件里。
  • 优先级:用户级GUI设置,优先级比系统级的defaults.list高,会覆盖系统默认。
  • 局限性:只能管GUI里双击/右键打开的场景,和CLI下的编辑器调用完全无关。

2. /usr/share/applications/defaults.list(系统级默认配置文件)

这是系统全局的默认应用模板:

  • 适用场景:给整个系统的所有用户设置默认应用,比如新创建的用户会直接继承这个配置。
  • 影响范围:所有用户,修改需要sudo权限。
  • 优先级:系统级GUI设置,优先级低于用户自己的mimeapps.list——如果某个用户已经通过Nautilus或手动编辑mimeapps.list改了默认,这个文件的设置不会覆盖它。
  • 局限性:同样只影响GUI场景,和CLI编辑器无关。

3. ~/.local/share/applications/mimeapps.list(用户级自定义配置文件)

其实这就是Nautilus右键设置背后的“幕后文件”,手动编辑它更灵活:

  • 适用场景:批量修改多个MIME类型的默认GUI应用,比如一次性把所有纯文本、Markdown、代码文件都设为VS Code打开。
  • 影响范围:仅当前用户,不需要sudo权限。
  • 优先级:所有GUI相关默认设置里优先级最高,会覆盖系统级的defaults.list
  • 小技巧:你可以直接在[Default Applications] section下加一行,比如text/plain=code.desktop,就能把所有纯文本文件默认用VS Code打开。

4. update-alternatives(系统级/用户级CLI工具)

这个工具是用来管理系统中同一类功能的多个替代程序的,既能管CLI也能管部分GUI:

  • 适用场景:统一管理系统层面的替代工具,比如文本编辑器、终端浏览器、GUI浏览器等。比如你想用vim代替nano作为系统默认的CLI编辑器。
  • 影响范围:分两种——用sudo update-alternatives --config editor修改的是系统全局(所有用户生效);如果用--install指定用户目录的路径,也可以只针对当前用户生效。
  • 优先级:对于CLI来说,它管理的是系统符号链接(比如/usr/bin/editor会指向你选的编辑器),所以CLI里调用editor命令时会用它。对于GUI,它管理的是比如x-www-browser这样的链接,部分GUI程序可能会调用这个,但优先级低于mimeapps.list
  • 特点:能同时影响CLI和部分GUI,但主要是针对「命令别名」的管理,比如系统工具crontab -e会调用editor命令,这时候就会用你通过update-alternatives设置的默认编辑器。

5. export EDITOR=<editor>(用户级环境变量)

这是纯CLI层面的设置,完全和GUI无关:

  • 适用场景:给当前用户的CLI会话指定默认文本编辑器,比如让git commit时默认用vim打开编辑框。
  • 影响范围:默认只在当前shell会话生效;如果要永久生效,需要把这条命令写到~/.bashrc~/.zshrc或者~/.profile里。
  • 优先级:CLI场景下优先级最高——即使你用update-alternativeseditor设为nano,只要你设了export EDITOR=vim,所有读取EDITOR环境变量的程序(比如git、crontab)都会优先用vim。
  • 局限性:完全不影响GUI下打开文件的行为,只针对CLI程序。

二、针对文本文件的GUI/CLI默认编辑器设置对比

如果你的需求是「为所有文本文件类型更改默认的GUI与CLI文本编辑器」,这几种方法的区别可以用一张表总结:

方法影响GUI打开文本文件?影响CLI编辑器调用?作用范围优先级适合场景
Nautilus右键设默认当前用户高(用户级GUI)新手快速设置GUI默认
/usr/share/applications/defaults.list所有用户低(系统级GUI)给整个系统设置GUI默认模板
~/.local/share/applications/mimeapps.list当前用户最高(用户级GUI)手动批量修改GUI默认
update-alternatives✅(部分GUI程序)系统全局/当前用户中(CLI系统级)统一管理系统层面的CLI/GUI替代工具
export EDITOR=<editor>当前用户(会话/永久)最高(CLI用户级)自定义个人CLI会话的默认编辑器

最后总结一下

  • 只改GUI默认编辑器:用Nautilus右键(简单)或编辑mimeapps.list(灵活批量改);
  • 改所有用户的GUI默认:编辑defaults.list(需要sudo);
  • 改CLI默认编辑器:优先用export EDITOR(永久写到shell配置文件,个人定制化),或者用update-alternatives(系统全局统一设置);
  • update-alternatives是中间层,既能管CLI也能影响部分GUI,但GUI场景下还是mimeapps.list的优先级更高。

内容的提问来源于stack exchange,提问作者vstepaniuk

火山引擎 最新活动