Wie starte ich einen Standard-Webbrowser vom Terminal aus?

87

Ich habe mich gefragt, wie der Terminalbefehl lautet, um den Standard-Webbrowser zu öffnen.

Luca
quelle

Antworten:

93

sensible-browser ist der Befehl, den Sie suchen.

Evan
quelle
Was ist mit den Unterschieden zwischen dem sensible-utilsPaket und dem System der Alternativen, die in /etc/alternativesund durch modifiziert wurden update-alternatives?
Enzotib
8
Für mich sensible-browseröffnet Opera stattdessen pf Standard Chrome. xdg-openfunktioniert wie erwartet.
Incrop
2
Was @Incrop gesagt hat, gilt immer noch für Ubuntu 16.04, dies öffnet Firefox anstelle meines Standardbrowsers Chromium.
Andreas Hacker
2
sensible-browserfolgt nicht den im Unity-Control-Center konfigurierten Benutzereinstellungen. xdg-opentut.
Tankman 六四
78

Bei Google habe ich die Antwort gefunden.

xdg-open öffnet eine Datei oder URL in der bevorzugten Anwendung des Benutzers. Wenn eine URL angegeben ist, wird die URL im bevorzugten Webbrowser des Benutzers geöffnet. Wenn eine Datei bereitgestellt wird, wird die Datei in der bevorzugten Anwendung für Dateien dieses Typs geöffnet. xdg-open unterstützt Datei-, FTP-, http- und https-URLs.

xdg-open ist Teil des Pakets xdg-utils und bereits auf Ubuntu 10.10 installiert.

Luca
quelle
Wofür steht xdg? Es ist schwer zu merken, ohne das zu wissen.
Thupten
1
XDG steht für X Desktop Group aka freedesktop.org
Luca
Funktioniert immer noch auf einer Standard-Ubuntu 16.04-Installation.
Andreas Hacker
1
Wenn der Benutzer einmal konfiguriert hat, HTML-Dateien standardmäßig mit einem Texteditor zu öffnen, funktioniert dies nicht. OP fragt nach einer Möglichkeit, den Webbrowser zu öffnen , nicht nach der Standardanwendung für HTML-Dateien (obwohl dies standardmäßig dieselbe ist)
phil294
Dies funktioniert auf jeder GNU / Linux-Distribution, die einen X-Server-Fenstermanager hat (das sind fast alle von ihnen - zB Debian, * buntu, Fedora, Manjaro, Arch usw.)
Flurbius
14

Sie können auch verwenden:

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

Und es öffnet die URL im Standardbrowser.

Benjamin
quelle
2
Unter Ubuntu 16.04 wird Firefox dadurch geöffnet, obwohl Chromium in der Einstellung "Standardanwendungen" als Standardbrowser festgelegt ist.
Andreas Hacker
4

Bei der Standardeinstellung von Ubuntu fällt nur der Befehl gnome-open ein.

gnome-open http://askubuntu.com
kounryusui
quelle
4
Mit dem Ubuntu-Standard-Setup funktionieren auch die Befehle sensible-browser und xdg-open .
Marenostrum
1
Der Vorteil ist, dass Sie gnome-openfür fast alle Dateitypen, URIs und Verzeichnisse verwenden können. Es ist ein Befehl zu lernen, anstatt zu versuchen , über obskure Befehle wie zu erinnernsensible-browser
Stefan Lasiewski
6
@Stefan Lasiewski: Sollte xdg-opendasselbe tun - tatsächlich wird es je nach Desktop-Umgebung anrufen gnome-openoder kde-openoder was auch immer. Somit ist es portabler.
Piskvor
in Ubuntu 16.04 ist gnome-open nicht standardmäßig installiert
Andreas Hacker
1
gnome-open ist abhängig von gnome desktop, am besten mit xdg
flurbius 27.12.17
2

Ich habe ein bisschen rumgespielt. Es gibt ein Problem mit gnome-open- der Standard-Webbrowser wird nur aufgerufen, wenn Sie eine URL angeben. Dies ist ein Problem, wenn Sie ein Symbol oder eine Verknüpfung einrichten möchten, mit der der standardmäßig eingestellte Browser immer gestartet wird. In anderen Fällen müssen Sie es möglicherweise als Parameter für einige Programme festlegen, für die eine Verknüpfung mit einem Webbrowser erforderlich ist und die nicht gut funktionieren gnome-open(z acroread. B.:) . Sie können dieses Problem beheben, indem Sie entweder eine x-www-browseroder gnome-www-browsermehrere Systemverknüpfungen verwenden, die Sie update-alternativeseinrichten können gnome-default-applications-properties. Hierbei handelt es sich jedoch um systemweite Einstellungen, die nicht benutzerspezifisch sind (und die nicht mit den durch festgelegten Werten synchronisiert sind . All dies kann durch Öffnen der sensible-browserausführbaren Datei (welche) behoben werden ist eigentlich ein Skript):

sudo gedit $(which sensible-browser)

und dies am Anfang hinzufügen:

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

Dadurch wird sensible-browserimmer der vom Benutzer festgelegte Standard-Webbrowser gestartet. (Ich habe herausgefunden, dass gnome-default-applications-propertiessich einige gconf-Schlüssel je nach dem aktuell eingestellten Browser ändern. Der Standard-Browserwert kann von jedem dieser Schlüssel abgerufen werden. Deshalb habe ich /desktop/gnome/url-handlers/http/commandihn zum Füllen der $BROWSERVariablen verwendet (der Wert wird vom "%s"Teil entfernt). .)

Gilles
quelle
1
Ich würde die Bearbeitung nicht empfehlen, /usr/bin/sensible-browserda diese Antwort empfohlen wird. Diese Änderung wird bei einem System-Upgrade überschrieben.
Gilles
Anstatt zu versuchen, ein modifiziertes Skript auf einem Benutzersystem zu installieren, besteht eine realistischere Lösung darin, xdg-open gemäß Lucas Antwort zu verwenden. Wenn Sie eine HTML-Datei oder eine URL angeben, wird der Browser geöffnet. Wenn Sie etwas anderes angeben, wird eine entsprechende Anwendung für diesen Ressourcentyp geöffnet. Ich bezweifle, dass es einen guten Grund gibt, eine Datei mit einem Browser zu öffnen, wenn dies von einer anderen Anwendung besser gehandhabt wird, entweder standardmäßig oder gemäß der expliziten Benutzerauswahl. Wenn Sie müssen, können Sie den Browser zwingen, ihn mit x-www-browser zu öffnen (siehe Benjamins Antwort)
flurbius
1

Nur damit Sie es nützlich finden. Ein Fallback-Ansatz und ein Liner.

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

Gute Lektüre für diejenigen, die mit den logischen Operatoren nicht vertraut sind https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at-once-in-linux/ .

; => laufe in allen fällen,

|| => Ausführen, wenn der vorherige Befehl fehlgeschlagen ist (oder)

&& => nur ausführen, wenn der vorherige Befehl erfolgreich ausgeführt wurde

und

var = someval -> setze eine Variable

$ var -> ruft die Variable auf

Mohamed Allal
quelle
1
Überlegen Sie, was dieser Befehl bewirkt, damit andere, die dies sehen, mehr über Ihre Antwort erfahren. Links sind gut, aber Sie müssen sicherstellen, dass der Hauptinhalt des Links in Ihrer Antwort enthalten ist, wenn er Teil Ihrer Antwort ist (falls der Link in Zukunft nicht mehr verfügbar ist).
Zzzach ...
1
@Zzzach ... fertig! und ich verstehe den Punkt. Obwohl es eine einfache Sache war.
Mohamed Allal