Как запустить браузер по умолчанию с терминала?


87

Мне было интересно, что это за команда терминала, чтобы открыть веб-браузер по умолчанию.

Ответы:


93

sensible-browser это команда, которую вы ищете.


Как насчет различий между sensible-utilsпакетом и системой альтернатив, найденных /etc/alternativesи измененных update-alternatives?
энзотиб

8
Для меня sensible-browserоткрывается Opera вместо pf по умолчанию Chrome. xdg-openработает как положено.
включи

2
то, что сказал @Incrop, все еще верно для Ubuntu 16.04, это открывает Firefox вместо моего браузера по умолчанию Chromium.
Андреас Хакер

2
sensible-browserне следует предпочтениям пользователя, настроенным в едином центре управления. xdg-openделает.
Танкист 六四

78

Поиском в гугле я нашел ответ.

xdg-open открывает файл или URL в предпочтительном приложении пользователя. Если указан URL-адрес, он будет открыт в предпочтительном веб-браузере пользователя. Если файл предоставлен, файл будет открыт в предпочтительном приложении для файлов этого типа. xdg-open поддерживает URL-адреса файлов, ftp, http и https.

xdg-open является частью пакета xdg-utils и уже установлен в Ubuntu 10.10.


что означает XDG? Трудно запомнить, не зная этого.
Thupten

1
XDG расшифровывается как X Desktop Group aka freedesktop.org
Luca

Все еще работает с установкой Ubuntu 16.04 по умолчанию.
Андреас Хакер

1
если пользователь однажды настроил открытие html-файлов в текстовом редакторе по умолчанию, это не будет работать. ОП запрашивает способ открыть веб-браузер , а не приложение по умолчанию для HTML-файлов (хотя по умолчанию это то же самое)
phil294

Это будет работать на любом дистрибутиве gnu / linux, в котором есть оконный менеджер x-server (то есть почти все из них - например, debian, * buntu, fedora, manjaro, Arch и т. Д.)
flurbius,

14

Вы также можете использовать:

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

И он откроет URL в браузере по умолчанию.


2
для меня в Ubuntu 16.04 это откроет Firefox, даже если Chromium установлен в качестве браузера по умолчанию в настройке «Приложения по умолчанию».
Андреас Хакер

4

При настройке Ubuntu по умолчанию на ум приходит только команда gnome-open.

gnome-open http://askubuntu.com

4
С настройками Ubuntu по умолчанию, команды sensible-browser и xdg-open также работают.
marenostrum

1
Преимущество заключается в том, что вы можете использовать gnome-openпрактически все типы файлов, URI и каталоги. Это одна команда, чтобы учиться, вместо того, чтобы пытаться вспомнить о таких непонятных командах, какsensible-browser
Стефан Ласевский

6
@Stefan Lasiewski: xdg-openдолжен делать то же самое - на самом деле, он будет вызывать gnome-open, или kde-open, или как угодно, в зависимости от среды вашего рабочего стола. Таким образом, это более портативно.
Писквор

в Ubuntu 16.04 gnome-open по умолчанию не устанавливается
Andreas Hacker

1
gnome-open зависит от рабочего стола gnome, лучше использовать xdg в качестве более распространенного
flurbius

2

Я немного поиграл с этим. Существует проблема с gnome-open- он не будет вызывать веб-браузер по умолчанию, если вы не укажете URL. Это проблема, если вы хотите установить значок или ярлык, который всегда будет запускать браузер, который установлен по умолчанию. В других случаях вам может потребоваться установить его в качестве параметра для некоторых программ, которым требуется ссылка на веб-браузер и которые плохо работают с gnome-open(например:) acroread. Вы могли бы решить эту проблему с помощью любого x-www-browserили gnome-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всегда запускать указанный пользователем веб-браузер по умолчанию. (Я обнаружил, что gnome-default-applications-propertiesнекоторые ключи gconf изменяются в соответствии с установленным в данный момент браузером. Значение браузера по умолчанию можно получить с помощью любого из этих ключей, поэтому я /desktop/gnome/url-handlers/http/commandиспользовал его для заполнения $BROWSERпеременной (значение отбирается из "%s"части) .)


1
Я не рекомендовал бы редактировать, /usr/bin/sensible-browserпоскольку этот ответ рекомендует. Это изменение будет перезаписано при обновлении системы.
Жиль

вместо того, чтобы пытаться установить модифицированный скрипт в системе пользователя, более реалистичным решением будет использование 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
Попробуйте объяснить, что делает эта команда, чтобы другие, видящие это, знали больше о вашем ответе. Ссылки хороши, но вы должны убедиться, что основное содержание ссылки находится в вашем ответе, если оно является частью вашего ответа (в случае, если ссылка умирает в будущем).
Ззач ...

1
@Zzzach ... сделано! и я понял Хотя это было просто.
Мохаммед Аллал
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.