Windows Subsystem for Linux(WSL)のより良い端末体験?


29

Linux用Windowsサブシステム(WSL)のターミナルは、ごくわずかです。私はWindowsで端末をあまり使用していません-私は一般的にUbuntuまたはOSXを使用していますが、デフォルトの端末があまりにも裸であることに驚いています。

以下のいずれかが可能ですか?

  1. WindowsターミナルプログラムをWSLに接続するか、

  2. WSLからUbuntuウィンドウプログラムをXウィンドウとして起動しますか?

回答:


26

私は個人的に後者を行います:VcXsrvをマルチウィンドウモードでXサーバーとして使用してからxfce4-terminalを起動します(gnome-terminalには視覚的な問題があったので修正方法を学ぼうとは思わなかったため)、そして突然フォントと色をサポートする有能な端末。

これらをbashrcに追加する必要があることがわかりました...

export DISPLAY="localhost:0"
export TERM=xterm-256color

dbusのこのredditから修正を行います

sudo sed -i 's$<listen>.*</listen>$<listen>tcp:host=localhost,port=0</listen>$' /etc/dbus-1/session.conf

compizもインストールし、cbwinプロジェクトを使用してxfce4-terminalシェルからWindowsプログラムを実行します。

私はこのセットアップに非常に満足しており、NeoVim +多くのネイティブlinuxプラグインを使用していますが、「作業用」マシンはWindowsでなければなりません。:)

また、Bash-on-Linux-on-WindowsでSSHサーバーを起動して、CygwinなどのMinTTYから接続することもできます。

PS:xfce4-terminalを簡単に起動し、追加のbash cmdウィンドウなしで起動するために、コンソールウィンドウなしでxfce4-terminalを起動する引数を指定してbashプロセスを起動するだけのプログラムを作成しました。私はこれをC#で行いました-基本的には引数「UseShellExecute」falseおよび「CreateNoWindow」trueを使用します。その後、それをタスクバーに固定しましたが、ほとんど見えません。

編集:VBScriptの答えは素晴らしいです。これは同じスクリプトですが、JScriptバージョンです...

WScript.CreateObject("WScript.Shell").run('bash.exe -l -c "DISPLAY=:0.0 xfce4-terminal"', 0, false);

1
包括的であり、stackoverflow.com / a / 39188790を見つけるのに役立ったため、回答を選択しました。MobaXtermを> 9.0に更新すると、WSLの適切な端末になったことに気付きました。
デビッドルバウアー16

好奇心anyone盛な方は、ここからthe "fix from reddit" for dbus解除されたreddit投稿へのリンクをご覧ください
tel

@telありがとう!私は実際にそれがどこから来たのか分からず、リンクを追加しました
...-aikeru

「修正する必要のない視覚的な問題」がディレクトリまたはファイル名のプロンプトの一部を見ることができない場合、それらは濃い青色であるためです。紫色のgnome-terminalの背景には表示されません。秘Theは、濃い青をターコイズに再マッピングすることです。その後、正常に機能します。
WinEunuuchs2Unix

22

他の回答のすべての暗黙のステップを理解するのに少し時間がかかったので、ここにステップごとの要約があります:

  1. Windowsでは、VcXsrvまたはXMingをインストールします。
  2. Bash for Windowsで、ターミナルをインストールしますsudo apt-get install xfce4-terminal
  3. に追加export DISPLAY=:0します.bashrc。(それを追加する.profile.bash_profile 、私のために機能しませんでした)。これによりxfce4-terminal、bashから適切に起動できますが、以下のコマンドとは直交しています。
  4. ショートカットまたは実行プロンプトで次を実行します(@OhJeezがコメントで示唆したとおり)。

    powershell -windowstyle hidden -Command "iex \"bash ~ -c 'DISPLAY=:0 xfce4-terminal'\" "
    

その他の注意事項:

  • ~開始bashあなたのホームディレクトリには、あなたはどのようなディレクトリで起動し、それを削除することができます.vbs代わりに、ファイルが入っています。そのC:\Users\fooため、たとえばに入れると便利です。
  • スクリプトが機能するには、XMingが実行されている必要があることに注意してください。Windowsで自動的に起動するには、この記事の指示に従ってください。
  • Emacs 24(Ubuntu 14.04に含まれています)はXMingでは動作しないようです。この投稿で提案されているように、新しいバージョンインストールする必要がありました。

1
ご協力いただきありがとうございます。スクリプトを実行しても何も起こらないようです(Xmingサーバーが実行されています)。ただし、bashを開いて実行するxfce4-terminalと正常に動作します。さらに、bash -l -c xfce4-terminalwindows cmdから実行すると警告が表示されGtk-WARNING **: cannot open display:、何も起こりません。これらのコマンドがまったく同じように動作するはずだと思ったので、私はかなり混乱していますか?
-rperryng

@rperryngええ-oneいbashコマンドプロンプトを表示せずにxfceを開くためのワンライナーを取得しようとしていますが、まだ運はありません。
アンドリューマオ

1
ショートカットを使用してxfce4-terminalを起動するための最適なソリューション。ちらつきがありますが、ウィンドウが残っていません:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -Command "iex \"bash.exe ~ -c 'DISPLAY=:0 xfce4-terminal'\" " Xmingが実行されていない場合にXmingを開始する別のバージョン:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -windowstyle hidden -Command "iex '& \"C:\Program Files (x86)\Xming\Xming.exe\" -multiwindow'; iex \"bash.exe ~ -c 'DISPLAY=:0 xfce4-terminal'\" "
-OhJeez

@OhJeez素晴らしい、そのコマンドの複雑さを解決してくれてありがとう。
アンドリューマオ

高解像度ディスプレイの回避策。4kディスプレイを使用している場合、端末にぼやけたフォントが表示されます。これを修正するには、以下が必要です。1. Xing sourceforge.net/projects/vcxsrvの代わりに「VcXsrv Windows X Server」を使用します 。2.互換モードでxserverを実行します。これを行うには、VcXsrvショートカットをマウスの右ボタンでクリックする必要があります。「プロパティ」を選択します。[互換性]タブで、[高DPIスケーリング動作を上書き...]に対してチェックボックスを設定し、次のドロップダウンで[アプリケーション]を選択します。3. xfce4-terminalを実行し、フォント設定を変更します。フォントをより大きなフォントに変更します。
koorchik

10

私が作成した(および使用)と呼ばれるLinux用のWindowsサブシステム(WSL)のためのオープンソース端子WSL-の端末を、それが基づいているminttywslbridge

スクリーンショット


自己宣伝に注意してください-スパムのように見える可能性があります。askubuntu.com/help/promotion

2
あなたがそれを認めれば自己宣伝は大丈夫です
デビッドルバウアー

そして、あなたはそれを認めていません。
ムル

5
そしてwsl-terminal、より良い端末体験を提供する理由に関する詳細を追加してください。
シンプリソロワジ

2
これを共有していただきありがとうございます。あなたのものはすでにビルトイン端末よりもうまく機能しています-少なくともコマンドラインでの行の折り返しを少しうまく処理できます。ただし、コマンドの先頭にすばやく移動するためのCTRL-Aは依然として失敗します。私はこのようなものを自己宣伝する人々に満足しています。人々は落ち着かなければなりません。
EDH

5

Ubuntuの新規インストールでは、XMing(Windowsの場合)をインストールし(Ubuntuの場合)xfce4-terminalをインストールexport DISPLAY=:0しました。

Windowsのデフォルトコンソールを取り除くために、このVBSスクリプトは次のことを行います。

WScript.CreateObject("WScript.Shell").run "bash -l -c xfce4-terminal", 0, True

(。に$ DISPLAYが設定されて.profileいる場合)

編集:そして、スクリプトをpin'ableにするには、targetでショートカットを作成しますwscript "C:\path\to\thescript.vbs"


VBSは動作しているように見えますが、ターミナルウィンドウはすぐに開いたり閉じたりします。どうすればそれを実行し続けることができますか?
TCB13

3

Windowsの場合:

  • bashウィンドウの左上隅をクリックします。
  • 開いたメニューで「プロパティ」を選択します
  • フォントなどの必要なオプションを設定します(Ubuntuモノフォントもあります!)
  • プロパティを設定すると、現在のウィンドウに適用されます。それらをデフォルトとして設定するには、ウィンドウの左上をクリックして、デフォルトをクリックします。
  • Alt + Enterを押すと、全画面モードを切り替えることができます。

これがお役に立てば幸いです。


私は、マウスのサポートを追加することを除いて、Ubuntuの(Gnomeの)ターミナルと同じ外観/使用法を持っていることを指摘したいと思います。すなわち、次の列見出しをクリックできますhtop
WinEunuuchs2Unix


2

Extratermは単なるターミナルエミュレータではありません。端末およびコマンドラインアプリケーションで作業するためのツールボックスを提供します。

  • 特徴
  • LinuxおよびmacOS、Windows WSL、CMD、PowerShell、およびCygwinをサポート
  • xterm互換
  • 複数のタブとペイン、好きなように分割してタイル表示
  • ターミナルで画像を表示する
  • Unicodeサポート
  • カラー絵文字
  • キーボードフレンドリーな「コマンドパレット」
  • 設定可能なキーバインディング
  • キーボードベースの選択
  • シェル統合; コマンド出力を分離して「フレーム化」できます。(bash、zsh、および魚のサポート)
  • シェル統合を使用した簡単なアップロードとダウンロード
  • コマンド出力はその場で編集可能です。マルチカーソル編集
  • 前のコマンド出力は、新しいコマンドの入力として使用できます
  • iTerm2およびTextMateテーマをサポート
  • テキストズーム

本当に欲しい機能があるので、今この端末を使用しています。cmd、powershell、bash、fishな​​どを簡単に切り替える方法
nelaaro

1

Windows 10(およびWSL)の最新の更新以降、すべてが「ネイティブ」のWindows bashコンソールを使用して機能しているようです。(そして、私は(有名な)1809 Windowsアップデートについて話していません)。これは、少なくとも1803 17134.345ビルドのエンタープライズバージョンでも機能します)。

https://www.hanselman.com/blog/SettingUpAShinyDevelopmentEnvironmentWithinLinuxOnWindows10.aspxの記事を参照してください。

少し注意点-Windowsでbashコンソールを実際に使用するには、tmuxを起動する必要があります-そして、彼のブログでScottが示したようにすべてが機能します。


こりゃ愉快だ!「exec tmux」は、Windowsネイティブの「bash.exe」端末の問題をすべて解決します(サイズ変更後の行の奇妙な切断)。
イヴドーフスマン

1

より現代の端末https://eugeny.github.io/terminus/

Terminusは、Hyperに大きな影響を受けた端末です。しかし、それは物事を成し遂げる必要がある人々のために設計されています。

  • Windows、macOS、Linuxで実行
  • テーマと配色
  • 完全に設定可能なショートカット
  • 倍角文字を含む完全なUnicodeサポート
  • 高速に流れる出力で詰まらない
  • タブ補完を含むWindowsでの適切なシェルのようなエクスペリエンス(Clink経由)
  • PowerShell(+ Core)、WSL(Windows上のBash)、Git-Bash、Cygwin、Cmder、およびCMDのサポート
  • タブを記憶します
  • 統合されたSSHクライアントと接続マネージャー

1

https://hyper.is/

  • それは、javascriptを使用した開発と拡張を容易にする電子に基づいています。
  • デフォルトのWindowsコンソールは一切使用しません。
  • バックエンドシェルbash、cmd、PowerShellを選択できます。

    the shell to run when spawning a new session (i.e. /usr/local/bin/fish)
    if left empty, your system's login shell will be used by default
    
    Windows
    - Make sure to use a full path if the binary name doesn't work
    - Remove `--login` in shellArgs
    
    Bash on Windows
    - Example: `C:\\Windows\\System32\\bash.exe`
    
    PowerShell on Windows
    - Example: `C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0\\powershell.exe`
    shell: 'C:\\Windows\\System32\\bash.exe',enter code here
    

非常に素晴らしいテーマとプラグイン

plugins: [
    //"hyper-dracula"
    //"hyper-solarized-dark"
    "hyper-material-theme"
],

このガイドを使用し、bashを非常にうまく動作させることができました。


ありがとう-おもしろいプロジェクトのように見えますが、このソフトウェアと、WSL用に設定する方法について詳しくお聞かせください。
デビッドルバウアー

1
@DavidLeBauerそれがお役に立てば幸いです。
nelaaro

ハイパーは超低速です。
ミスリル

1

今日、Microsoftがオープンソース化した「Windowsターミナル」を使用することをお勧めします。

公式ビルドは、今年6月中旬にWindowsストアから入手できます。

ただし、以下のプレビューバージョンを使用して体験することもできます。 https://github.com/yanglr/WindowsDevTools/blob/master/awosomeTerminal/WindowsTerminal_SelfSigned_x86_x64_arm64.7z

インストール後、実行結果は以下のとおりです。

pic1

pic2

pic3

pic4


0

aikerun.caillouの回答を拡張して、どちらのVBScript / JScriptソリューションもすぐには機能しなかった。

Call WScript.CreateObject("WScript.Shell").Run("bash.exe -l -c 'DISPLAY=:0.0 xfce4-terminal --working-directory $HOME'", 0, True).

Callrunコマンドで括弧を使用する場合は、スクリプトの前に追加する必要がありますこちらを参照してください。また、ティックは逆方向である必要がありました。さらに、xfce4-terminalへの追加の引数は、ユーザーのホームフォルダーでターミナルを起動します。これが実際にJScriptコードで動作していた場合は申し訳ありませんが、これらのスクリプト言語についてはわかりません。

これをファイルvbscript.vbsとして保存し、cmdプロンプトから実行する

wscript vbscript.vbs

2秒後にxfce4-terminalウィンドウを開きます(XMingなどが実行されている場合)。これを実際にn.caillouの作品で示唆されているショートカットに変えると、ショートカットをクリックすると、少し遅れて新しいxfceターミナルウィンドウが自動的に生成されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.