【问题标题】:Linux: command to open URL in default browserLinux:在默认浏览器中打开 URL 的命令
【发布时间】:2011-07-04 05:47:00
【问题描述】:

我们必须在 Linux(不同的常见发行版)上执行什么命令(来自 Java,但这无关紧要)才能在默认浏览器中打开给定的 URL?

【问题讨论】:

    标签: linux browser default


    【解决方案1】:

    交叉分布最多的是xdg-open @987654321@

    【讨论】:

    • 很遗憾在 RHEL 中不存在
    • @OndraŽižka sensible-browser 也是 debian-only,不是吗?什么可以在 RHEL 中发挥作用?
    • RHEL中存在,安装包'xdg-utils'。
    • 在我的 Debian 7 中不存在。必须改用 'wget'。
    • 在 Debian 中,它也是包“xdg-utlls”,就像在 RHEL 中一样。
    【解决方案2】:

    我相信最简单的方法是使用 Python:

    python -m webbrowser "http://www.example.com/"
    

    【讨论】:

    • 就像一个魅力。也可以跨平台(至少适用于 mac 和 linux)
    • 如果安装了 Python,也可以在 Windows 上使用。
    • 对于跨平台用例,我更喜欢此解决方案,但仅对于 Linux,与 xdg-open 相同的 url 相比,在我的系统上运行所需的时间确实是 xdg-open 的 7-8 倍.
    • 就像在 Windows 上运行它的人的注释一样:我发现它经常打开 Internet Explorer。 (而不是用户配置的默认值)但我猜它可以工作。 ?
    【解决方案3】:

    在 ubuntu 上你可以试试 gnome-open。

    $ gnome-open http://www.google.com

    【讨论】:

      【解决方案4】:

      在 Java(版本 6+)中,您也可以这样做:

      Desktop d = Desktop.getDesktop();
      d.browse(uri);
      

      虽然这不适用于所有 Linux。在撰写本文时,支持 Gnome,不支持 KDE。

      【讨论】:

        【解决方案5】:

        至少在 Debian 及其所有衍生产品上,有一个“sensible-browser”shell 脚本可以选择最适合给定 url 的浏览器。

        http://man.he.net/man1/sensible-browser

        【讨论】:

          【解决方案6】:

          在带有 open 命令的发行版中,

          $ open http://www.google.com
          

          【讨论】:

          • 在 Ubuntu 16.04 上它不起作用,因为它试图打开文件。
          【解决方案7】:

          我认为使用xdg-open http://example.com 可能是最好的选择。

          如果他们没有安装它,我想他们可能只有 kde-opengnome-open(两者都采用单个文件/url)或其他一些解决方法,例如循环浏览常见的浏览器可执行文件名称,直到你找到一个可以执行的(使用哪个)。如果您想要完整的解决方法/备用方法列表,我建议您阅读 xdg-open(这是一个调用 kde-open/gnome-open/etc. 或其他备用方法的 shell 脚本)。

          但是由于 xdg-open 和 xdg-mime(用于其中一种备用)是 shell 脚本,我建议将它们包含在您的应用程序中,如果调用 which xdg-open 失败,请将它们添加到子程序环境中的临时 PATH 变量中并呼唤他们。如果 xdg-open 失败,我建议从它在 stderr 上输出的内容中抛出一个带有错误消息的异常,并捕获异常并打印/显示错误消息。

          我会忽略 java awt 桌面解决方案,因为该错误似乎表明他们不打算很快支持非 gnome 桌面。

          【讨论】:

            【解决方案8】:
            ###1     Desktop's -or- Console use:
            sensible-browser $URL; # Opinion: best. Target preferred APP.
            # My-Server translates to: w3m [options] [URL or filename] 
            ## [ -z "$BROWSER" ] && echo "Empty"
            # Then, Set the BROWSER environment variable to your desired browser.
            
            ###2     Alternative 
            # Desktop (if [command-not-found] out-Dated)
            x-www-browser http://tv.jimmylandstudios.xyz # firefox
            
            ###3     !- A Must Know -!
            # Desktop (/usr/share/applications/*.desktop)
            xdg-open $URI # opens about anything on Linux (w/ .desktop file)
            

            【讨论】:

            • 请考虑在您的答案中添加一些细节。
            • 在 Shell 脚本中使用任何这些命令时,您需要先测试它们是否存在(例如 command -v $CMD )。美元? = 0
            【解决方案9】:

            我认为 shellholic 描述的 xdg-open 和 - 如果失败 - 使用 which 描述的which 命令查找浏览器的解决方案@ 987654321@ 的组合可能是最好的解决方案。

            【讨论】:

              【解决方案10】:

              通过终端在浏览器中打开一个 URL,CentOS 7 用户可以使用 gio open 命令。例如,如果您想打开 google.com,那么gio open https://www.google.com 将在浏览器中打开 google.com URL。

              xdg-open https://www.google.com 也可以使用,但此工具已被弃用,请改用gio open。我更喜欢这个,因为这是使用终端命令打开 URL 的最简单方法。

              【讨论】:

                【解决方案11】:

                如果您在 Windows10(包括 WSL2 *nix shell)中,您可以尝试:

                  explorer.exe   https://stackoverflow.com
                
                  or
                
                  cmd.exe /c start   https://stackoverflow.com/?foo=bar
                

                很奇怪,但它有效!

                注意:在 WSL 的情况下,存在一个已知错误,它禁止将查询参数传递到 url。解决方法是使用“cmd.exe /c start url”

                https://github.com/microsoft/WSL/issues/3832

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 1970-01-01
                  • 2017-10-03
                  • 2018-08-21
                  • 2014-12-29
                  • 2014-12-06
                  • 1970-01-01
                  • 1970-01-01
                  • 2011-01-23
                  相关资源
                  最近更新 更多