How to launch default web browser from the terminal?

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

  • Evan

    Evan Correct answer

    10 years ago

    sensible-browser is the command you're looking for.

    What about the differences between `sensible-utils` package and the system of alternatives found in `/etc/alternatives` and modified by `update-alternatives`?

    For me `sensible-browser` opens Opera instead pf default Chrome. `xdg-open` works as expected.

    what @Incrop said is still true for Ubuntu 16.04, this opens Firefox instead of my default browser Chromium.

    `sensible-browser` doesn't follow user preference configured in unity-control-centre. `xdg-open` does.

    Although my default (gnome) browser is Firefox, `sensible-browser` opens Chrome.

  • 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.

    what does xdg stand for? Its hard to remember without knowing that.

    XDG stands for X Desktop Group aka freedesktop.org

    Still still works on a default Ubuntu 16.04 installation.

    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)

    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)

    Looks like xdg-open is deprecated. Use gio open , instead.

  • You can also use:

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

    And it will open the URL in the default browser.

    for me, in Ubuntu 16.04, this will open Firefox even though Chromium is set as the default browser in the "Default Applications" setting.

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

    gnome-open http://askubuntu.com
    

    With default Ubuntu setup, **sensible-browser** and **xdg-open** commands work as well.

    The advantage is that you can use `gnome-open` for almost all file-types, URIs and directories. It's one command to learn, instead of trying to remember about obscure commands like `sensible-browser`

    @Stefan Lasiewski: `xdg-open` should do the same thing - actually, it will call `gnome-open`, or `kde-open`, or whatever, depending on your desktop environment. Thus it's more portable.

    in Ubuntu 16.04, gnome-open is not installed by default

    gnome-open is dependent on gnome desktop, better off using xdg as its more common

    `gnome-open` is not installed by default lately.

  • 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). )

    I wouldn't recommend editing `/usr/bin/sensible-browser` as this answer recommends. This change will be overwritten on a system upgrade.

    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)

  • Just that you may find it useful. A fallback approach, and one liner.

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

    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

    Consider explaining what this command does so that others that see this know more about your answer. Links are good, but you need to ensure the key content of the link is in your answer if it is part of your answer (incase the link dies in the future).

    @Zzzach...done! and i get the point. Though it was a simple matter.

License under CC-BY-SA with attribution


Content dated before 6/26/2020 9:53 AM