WSL bashターミナルから(任意の)ブラウザーで http:// localhost を開こうとしています。
これまでのところ、私は試しました:
Xdg-openのBROWSER変数を設定することはできません。これは_xdg-open http://localhost
_に_/usr/bin/xdg-open: 851: /usr/bin/xdg-open: /c/"Program: not found
_で応答します。
_\
_と_^
_でエスケープしてみました。 %ProgramFiles(x86)%
およびofcorse "Program Files (x86)"
を使用します。多かれ少なかれそれは毎回同じ答えです... WSLでブラウザを開くためのワークフローを設定する方法のアイデアはありますか?
これまでのところ、私は次のようになりました:
/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe localhost
しかし、私はよりエレガントな解決策を探しています。
Bashターミナルからブラウザーでlocalhostを開くには、wslを構成して、
デフォルトは、Windows 10システムでデフォルトとして設定されているブラウザーです。
これを行うには、wsluからいくつかのツールを使用します(「WSLのユーティリティのコレクション」)。
この目的のために必要です。
wslview(-u、--unregister "remove wslview as the default WSL web browser。
-r、--register "wslviewをデフォルトのWSL Webブラウザーとして登録します。)
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は、上記のように登録されている場合、現在のWindows 10のデフォルトブラウザーにデフォルトで設定されます。
ポートを示すことを忘れないでください。 localhostだけではうまくいきませんでした。
ブラウザの登録を解除するには、-rフラグを-uに変更します。
Wslviewヘルプ:wslターミナルのinfo wslview <enter>
とwslpathのヘルプはwslpath <enter>
をご覧ください。
BashからWindowsコマンドラインを呼び出し、Windowsファイルの関連付けを使用して、デフォルトのWindowsブラウザでURLを開くことができます。
これを行うには、Bashと入力します。
cmd.exe /C start http://localhost
私の場合、これはlocalhost
をChromeにロードします。Windowsが何をすべきかを決定するには、完全なURLが必要であることに注意してください。
これはopen
がMacOSで行うことと似ているため、コマンドに直接エイリアスを付けて、他のタイプのファイルにも使用すると便利な場合があります。
# add this to .bash_aliases
open='cmd.exe /C start'
これでopen URL
またはopen file.pdf
WSLから直接。
あと少しです。ウィンドウのエイリアスを追加するだけですchrome実行可能ファイル http://www.linfo.org/alias.html
alias chrome="/c/Program\ Files\ \(x86\)/Google/Chrome/Application/chrome.exe"
これで、chrome localhost
を実行して、必要なWebの場所でchromeを開くことができます。
基本的に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
乾杯オリバー
さて、まず第一に、私はウィンドウをもう使用しないので、個人的にテストした完全なソリューションを投稿することはできませんが、ウィンドウを使用していたときは、これを使用してこれを実行しました。 (これはおそらくコメントになるはずですが、しばらく前に私は受け入れられない回答をいくつか削除し、関連する評判をたくさん削除しました:/)
解決:
WSL内からWindowsプログラムを起動するのではなく、プログラムのLinuxバージョンと Xming などのXサーバーをインストールしてください。 これはチュートリアルの例です XアプリをWindowsのXmingに転送するために。
要約すると、Xming(Windows)をインストールします。次に、DISPLAY変数をエクスポートします。
export DISPLAY=:0
WSL内にgoogle-chromeをインストールし、CLI経由で起動します。デスクトップに表示されるはずです。
注:リモート表示のためにXMingと一緒にPuTTYを使用する方法もありますが、Windowsファイアウォールを無効にし、WSL内に完全なopenssh-serverを最初にインストールする必要があります。