Windows Anniversary Update(開発コード名はRedStone 1、RS1)に搭載された新機能Windows Subsystem for Linux(以下WSLと略す)。これまで紹介してきた通り、この機能で重要なのはbashだ。今回はbashの使い方の基本を解説する。

 bashの使い方は、WSL内で「man bash」と入力してマニュアルページを見ることも可能だ。bash自体もヘルプ機能があり、「help」コマンドで表示できる。bashコマンド(Windowsの内部コマンド)に関しては、helpの引数として指定すれば、該当のbashコマンドのヘルプが表示される。例えば、cdコマンドは、bashコマンドなので、

help cd

とすればよい(画面1)。

画面1●bash自体のコマンドに関しては組み込みコマンドのhelpで表示が可能。例えばcdはbashの組み込みコマンドなのでman cdではマニュアルページが表示されない
画面1●bash自体のコマンドに関しては組み込みコマンドのhelpで表示が可能。例えばcdはbashの組み込みコマンドなのでman cdではマニュアルページが表示されない
[画像のクリックで拡大表示]

 Linuxでは、複数のタスクを同時に実行できる。プログラムをバックグラウンドタスクとして実行するにはコマンドラインの末尾に「&」をつける。付けなければフォアグラウンドタスクとして実行される。

 フォアグラウンドタスクを終了させるには[Ctrl]+[C]を使う。[Ctrl]+[Z]でフォアグラウンドのプログラムは「中断」状態となる。自分が起動したタスクは「jobs」コマンドで表示可能だ(画面2)。

画面2●コマンドラインから複数タスクを扱うためにjobs、fg、bg、killのコマンドと、[Ctrl]+[Z]によるファグラウンドタスクの中断を使うことができる。単純な仕組みだが、文字のみしか表示できないコンソールで複数のプログラムを同時に実行、制御できる
画面2●コマンドラインから複数タスクを扱うためにjobs、fg、bg、killのコマンドと、[Ctrl]+[Z]によるファグラウンドタスクの中断を使うことができる。単純な仕組みだが、文字のみしか表示できないコンソールで複数のプログラムを同時に実行、制御できる
[画像のクリックで拡大表示]

 バックグラウンドタスクを終了させたい場合、killコマンドを使う。このとき、プロセスidを指定する必要があるが、jobsコマンドに表示されるタスクの場合、先頭に表示されている数字を使い

kill %1

などと指定することが可能だ。これで停止しない場合、強制終了を意味するオプション-9を付けて

kill -9 %1

などとする。9は「SIGKILL」と呼ばれるプロセスに送られるシグナル(プロセスに対するイベントのようなもの)に対応する番号で、UNIX系では古くから使われている機構だ。-9の代わりに「-SIGKILL」とすることもできる。なお、利用できるシグナルに関しては「kill -l」で表示させられる。

 タスクを示す%付き数字は、タスクをフォアグラウンドで実行するfgコマンド、バックグラウンドで実行するbgコマンドでも利用できる。