如何从终端启动默认的Web浏览器?


87

我想知道打开默认Web浏览器的终端命令是什么。

Answers:


93

sensible-browser 是您要查找的命令。


sensible-utils软件包和/etc/alternatives由其发现并修改的替代系统之间的区别update-alternatives如何?
enzotib 2010年

8
对我来说,sensible-browser打开Opera而不是默认Chrome。xdg-open可以正常工作。
放大2014年

2
@Incrop所说的对于Ubuntu 16.04仍然适用,这将打开Firefox而不是我的默认浏览器Chromium。
Andreas Hacker

2
sensible-browser不遵循在unity-control-centre中配置的用户首选项。xdg-open做。
坦克手六四

78

在Google上搜索后,我找到了答案。

xdg-open在用户的首选应用程序中打开文件或URL。如果提供了URL,则将在用户首选的Web浏览器中打开URL。如果提供了文件,则将在首选应用程序中打开该类型文件的文件。xdg-open支持文件,ftp,http和https URL。

xdg-openxdg-utils软件包的一部分,它已经安装在Ubuntu 10.10上。


xdg代表什么?不知道这一点就很难记住。
2014年

1
XDG代表X Desktop Group,又名freedesktop.org
Luca

仍然可以在默认的Ubuntu 16.04安装上运行。
Andreas Hacker

1
如果用户曾经配置为默认情况下使用文本编辑器打开html文件,则将无法使用。OP要求一种打开Web浏览器的方法,而不是打开html文件的默认应用程序(即使默认情况下也是如此)
phil294 '17

这将在任何具有x服务器窗口管理器的gnu / linux发行版上起作用(这几乎就是所有这些-例如debian,* buntu,fedora,manjaro,Arch等)
flurbius

14

您还可以使用:

x-www-browser http://some-url.org

它将在默认浏览器中打开URL。


2
对我来说,即使在“默认应用程序”设置中将Chromium设置为默认浏览器,在Ubuntu 16.04中也可以打开Firefox。
Andreas Hacker

4

使用默认的Ubuntu安装程序,只会想到gnome-open命令。

gnome-open http://askubuntu.com

4
使用默认的Ubuntu安装程序,明智的浏览器xdg-open命令也可以正常工作。
marenostrum,2010年

1
优点是您gnome-open几乎可以将其用于所有文件类型,URI和目录。这是一个学习的命令,而不是试图记住像sensible-browser
Stefan Lasiewski

6
@Stefan Lasiewski:xdg-open应该做同样的事情-实际上,它将根据您的桌面环境调用gnome-open,或kde-open,或其他名称。因此,它更加便携。
Piskvor 2011年

在Ubuntu 16.04中,默认情况下未安装gnome-open
Andreas Hacker

1
gnome-open取决于gnome桌面,最好使用xdg作为更常见的方式
flurbius

2

我玩了一点。有一个问题gnome-open-除非您指定URL,否则它将不会调用默认的Web浏览器。如果您想设置一个图标或快捷方式以始终启动默认设置的浏览器,那将是一个问题。有时,您可能需要将其设置为某些程序的参数,这些程序需要链接到Web浏览器并且不能很好地工作gnome-open(例如:)acroread。您可以通过使用x-www-browsergnome-www-browser可以通过设置的系统链接来解决此问题update-alternatives,但这是系统范围的设置,而不是用户特定的设置(它们与通过设置的值不同步gnome-default-applications-properties。所有这些都可以通过打开sensible-browser可执行文件(实际上是一个脚本):

sudo gedit $(which sensible-browser)

并在开始时添加:

#!/bin/bash
BROWSER=$(gconftool -g /desktop/gnome/url-handlers/http/command)
export BROWSER="${BROWSER//"\"%s\""/}"

这将使sensible-browser始终启动用户指定的默认Web浏览器。(我发现它gnome-default-applications-properties会根据当前设置的浏览器更改一些gconf键。可以从这些键中的任何一个获取默认浏览器值,因此我继续使用/desktop/gnome/url-handlers/http/command并用它来填充$BROWSER变量(该值已除去该"%s"部分) )


1
我不建议/usr/bin/sensible-browser按照此答案的建议进行编辑。此更改将在系统升级时被覆盖。
Gilles 2014年

与其尝试在用户系统上安装修改后的脚本,不如更实际的解决方案是按照Luca的回答使用xdg-open。如果您指定一个html文件或URL,它将打开浏览器-如果您提供其他内容,它将为该类型的资源打开一个适当的应用程序。我怀疑是否有充分的理由使用浏览器打开某些文件,而默认情况下还是根据用户的明确选择,其他一些应用程序可以更好地处理该文件。如果有必要,您可以强制浏览器使用x-www-browser打开它(请参阅本杰明的回答)
flurbius

1

只是您可能会发现它有用。一个后备方法和一个班轮。

URL="https://www.url.com/some"; xdg-open $URL || sensible-browser $URL || x-www-browser $URL || gnome-open $URL

对于不熟悉逻辑运算符的读者,请阅读以下内容 :https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at-once-in-linux/

; =>在所有情况下都可以运行,

|| =>如果先前的命令失败(或),则运行

&& =>仅在先前命令成功的情况下运行

var = someval->设置变量

$ var->调用变量


1
考虑解释此命令的作用,以便其他看到此命令的人更多地了解您的答案。链接很好,但是如果链接的关键内容是答案的一部分,则需要确保该链接的关键内容在您的答案中(以防将来链接消失)。
Zzzach ...

1
@Zzzach ...完成!我明白了。虽然这很简单。
Mohamed Allal
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.