Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows WSL(Ubuntu):如何从bash终端在浏览器中打开localhost_Windows_Bash_Ubuntu_Browser_Windows Subsystem For Linux - Fatal编程技术网

Windows WSL(Ubuntu):如何从bash终端在浏览器中打开localhost

Windows WSL(Ubuntu):如何从bash终端在浏览器中打开localhost,windows,bash,ubuntu,browser,windows-subsystem-for-linux,Windows,Bash,Ubuntu,Browser,Windows Subsystem For Linux,我正在尝试从WSL bash终端在(任何)浏览器中打开 到目前为止,我已经尝试: 为xdg open设置浏览器变量时运气不佳,它会响应xdg openhttp://localhost与/usr/bin/xdg打开:851:/usr/bin/xdg打开:/c/“程序:未找到 我尝试过使用\和^进行转义。使用%ProgramFiles(x86)%和压缩“ProgramFiles(x86)”进行转义。每次的答案或多或少都是一样的……有没有办法设置在WSL中打开浏览器的工作流程 到目前为止,我

我正在尝试从WSL bash终端在(任何)浏览器中打开

到目前为止,我已经尝试:

为xdg open设置浏览器变量时运气不佳,它会响应
xdg openhttp://localhost
/usr/bin/xdg打开:851:/usr/bin/xdg打开:/c/“程序:未找到

我尝试过使用
\
^
进行转义。使用
%ProgramFiles(x86)%
和压缩
“ProgramFiles(x86)”
进行转义。每次的答案或多或少都是一样的……有没有办法设置在WSL中打开浏览器的工作流程

到目前为止,我的结论是:

/c/Program\Files\\(x86\)/Google/Chrome/Application/Chrome.exe localhost


但我正在寻找更优雅的解决方案。

好的,首先,我不再使用windows,所以我无法发布我亲自测试过的完整解决方案,但回到我使用windows时,我经常这样做,而且效果很好。(这可能是一个评论,但不久前我删除了一些未被接受的答案,并对相关的声誉进行了评估:/)

解决方案:

不要尝试从WSL内部启动windows程序,而是安装linux版本的程序和X服务器,例如。用于将X应用程序转发回windows上的Xming

总结,安装Xming(在Windows上)。然后导出显示变量:

导出显示=:0

在WSL中安装google chrome并通过CLI启动。它应该显示在您的桌面上


注意:还有一种方法可以将PuTTY与XMing一起用于远程查看,但您需要先禁用Windows防火墙并在WSL中安装完整的openssh服务器。

您就快到了。只需为Windows chrome可执行文件添加一个别名即可


现在,您只需运行
chrome localhost
并在任何需要的web位置打开chrome即可。

您可以从Bash调用Windows命令行,并使用Windows文件关联以使用默认Windows浏览器打开URL

为此,只需键入Bash:

cmd.exe/C启动http://localhost
在我的例子中,这会在Chrome中加载
localhost
,请注意,完整的URL对于Windows决定要做什么是必要的

这与MacOS中的
open
类似,因此您可能会发现直接将命令别名并将其用于其他类型的文件很有用:

#将此添加到.bash_别名
open='cmd.exe/C start'
现在您可以从WSL直接
打开URL
打开file.pdf



注意:由于您只是将命令重定向到
cmd.exe
,因此它需要访问您使用的文件。因此,当您在Windows文件系统中工作时,上述解决方案将起作用,但当您在Linux分区中使用文件时,可能会失败(即在
tmp
bin
文件夹中)。这可能在WSL的新版本中,但我没有对其进行测试。

我创建了一个脚本,基本上将
xdg open
转发到
powershell-c start

不过测试不多


sudo-tee/usr/local/bin/xdg-open要从bash终端在浏览器中打开localhost,您需要配置wsl,使其默认为windows 10系统中设置为默认的任何浏览器。

您可以使用wslu(“WSL实用程序集合”)中的一些工具来实现这一点。
为此,您需要。

  • wslview(-u,--unregister“删除wslview作为默认WSL web浏览器。
    -r、 --注册“将WSL视图注册为默认WSL web浏览器。)

  • wslpath(-a“强制结果为绝对路径格式”,
    -u“从Windows路径转换为WSL路径(默认)”)

您需要像这样注册首选浏览器…
对于谷歌浏览器:
wslview-r$(wslpath-au'C:\Program Files(x86)\Google\Chrome\Application\Chrome.exe')


对于Microsoft Edge:
wslview-r$(wslpath-au'C:\Windows\SystemApps\Microsoft.microsofedge_8wekyb3d8bbwe\microsofedge.exe)


现在,您可以以
x-www-browser localhost:8080
www-browser localhost:8080
的形式打开localhost,并且x-www-browser或www-browser将默认为您当前的windows 10默认浏览器,前提是它已按上述方式注册。
不要忘记指出端口;本地主机本身不适合我。

要注销任何浏览器,只需将-r标志更改为-u。

查看wsl终端中的wslview帮助:
info wslview

wslpath
获取有关wslpath的帮助。

找到了这篇适合我的文章:

简言之:

步骤1-为Jupyter笔记本生成配置:

jupyter notebook --generate-config
步骤2-使用“nano”或其他编辑器编辑配置文件

配置文件应位于“.jupyter”文件夹下的主目录下:

步骤3-通过重定向文件禁用启动浏览器

首先注释掉该行,然后将True更改为False:

c.NotebookApp.use_redirect_file = False
步骤4-在.bashrc文件中添加一行以设置浏览器路径

export BROWSER='/mnt/c/Program Files(x86)/Google/Chrome/Application/Chrome.exe'

对我来说,它是Windows程序文件下的Chrome。否则,WSL下的任何linux安装都没有本地浏览器可启动,因此需要将其设置为Windows可执行文件

步骤5-重新启动.bashrc

source.bashrc


这应该行得通!

您可以像以前那样设置浏览器变量。但是
xdg open
在WSL中作为
xdg open
脚本设置为使用未引用的环境变量(在这种情况下
~/.jupyter/jupyter_notebook_config.py
c.NotebookApp.use_redirect_file = False
sudo npm install -g wsl-open
wsl-open http://google.com
wsl-open -w // sets wsl-open as the Shell Browser
xdg-open http://google.com