4.3. シェルの機能


エイリアス --alias

エイリアス・コマンドと いうのは、任意のコマンドに本来の名前とは別の名前を付けることである。

例えば、

       $ alias ll=ls -al

で本来のコマンド ls -al に新しい名前 ll を付けることができる。

ヒストリ(コマンド履歴) --history

ヒストリ・コマンドを使うと、過去に入力したコマンドのヒストリ・リスト(履歴一覧)を表示することができる。

例えば、

       $ history 10

と入力すると、10回前から直前までのコマンドが出力される。各コマンドに番号が付いていて、これを索引として利用できる。

例えば、

       $ !2

と入力すると、2番目のコマンドが実行される。

ヒストリによく使われるメタキャラクタは、

       !!         :  直前に実行したコマンド
       !n        :  過去に入力された n 番目のコマンド
       !-n      :   現在から n 回分前のコマンド
       !「str」  :   先頭から文字列が str で始まるコマンド

である。

また、ヒストリ・リストを対話的に参照するには、カーソル移動キーの「↑」、「↓」が使える。または、Ctrl-p, Ctrl-n それぞれも同じ意味である。

カーソル・キー「←」、「→」を使うと、コマンドの名前の編集もできる。Ctrl-b, Ctrl-f それぞれも同じ意味である。

ディレクトリ・スタック

Linux の操作では、カレント・ディレクトリを頻繁に変更することがよくある。変更後に直前のディレクトリに戻りたい場合、もちろん、cd コマンドが利用できるが、戻りたいディレクトリのパス名を指定する必要があるので、ちょっと不便でもある。

このようなとき、以前のカレント・ディレクトリ名をスタックに格納しておき、必要に応じて特定のディレクトリに変更できる。この機能をディレクトリ・スタックと いう。ディレクトリ・スタックを操作するには、以下のコマンドが使える。

       dirs           :   現在のディレクトリ・スタックを出力
       pushd        :    カレント・ディレクトリをディレクトリ・スタックに取り入れ、引数で指定したパス名にカレント・ディレクトリを変更する
       popd         :    カレント・ディレクトリをディレクトリ・スタックに一番上のパス名に戻す。


コマンド名とファイル名の補完

長いファイル名やコマンドを入力するとき、タイピング・ミスを行う可能性が高い。この場合、ファイル名あるいはコマンドの先頭から何文字かを入力し、TAB キーを押す と補完機能が有効になり、入力された文字列に一致するファイル名があれば、その完全なファイル名が出力される。

コマンドの実行の仕方について

今まで、紹介したコマンドは、一つずつ入力して実行するの繰り返しだったのだが、いくつかのコマンドをまとめて、順番に実行することもできる。この場合、メタキャラクタ「;」を 使う。

例えば、カレント・ディレクトリが /usr/local/bin であるとしよう。ここから、コマンド pwd, ls, cd を実行したいとき、

       pwd;ls;cd

と入力すれば、順番に pwd 、そして ls , それから cd が実行され、各コマンドの結果が出力される。

また、あるコマンドの後に、メタキャラクタ「&」を 入力すると、そのコマンドはバックグランド・プロセスとなる、要するに、実行終了を待つことなくシェルのプロンプトが表示される。

2つのコマンドを「&」でつなぐと、例えば

       pwd & ls

の場合、pwd と ls コマンドが同時並行に実行されるということになる。通常のコマンド実行のとき、フォアグランド・プロセスと いう。

プロセスの管理

フォアグランドで実行されたプロセスを強制的に終了するには、

       Ctrl c

と入力すればよい。ただし、バックグラウンド・プロセスの場合、kill コマンドを使う必要があり、

       kill [コマンド番号]

と入力する。

現在動いている各プロセス番号を調べるには、ps コマンドを使 う。

例えば、   vi test と入力し、別のコンソールから ps を実行すると、プロセス vi の PID (プロセス番号)が表示される。それは、各自は違う番号だが、この例では 621 であるとする。すると、

       kill 621

と入力すると、vi プロセスを終了させることができる。

なお、プロセスの状態によって、kill コマンドで強制終了させることができない場合もある。そのとき、

       kill -KILL 621

と入力する。

戻る        目次              進む