Unix 世界では、管理者全員が遅かれ早かれコマンドラインを使わなければいけません。たとえば、システムが正常な起動に失敗して、コマンドラインのレスキューモードだけが提供される場合です。それゆえ、このような状況下ではコマンドラインインターフェースを取り扱う技術を身に付けているということが基本的なサバイバル技術です。
この節では、コマンドを簡単に見ていきます。ここで挙げたコマンドには多くのオプションが用意されていますが、ここでは説明しませんので、各コマンドに対応するマニュアルページに書かれているたくさんの文書を参照してください。
B.1.1. ディレクトリツリーの閲覧とファイル管理
セッションが開始されたら、pwd
コマンドでファイルシステム上の現在の場所を表示することが可能です (pwd
は print working directory の略語です)。現在のディレクトリを変更するには、cd directory
コマンドを使います (cd
は change directory の略語です)。親ディレクトリは常に ..
(ドット 2 つ) で表します。これに対して、現在のディレクトリは .
(ドット 1 つ) で表します。ls
コマンドは指定したディレクトリの内容を listing (表示) します。パラメータを与えなかった場合、ls
コマンドは現在のディレクトリの内容を表示します。
$
pwd
/home/rhertzog
$
cd Desktop
$
pwd
/home/rhertzog/Desktop
$
cd .
$
pwd
/home/rhertzog/Desktop
$
cd ..
$
pwd
/home/rhertzog
$
ls
Desktop Downloads Pictures Templates
Documents Music Public Videos
新しいディレクトリを作成するには mkdir directory
を使い、既存の (空) ディレクトリを削除するには rmdir directory
を使います。mv
コマンドを使うことでファイルとディレクトリの moving (移動) および名前変更が可能です。一方で、ファイルを removing (削除) するには rm file
を実行します。
$
mkdir test
$
ls
Desktop Downloads Pictures Templates Videos
Documents Music Public test
$
mv test new
$
ls
Desktop Downloads new Public Videos
Documents Music Pictures Templates
$
rmdir new
$
ls
Desktop Downloads Pictures Templates Videos
Documents Music Public
cat file
コマンド (ファイルを標準出力デバイスに concatenate (連結) する) はファイルを読み込んで内容を端末に表示します。ファイルが一画面に表示するには大きすぎる場合、less
(および more
) などのページャーを使い、ページごとに内容を表示します。
editor
コマンドを使えばテキストエディタ (vi
や nano
など) が起動し、テキストファイルの作成や編集や読み込みを行うことが可能です。単純なファイルならば、リダイレクト機能を使ってコマンドインタプリタから作ることも可能です。たとえば echo "text" >file
は「text」という内容で file と名付けられたファイルを作成します。echo "moretext" >>file
などのコマンドを使えば、ファイルの最後に行を追加することも可能です。この例で示した >>
に注意してください。
find directory criteria
コマンドは directory の下にあるファイルから criteria という条件に一致するものを探します。最もよく使われる条件は -name name
です。すなわちこれは名前を基にしてファイルを探すという条件です。
grep expression files
コマンドは
files で指定したファイルの内容を検索して、
expression で指定した正規表現 (補注
「BACK TO BASICS 正規表現」を参照してください) に一致する行を抽出します。
-r
オプションを追加すれば、パラメータとして指定されたディレクトリに含まれるすべてのファイルに対して再帰的に検索することが可能です。
-r
オプションを使うことで、内容の一部を元にファイルを探すことが可能です。
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 buff/cache available
Mem: 16279260 5910248 523432 871036 9845580 9128964
Swap: 16601084 240640 16360444
$
df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 8108516 0 8108516 0% /dev
tmpfs 1627928 161800 1466128 10% /run
/dev/mapper/vg_main-root 466644576 451332520 12919912 98% /
tmpfs 8139628 146796 7992832 2% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 8139628 0 8139628 0% /sys/fs/cgroup
/dev/sda1 523248 1676 521572 1% /boot/efi
tmpfs 1627924 88 1627836 1% /run/user/1000
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)