web-dev-qa-db-ja.com

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

Windowsサブシステムfor Linux(WSL)のターミナルはかなり最小限です。私はWindowsでターミナルをあまり使用していません-私は一般的にUbuntuまたはOSXを使用します-しかし、デフォルトのターミナルがとてもむき出しであることに驚いています。

次のいずれかが可能ですか?

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

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

29
David LeBauer

私は個人的に後者を行います: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 ShellからWindowsプログラムを実行します。

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

また、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);
26
aikeru

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

  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では動作しないようです。 この投稿で提案されている新しいバージョンをインストールする でした。
21
Andrew Mao

wsl-terminal と呼ばれるLinux用Windowsサブシステム(WSL)用のオープンソースターミナルを作成(および使用)しました。これはminttyおよびwslbridgeに基づいています。

screenshot

10
Gore Liu

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

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

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

.profileに$ DISPLAYが設定されています。)

編集:そして、スクリプトを固定可能にするには、ターゲットwscript "C:\path\to\thescript.vbs"を使用してショートカットを作成します。

5
n.caillou

ConEm うまくいきます!インストールして、新しい{bash}コンソールを起動するだけです。 cd ~.bashrcに追加して、デフォルトでホームディレクトリから開始するようにしました。

良い説明: https://conemu.github.io/en/BashOnWindows.html

3
Bill Hoag

Windowsの場合:

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

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

3
mohi

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

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

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

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

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

1
Adrian

より現代のターミナル 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
nelaaro

今日、あなたは "Windows terminal" を使用することをお勧めします。これはMicrosoftによってオープンソース化されています。

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

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

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

pic1

pic2

pic3

pic4

1
Bravo Yeung

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"
],

このガイド を使用して、WLSを取得できました。bashは非常にうまく機能しています。

1
nelaaro

aiker および n.caillo の回答を拡張すると、VBScript/JScriptソリューションのどちらもすぐに機能しなかったためです。

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

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

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

wscript vbscript.vbs

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

0
Frederik Heber