WSL (Ubuntu): как открыть localhost в браузере с терминала bash - PullRequest
0 голосов
/ 07 октября 2018

Я пытаюсь открыть http://localhost в (любом) браузере с bash-терминала WSL.

Пока я пробовал:

Не повезло в настройке переменной BROWSER для xdg-open, она отвечает на xdg-open http://localhost с помощью /usr/bin/xdg-open: 851: /usr/bin/xdg-open: /c/"Program: not found.

Я пытался сбежать с \ и ^.Используя %ProgramFiles(x86)% и конечно "Program Files (x86)".Более или менее это один и тот же ответ каждый раз ... Есть идеи, как настроить рабочий процесс для открытия браузера в WSL?

До сих пор я получил:

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

Но я ищу более элегантное решение.

Ответы [ 5 ]

0 голосов
/ 16 июля 2019

Чтобы открыть localhost в браузере из терминала bash, вам необходимо настроить wsl таким образом, чтобы он
по умолчанию использовался для того браузера, который был установлен по умолчанию в вашей системе Windows 10.

Вы можете сделать это с помощью некоторых инструментов из wslu («Коллекция утилит для WSL»).
Для этого вам понадобится.

  • wslview (-u, --unregister "удалить wslview в качестве веб-браузера WSL по умолчанию.
    -r, --register" зарегистрировать wslview в качестве веб-браузера WSL по умолчанию.)

  • wslpath (-a "привести результат к формату абсолютного пути",
    -u "преобразовать путь Windows в путь WSL (по умолчанию)")

Вам нужно зарегистрировать свои любимые браузеры, как это ...
Для Google Chrome:
wslview -r $(wslpath -au 'C:\Program Files (x86)\Google\Chrome\Application\chrome.exe')

Для Microsoft Edge:
wslview -r $(wslpath -au 'C:\Windows\SystemApps\Microsoft.MicrosoftEdge_8wekyb3d8bbwe\MicrosoftEdge.exe')

Теперь вы можете открыть localhost как x-www-browser localhost:8080 или www-browser localhost:8080, и x-www-browser или www-browser будут использовать по умолчанию все ваши текущие окна10 браузер по умолчанию при условии, что он был зарегистрирован, как описано выше.
Не забудьте указать порт;У меня не работает только localhost.

Чтобы отменить регистрацию любого браузера, просто измените флаг -r на -u.

Посмотрите справку wslview: info wslview <enter>в терминале wsl и wslpath <enter> для помощи с wslpath.

0 голосов
/ 23 июня 2019

Я создал сценарий, который в основном пересылает xdg-open в powershell -c start

Хотя тестирование не проводилось.

sudo tee /usr/local/bin/xdg-open <<EOF
#!/bin/sh

powershell.exe -c start "'\$@'"
EOF
sudo chmod +x /usr/local/bin/xdg-open

Приветствия Оливер

0 голосов
/ 22 октября 2018

Вы почти у цели.Просто добавьте псевдоним для исполняемого файла Windows Chrome http://www.linfo.org/alias.html

alias chrome="/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe"

Теперь вы можете просто запустить chrome localhost и открыть Chrome в любом месте по вашему желанию.

0 голосов
/ 19 апреля 2019

Вы можете вызвать командную строку Windows из Bash и использовать сопоставление файлов Windows, чтобы открыть URL-адрес в браузере Windows по умолчанию.

Для этого просто введите Bash:

cmd.exe /C start http://localhost

В моем случае это загружает localhost в Chrome, обратите внимание, что полный URL-адрес необходим для Windows, чтобы решить, что делать.

Это похоже на то, что open делает в MacOS, поэтому вам может быть полезно использовать псевдоним команды и использовать ее также для других типов файлов:

# add this to .bash_aliases
open='cmd.exe /C start'

Теперь вы можетеopen URL или open file.pdf напрямую из WSL.

0 голосов
/ 07 октября 2018

Хорошо, во-первых, я больше не использую окна, поэтому я не могу опубликовать полное решение, которое я лично протестировал, но когда я использовал окна, я использовал это, и это сработало.(Вероятно, это должен быть комментарий, но некоторое время назад я удалил некоторые непринятые ответы и присвоил репутацию: /)

Решение:

Не пытайтесь запускать программы Windows изнутриWSL, вместо этого установите версию программы linux и X-сервер, такой как Xming . Вот пример учебника для пересылки приложений X обратно в Xming в Windows.

Подведем итог, установите Xming (в Windows).Затем экспортируйте переменную DISPLAY:

export DISPLAY=:0

Установите Google-Chrome внутри WSL и запустите его через CLI.Он должен отображаться на вашем рабочем столе.

Примечание. Существует также способ использовать PuTTY вместе с XMing для удаленного просмотра, но вам нужно будет отключить брандмауэры Windows и сначала установить полный openssh-сервер внутри WSL.

...