Windows 10 には、Linux アプリケーションを実行するための基盤となる「Linux 用 Windows サブシステム」が含まれていますが、これには Bash シェル経由でのみアクセスできます。ただし、最初に Bash ウィンドウを起動せずに Linux アプリケーションを実行する方法があります。
これは
bash -c
コマンドのおかげで可能です。これを使用して、コマンド プロンプトや PowerShell 経由で Linux コマンドを実行したり、起動時に Linux コマンドやプログラムを実行するデスクトップ ショートカットを作成したりすることもできます。
更新 : 複数の Linux 環境がインストールされている場合は、 wslconfig コマンドを使用してデフォルトの Linux 環境を選択 できます。特定の Linux 環境でコマンドを実行する方法もあります。
コマンド プロンプトまたは PowerShell で Linux コマンドを実行する方法
これを行う前に、 Windows 10 の Bash シェルをインストールしてセットアップする 必要があります。その後、コマンド プロンプト ウィンドウを開いて次のコマンドを実行すると、Bash ウィンドウの外で Linux ソフトウェアを実行できます。
bash -c "コマンド"
たとえば、apt-get 経由で emacs パッケージをインストールしたいとします。コマンド プロンプト ウィンドウで次のコマンドを実行します。
bash -c "sudo apt-get install emacs"
bash -c を使用すると、Windows はバックグラウンドで Bash シェルを起動し、そこにコマンドを渡します。コマンドは Bash シェルとともに完了するまで実行され、完了すると終了します。現在のコマンドが実行するターミナル出力は、別個の Bash シェル ウィンドウではなく、コマンド プロンプト ウィンドウに直接表示されます。
このトリックを使用すると、通常の Windows 実行可能ファイルを実行するのと同じように、PowerShell で Linux コマンドを実行することもできます。これを行うには、コマンド プロンプト ウィンドウで行う場合と同様に .exe ファイルを直接実行するか、PowerShell で実行可能ファイルを実行するためのその他の方法を使用します。
bash -c "uname -a"
コマンド プロンプト ウィンドウと同様に、コマンドの出力は PowerShell に直接表示されます。これらのメソッドを使用して、Linux コマンドをバッチ ファイルまたは PowerShell スクリプトに追加することもできます。
「実行」ダイアログまたは「スタート」メニューから Linux コマンドを実行する方法
このトリックは、[ファイル名を指定して実行] ダイアログ、[スタート] メニュー、またはサードパーティのアプリケーション ランチャーからコマンドを実行する場合にも機能します。
たとえば、[ファイル名を指定して実行] ダイアログから vi を起動するには、キーボードの Windows + R を押して、次のコマンドを実行します。
バッハ -c "vi"
vi テキスト エディタが独自のウィンドウに表示されます。
これは [スタート] メニューでも機能するため、同じコマンドを [スタート] メニューに直接入力し、Enter キーを押してコマンドとして実行できます。
デスクトップ ショートカットを使用して Linux コマンドを実行する方法
bash -c
コマンドを使用すると、デスクトップのショートカットから Linux アプリケーションを起動することもできます。たとえば、デスクトップのショートカットから vi テキスト エディタを起動したいとします。デスクトップを右クリックし、[新規] > [新しいショートカット] をポイントし、次のターゲットを入力します。
bash -c "vi"
これでショートカットを保存できるようになり、ダブルクリックすると vi が起動します。
興味深いことに、このトリックはデスクトップのショートカットからグラフィカル Linux アプリケーションを起動する場合にも機能します。 X サーバーをインストールし、 グラフィカル Linux デスクトップ アプリケーションをセットアップします 。ショートカットを作成して直接起動できるはずです。
ただし、次のように起動する必要があります。
bash -c "DISPLAY=:0 コマンド"
Windows の他の場所から Bash コマンドを起動することはできますが、Bash シェル ウィンドウから Windows ソフトウェアや実行可能ファイルを直接実行する方法はありません。





