120

I was wondering what's the terminal command to open the default web browser.

Mahir
  • 385
  • 3
  • 14
Luca
  • 2,402
  • 2
  • 17
  • 13

7 Answers7

123

xdg-open <URL> is the command you're looking for.

Or:

sensible-browser but as per sensible-browser(1), it only works properly on Debian or if the BROWSER environment variable is set. There’s also an open but stale MR in the sensible-utils repository to respect Ubuntu’s xdg-settings.

Evan
  • 4,988
  • 1
  • 23
  • 19
  • What about the differences between `sensible-utils` package and the system of alternatives found in `/etc/alternatives` and modified by `update-alternatives`? – enzotib Oct 19 '10 at 12:59
  • 13
    For me `sensible-browser` opens Opera instead pf default Chrome. `xdg-open` works as expected. – incrop Jun 17 '14 at 15:12
  • 3
    what @Incrop said is still true for Ubuntu 16.04, this opens Firefox instead of my default browser Chromium. – Andreas Hacker Mar 16 '17 at 10:58
  • 6
    `sensible-browser` doesn't follow user preference configured in unity-control-centre. `xdg-open` does. – Tankman六四 Feb 05 '18 at 00:58
  • 2
    Although my default (gnome) browser is Firefox, `sensible-browser` opens Chrome. – alfC Jan 20 '20 at 05:31
  • For me, under Linux Mint, sensible-browser opens the right one, and xdg-open opens the wrong one. – pyrsmk Jun 12 '20 at 07:14
95

Searching on Google I found the answer.

xdg-open opens a file or URL in the user's preferred application. If a URL is provided the URL will be opened in the user's preferred web browser. If a file is provided the file will be opened in the preferred application for files of that type. xdg-open supports file, ftp, http and https URLs.

xdg-open is part of xdg-utils package and it's already installed on Ubuntu 10.10.

Th. Ma.
  • 107
  • 1
  • 4
Luca
  • 2,402
  • 2
  • 17
  • 13
  • 1
    what does xdg stand for? Its hard to remember without knowing that. – Thupten Jul 13 '14 at 14:42
  • 4
    XDG stands for X Desktop Group aka freedesktop.org – Luca Jul 13 '14 at 19:05
  • Still still works on a default Ubuntu 16.04 installation. – Andreas Hacker Mar 16 '17 at 11:20
  • 3
    if the user once configured to open html files with a text editor by default, this will not work. OP asks for a way to open the **web browser**, not the default application for html files (even though by default it's the same) – phil294 Jun 29 '17 at 16:48
  • This will work on any gnu/linux distro that has x-server window manager (that is just about all of them - eg debian, *buntu, fedora, manjaro, Arch etc) – flurbius Dec 27 '17 at 19:58
  • Looks like xdg-open is deprecated. Use gio open , instead. – Mike Aug 05 '19 at 19:16
  • @Mike it isn't deprecated. https://www.reddit.com/r/archlinux/comments/8mniks/is_xdgopen_and_gio_the_same_thing_if_not_which/ – Vik Mar 04 '21 at 08:35
23

You can also use:

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

And it will open the URL in the default browser.

neydroydrec
  • 4,530
  • 10
  • 36
  • 47
8

Just that you may find it useful. A fallback approach, and a one-liner:

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

You can also add the following function to your system (your shell script, .bashrc, .zshrc, alias or functions files, ...):

function openUrl() {
   local URL="$1";
   xdg-open $URL || sensible-browser $URL || x-www-browser $URL || gnome-open $URL;
}

and you use as:

openUrl www.wikipedia.com

Good reading for the no familiar with the logical operators https://www.howtogeek.com/269509/how-to-run-two-or-more-terminal-commands-at-once-in-linux/.

; => run in all cases,

|| => run if the precedent command failed (or)

&& => run only if the precedent command succeed

and

var=someval -> set a variable

$var -> invoke the variable

Mohamed Allal
  • 183
  • 1
  • 5
5

With default Ubuntu setup only gnome-open command comes to mind.

gnome-open http://askubuntu.com
kounryusui
  • 1,596
  • 2
  • 13
  • 16
1

On Raspberry Pi Ubuntu I did this to start a webpage, fullscreen (in Kiosk mode) on startup:

# put in ~/.bash_profile
DISPLAY=:0 chromium-browser --app=https://your.website —kiosk &
1

I played around this a little. There is a problem with gnome-open — it won't invoke the default web browser unless you specify a url. That's a problem if you want to set up an icon or a shortcut that will always launch the browser that is set as default. Other times you might need to set it as a parameter for some programs that require a link to a web browser and don't work well with gnome-open (e.g.: acroread). You might solve this by using either x-www-browser or gnome-www-browser system links that you can set up through update-alternatives, but those are system wide settings, not user specific (and they are not synchronized with the values set through gnome-default-applications-properties. All this can be solved by opening the sensible-browserexecutable (which is actually a script):

sudo gedit $(which sensible-browser)

and adding this at the beginning:

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

That will make sensible-browser always launch the user-specified default web browser. (I found out that gnome-default-applications-properties changes some gconf keys according to the browser that is currently set. The default browser value can be obtained from any of these keys so I went for /desktop/gnome/url-handlers/http/command and used it to fill the $BROWSER variable (the value is stripped of the "%s" part). )

Gilles 'SO- stop being evil'
  • 59,745
  • 16
  • 131
  • 158
  • 2
    I wouldn't recommend editing `/usr/bin/sensible-browser` as this answer recommends. This change will be overwritten on a system upgrade. – Gilles 'SO- stop being evil' Feb 21 '14 at 11:53
  • rather than try to install a modified script on a users system, a more realistic solution is to use xdg-open as per Luca's answer. If you specify a html file or a URL it WILL open the browser - if you supply something else it will open an appropriate application for that type of resource. I doubt there is any good reason to open some file with a browser when it will be better handled by some other application, either by default or in accordance with the users explicit choice. If you must, you can force the browser to open it with x-www-browser (see Benjamin's answer) – flurbius Dec 27 '17 at 20:34