Product SiteDocumentation Site

付録 B 簡単な補習講座

本書は主として管理者と「パワーユーザ」を対象にしているとは言うものの、やる気のある初心者を仲間はずれにしたくはありません。そのため、この付録は Unix コンピュータを取り扱う際に求められる基礎的な概念を説明する集中講座になるでしょう。

B.1. シェルと基本コマンド

Unix 世界では、管理者全員が遅かれ早かれコマンドラインを使わなければいけません。たとえば、システムが正常な起動に失敗して、コマンドラインのレスキューモードだけが提供される場合です。それゆえ、このような状況下ではコマンドラインインターフェースを取り扱うことが可能なことが基本的なサバイバル技術です。
この節では、コマンドを簡単に見ていきます。ここで挙げたコマンドには多くのオプションが用意されていますが、ここでは説明しませんので、各コマンドに対応するマニュアルページに含まれるたくさんの文書を参照してください。

B.1.1. ディレクトリツリーの閲覧とファイル管理

セッションが開始されたら、pwd コマンド (これは print working directory の略語です) でファイルシステム上の現在の場所を表示することが可能です。現在のディレクトリを変更するには、cd directory コマンド (cdchange directory の略語です) を使います。親ディレクトリは常に .. (ドット 2 つ) で表します。これに対して、現在のディレクトリは . (ドット 1 つ) で表します。ls コマンドは指定したディレクトリの内容を listing (表示) します。パラメータを与えなかった場合、ls コマンドは現在のディレクトリの内容を表示します。
$ pwd
/home/rhertzog
$ cd デスクトップ
$ pwd
/home/rhertzog/デスクトップ
$ cd .
$ pwd
/home/rhertzog/デスクトップ
$ cd ..
$ pwd
/home/rhertzog
$ ls
ダウンロード  デスクトップ  ビデオ  画像
テンプレート  ドキュメント  音楽    公開
新しいディレクトリを作成するには mkdir directory を使い、既存の (空) ディレクトリを削除するには rmdir directory を使います。mv コマンドを使うことでファイルとディレクトリの moving (移動) および名前変更が可能です。一方で、ファイルを removing (削除) するには rm file を実行します。
$ mkdir test
$ ls
test          テンプレート  ドキュメント  音楽  公開
ダウンロード  デスクトップ  ビデオ        画像
$ mv test new
$ ls
new           テンプレート  ドキュメント  音楽  公開
ダウンロード  デスクトップ  ビデオ        画像
$ rmdir new
$ ls
ダウンロード  デスクトップ  ビデオ  画像
テンプレート  ドキュメント  音楽    公開

B.1.2. テキストファイルの表示と書き換え

cat file コマンド (ファイルを標準出力デバイスに concatenate (連結) する) はファイルを読み込んで内容を端末に表示します。ファイルが画面上に表示するには大きすぎる場合、less (および more) などのページャーを使い、ページごとに内容を表示します。
editor コマンドを使えばテキストエディタ (vinano など) が起動し、テキストファイルの作成や修正や読み込みを行うことが可能です。リダイレクト機能のおかげで、しばしばコマンドインタプリタから最も簡単なファイルを作ることが可能です。たとえば echo "text" >file は「text」という内容で file と名付けられたファイルを作成します。echo "moretext" >>file などのコマンドを使えば、ファイルの最後に行を追加することも可能です。この例で示した >> に注意してください。

B.1.3. ファイルとファイル内容の検索

find directory criteria コマンドは directory の下にあるファイルから条件に一致するものを探します。最もよく使われる条件は -name name です。つまりこれは名前を基にしてファイルを探します。
grep expression files コマンドはファイルの内容を検索して、正規表現 (補注BACK TO BASICS 正規表現」参照) に一致する行を抽出します。-r オプションを追加すれば、パラメータとして指定されたディレクトリに含まれるすべてのファイルに対して再帰的に検索することが可能です。-r オプションを使うことで、内容の一部がわかっているファイルを探すことが可能です。

B.1.4. プロセス管理

ps aux コマンドは現在実行中のプロセスをリストし、プロセスの pid (プロセス ID) を表示することでプロセスを識別する手助けになります。プロセスの pid がわかったら、kill -signal pid コマンドを使ってプロセスにシグナルを送信することが可能です (対象のプロセスがシグナルを送信するユーザのものである場合に限ります)。シグナルにはさまざまな種類があります。しかし、最もよく使われるのが TERM (処理の終了を丁寧に依頼する) と KILL (強制的に終了する) です。
コマンドの最後に「&」を付けた場合、コマンドインタプリタはバックグラウンドでプログラムを実行します。アンパサンドを使うことで、ユーザは、コマンドがまだ実行中であっても、すぐにシェルの制御を再開することが可能です (ここで実行したコマンドはユーザから見えなくなります。そしてバックグラウンドプロセスになります)。jobs コマンドはバックグラウンドで実行中のプロセスをリストします。さらに fg %job-number (foreground の略語) は指定したジョブをフォアグラウンドに復活させます。コマンドがフォアグラウンドで実行されている場合 (通常通り開始した場合も、fg でフォアグラウンドに復活した場合も)、Control+Z キーの組み合わせでフォアグラウンドプロセスを一時停止してコマンドラインの制御を再開することが可能です。プロセスをバックグラウンドで再開するには、bg %job-number (background の略語) を使います。

B.1.5. システム情報、メモリ、ディスク領域、識別情報

free コマンドはメモリに関する情報を表示します。一方、df (disk free) はファイルシステムにマウントされた各ディスクの利用できるディスク領域を報告します。-h オプション (human readable の意味) はサイズをわかりやすい単位 (通常メガバイトやギガバイト) で変換します。同様に、free コマンドは -m-g オプションをサポートしており、データはそれぞれメガバイトとギガバイト単位のどちらか一方で表示されます。
$ free
             total       used       free     shared    buffers     cached
Mem:       1028420    1009624      18796          0      47404     391804
-/+ buffers/cache:     570416     458004
Swap:      2771172     404588    2366584
$ df
ファイルシス       1K-ブロック      使用    使用可 使用% マウント位置
/dev/sda2              9614084   4737916   4387796   52% /
tmpfs                   514208         0    514208    0% /lib/init/rw
udev                     10240       100     10140    1% /dev
tmpfs                   514208    269136    245072   53% /dev/shm
/dev/sda5             44552904  36315896   7784380   83% /home
id コマンドはセッションを実行しているユーザの識別情報をユーザが所属するグループのリストと一緒に表示します。一部のファイルやデバイスへのアクセスはグループメンバーだけに制限されているかもしれませんので、ユーザの所属するグループの確認することが役に立つ場合があります。
$ id
uid=1000(rhertzog) gid=1000(rhertzog) groups=1000(rhertzog),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),109(bluetooth),115(scanner)