Jak uruchomić domyślną przeglądarkę internetową z terminala?

87

Zastanawiałem się, jakie jest polecenie terminalu, aby otworzyć domyślną przeglądarkę internetową.

Luca
źródło

Odpowiedzi:

93

sensible-browser to polecenie, którego szukasz.

Evan
źródło
Co z różnicami między sensible-utilspakietem a systemem alternatyw znalezionym /etc/alternativesi zmodyfikowanym przez update-alternatives?
enzotib
8
Dla mnie sensible-browserOpera zamiast domyślnego Chrome. xdg-opendziała zgodnie z oczekiwaniami.
incrop
2
To, co powiedział @Incrop, jest nadal prawdą dla Ubuntu 16.04, otwiera Firefox zamiast mojej domyślnej przeglądarki Chromium.
Andreas Hacker
2
sensible-browsernie przestrzega preferencji użytkownika skonfigurowanych w centrum kontroli jedności. xdg-openrobi.
Tankman
78

Szukając w Google znalazłem odpowiedź.

xdg-open otwiera plik lub adres URL w preferowanej aplikacji użytkownika. Jeśli zostanie podany adres URL, zostanie on otwarty w preferowanej przeglądarce użytkownika. Jeśli plik zostanie podany, zostanie on otwarty w preferowanej aplikacji dla plików tego typu. xdg-open obsługuje adresy URL plików, ftp, http i https.

xdg-open jest częścią pakietu xdg-utils i jest już zainstalowany na Ubuntu 10.10.

Luca
źródło
co oznacza xdg? Trudno to zapamiętać, nie wiedząc o tym.
Thupten
1
XDG oznacza X Desktop Group, czyli freedesktop.org
Luca,
Nadal działa w przypadku domyślnej instalacji Ubuntu 16.04.
Andreas Hacker
1
jeśli użytkownik raz skonfigurował otwieranie plików HTML domyślnie za pomocą edytora tekstu, to nie zadziała. OP prosi o sposób otwarcia przeglądarki internetowej , a nie o domyślną aplikację do plików HTML (chociaż domyślnie jest taka sama)
phil294
Działa to na każdej dystrybucji gnu / linux, która ma menedżera okien x-server (czyli prawie wszystkie z nich - np. Debian, * buntu, fedora, manjaro, Arch itp.)
flurbius
14

Możesz także użyć:

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

I otworzy adres URL w domyślnej przeglądarce.

Benzoes
źródło
2
dla mnie w Ubuntu 16.04 otworzy to Firefox, mimo że Chromium jest ustawiony jako domyślna przeglądarka w ustawieniu „Domyślne aplikacje”.
Andreas Hacker
4

Przy domyślnej konfiguracji Ubuntu przychodzi na myśl tylko polecenie gnome-open.

gnome-open http://askubuntu.com
kounryusui
źródło
4
Przy domyślnej konfiguracji Ubuntu działają również polecenia sensible-browser i xdg-open .
marenostrum
1
Zaletą jest to, że można używać gnome-opendo prawie wszystkich typów plików, identyfikatorów URI i katalogów. To jedna komenda do nauki, zamiast próbować pamiętać o niejasnych komendach, takich jaksensible-browser
Stefan Lasiewski,
6
@Stefan Lasiewski: xdg-openpowinien zrobić to samo - faktycznie, to zadzwonić gnome-open, lub kde-open, lub cokolwiek innego, w zależności od środowiska graficznego. Dzięki temu jest bardziej przenośny.
Piskvor
w Ubuntu 16.04, gnome-open nie jest instalowany domyślnie
Andreas Hacker
1
gnome-open zależy od pulpitu gnome, lepiej używać xdg jako bardziej powszechnego
flurbius
2

Trochę się z tym bawiłem. Wystąpił problem z gnome-open- nie wywoła domyślnej przeglądarki internetowej, chyba że podasz adres URL. Jest to problem, jeśli chcesz skonfigurować ikonę lub skrót, który zawsze uruchomi domyślną przeglądarkę. Innym razem może być konieczne ustawienie go jako parametru dla niektórych programów, które wymagają linku do przeglądarki internetowej i nie działają dobrze gnome-open(np acroread.:). Możesz rozwiązać ten problem, korzystając z łączy systemowych x-www-browserlub gnome-www-browserlinków, które możesz skonfigurować update-alternatives, ale są to ustawienia systemowe, a nie specyficzne dla użytkownika (i nie są zsynchronizowane z ustawionymi wartościami gnome-default-applications-properties. Wszystko to można rozwiązać, otwierając sensible-browserplik wykonywalny (który to tak naprawdę skrypt):

sudo gedit $(which sensible-browser)

i dodając to na początku:

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

Spowoduje to, że sensible-browserzawsze uruchomi domyślną przeglądarkę internetową określoną przez użytkownika. (Dowiedziałem się, że gnome-default-applications-propertieszmienia niektóre klucze gconf zgodnie z aktualnie ustawioną przeglądarką. Domyślną wartość przeglądarki można uzyskać z dowolnego z tych kluczy, więc poszedłem /desktop/gnome/url-handlers/http/commandi użyłem jej do wypełnienia $BROWSERzmiennej (wartość jest pozbawiona "%s"części) .)

Gilles
źródło
1
Nie polecam edycji, /usr/bin/sensible-browserponieważ ta odpowiedź zaleca. Ta zmiana zostanie zastąpiona podczas aktualizacji systemu.
Gilles
zamiast próbować instalować zmodyfikowany skrypt w systemie użytkownika, bardziej realistycznym rozwiązaniem jest użycie xdg-open zgodnie z odpowiedzią Lucy. Jeśli podasz plik HTML lub URL, otworzy przeglądarkę - jeśli podasz coś innego, otworzy odpowiednią aplikację dla tego typu zasobów. Wątpię, aby istniał jakiś dobry powód, aby otworzyć jakiś plik za pomocą przeglądarki, gdy będzie lepiej obsługiwany przez inną aplikację, domyślnie lub zgodnie z wyraźnym wyborem użytkownika. Jeśli musisz, możesz zmusić przeglądarkę do otwarcia za pomocą przeglądarki x-www (patrz odpowiedź Benjamina)
flurbius
1

Tylko że może ci się przydać. Podejście awaryjne i jedna wkładka.

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

Dobra lektura dla nieznajomych operatorów logicznych https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at-once-in-linux/ .

; => uruchom we wszystkich przypadkach,

|| => uruchom, jeśli poprzednie polecenie nie powiodło się (lub)

&& => uruchom tylko, jeśli poprzednie polecenie się powiedzie

i

var = someval -> ustaw zmienną

$ var -> wywołaj zmienną

Mohamed Allal
źródło
1
Rozważ wyjaśnienie, co robi to polecenie, aby inni, którzy to widzą, dowiedzieli się więcej o Twojej odpowiedzi. Linki są dobre, ale musisz upewnić się, że kluczowa treść linku znajduje się w Twojej odpowiedzi, jeśli jest ona częścią Twojej odpowiedzi (w przeciwnym razie link umrze w przyszłości).
Zzzach ...
1
@Zzzach ... gotowe! i rozumiem o co chodzi. Chociaż była to prosta sprawa.
Mohamed Allal