3.3 Linuxの重要なコマンド

ここでは、SUSE Linuxシステムの非常に重要なコマンドについて説明します。この章に掲載した以外にも、多くのコマンドがあります。個別のコマンドとそのパラメータを掲載し、必要な場合は一般的なサンプルアプリケーションを紹介します。さまざまなコマンドの詳細については、マニュアルページ(manページ)を参照してください。manの後にコマンド名、たとえば、man lsと入力すると、そのコマンドのマニュアルページを表示できます。

manページでは、PgUpPgDnを使用して上下に移動できます。HomeEndを使用すると、それぞれドキュメントの最初と最後に移動できます。Qを押すと、この表示モードが終了します。manコマンド自体の詳細については、man manと入力します。

以下の概要では、各コマンド要素を本文とは異なる書体で表記しています。実際のコマンド名とその必須オプションは、command optionの形式で表記します。必須ではない詳細指定やパラメータは、[ ](角かっこ)内で表記します。

設定値は、実際の状況に合わせて変更してください。ls fileという入力は、fileというファイルが実際に存在している場合以外は、意味がありません。ほかに、通常は、複数のパラメータを組み合わせることができます。 たとえば、ls -l -aの代わりに、ls -laと入力することができます。

3.3.1 ファイル関連コマンド

以降のセクションでは、ファイル管理に使用する非常に重要なコマンドについて説明します。一般的なファイル管理からファイルシステムのACL操作まであらゆる事柄を説明します。

3.3.1.1 ファイル管理

ls [options] [files]

パラメータなしでlsコマンドを実行した場合、このプログラムはカレントディレクトリの内容を短い形式でリストします。

-l

詳しいリストを表示します。

-a

隠しファイルを表示します。

cp [options] source target

sourcetargetにコピーします。

-i

必要な場合、つまりtargetfileが既に存在し、そのファイルへ上書きする場合は、確認を求めます。

-r

再帰コピーを行います(サブディレクトリもコピーします)。

mv [options] source target

sourcetargetへコピーし、元のsourceを削除します。

-b

移動する前に、sourceのバックアップコピーを作成します。

-i

必要な場合、つまりtargetfileが既に存在し、そのファイルへ上書きする場合は、確認を求めます。

rm [options] files

指定されたファイルをファイルシステムから削除します。-rオプションを指定しない限り、rmコマンドを使用してディレクトリを削除することはできません。

-r

既存のサブディレクトリをすべて削除します。

-i

各ファイルを削除する前に、確認を求めます。

ln [options] source target

sourceからtargetへの内部リンクを作成します。 通常、このリンクは、同じファイルシステム上のsourceを直接指しています。しかし、-sオプションを指定してlnコマンドを実行した場合、このコマンドは、sourceが存在しているディレクトリを指すだけのシンボリックリンクを作成します。 その結果、ファイルシステム間でのリンクが可能になります。

-s

シンボリックリンクを作成します。

cd [options] [directory]

カレントディレクトリを変更します。cdコマンドにパラメータを指定しない場合、そのユーザのホームディレクトリへ移動します。

mkdir [options] directory

新しいディレクトリを作成します。

rmdir [options] directory

指定されたディレクトリが既に空である場合、そのディレクトリを削除します。

chown [options] username[:[group]] files

ファイルの所有権を、指定されたユーザ名を持つユーザへ移動します。

-R

すべてのサブディレクトリ内にあるファイルとディレクトリを変更します。

chgrp [options] groupname files

特定のfileに対するグループ所有権を、指定されたグループ名を持つグループへ移動します。ファイル所有者は、現在のグループと新しいグループ両方のメンバーである場合に限って、グループ所有権を変更できます。

chmod [options] mode files

アクセス権を変更します。

modeパラメータは、groupaccess、およびaccess typeという3つの部分で構成されています。group (グループ)は、次の各文字を受け付けます。

u

user

g

group

o

others

access(アクセス)は、+でアクセスを許可し、-でアクセスを拒否します。

access type(アクセスタイプ)を制御するには、次のオプションを使用します。

r

read

w

write

x

実行—ファイルの実行、または指定ディレクトリへの移動を可能にします。

s

uidビットの設定-あたかもファイルの所有者が起動したかのように、アプリケーションまたはプログラムを起動します。

代わりに、数値コードを使用することもできます。このコードを構成する4桁の各数字は、4、2、および1の中から状況に応じて選択された値を合算したものです つまり、2進(バイナリ)マスクの合計を10進表記したものです。最初の桁で、設定するユーザID (set user ID、SUID) (4)、設定するグループID (2)、およびスティッキー(sticky) (1)の各フラグを設定します。2番目の桁で、ファイルの所有者に割り当てるアクセス権を定義します。3番目の桁で、グループメンバーに割り当てるアクセス権を定義します。 最後の桁では、他のすべてのユーザに割り当てるアクセス権を設定します。読み取りアクセス権を設定するには4、書き込みアクセス権を設定するには2、およびファイルの実行アクセス権を設定するには1を使用します。ファイルの所有者の場合、通常は6または7が実行可能ファイルに指定されます。

gzip [parameters] files

このプログラムは、複雑な算術アルゴリズムを使用して、ファイルの内容を圧縮します。この方法で圧縮されたファイルは.gz拡張子を割り当てられ、使用する前に圧縮解除する必要があります。複数のファイルまたはディレクトリ全体を圧縮するには、tarコマンドを使用します。

-d

パックされたgzipファイルを圧縮解除して元のサイズに戻し、通常の方法で処理できるようにします(gunzipコマンドに似ています)。

tar options archive files

tarコマンド は、1つ以上のファイルを1つのアーカイブ内に格納します。圧縮はオプションです。tarコマンド は、多くのオプションを持つ、かなり複雑なコマンドです。使用頻度の高いオプションは、以下のとおりです。

-f

出力を画面ではなくファイルに書き込みます。 これは一般的な使用方法です。

-c

新しいtarアーカイブを作成します。

-r

既存のアーカイブにファイルを追加します。

-t

アーカイブの内容を出力します。

-u

ファイルを追加する際に、対応するファイルが既にアーカイブ内に存在している場合、追加するファイルがアーカイブ内のファイルより新しければ追加します。

-x

アーカイブ内のファイルをアンパック(展開)します。

-z

生成されたアーカイブを、gzipコマンドを使用してパックします。

-j

生成されたアーカイブを、bzip2コマンドを使用して圧縮します。

-v

処理されたファイルをリストします。

tarコマンドが作成したアーカイブファイルの最後には、.tarが付きます。gzipコマンドを使用してtarアーカイブを圧縮した場合、ファイル名の最後は.tgzまたは.tar.gzになります。bzip2コマンドを使用して圧縮した場合、ファイル名の最後は.tar.bz2になります。応用例は、3.1.5項 「アーカイブとデータ圧縮」を参照してください。

locate patterns

このコマンドはfindutils-locateパッケージをインストールした場合にのみ、利用できます。locateコマンドは、指定されたファイルが存在するディレクトリを検索できます。必要に応じて、ワイルドカードを使用して、ファイル名を指定することができます。このプログラムは(ファイルシステム全体を検索する代わりに)専用に作成したデータベースを使用するので、非常に高速です。しかし、この事実は、大きな欠点も抱えています。locateは、データベースの最新の更新より後に作成されたファイルを見つけることができません。このデータベースを生成するには、rootユーザでupdatedbコマンドを使用します。

updatedb [options]

このコマンドは、locateコマンドが使用するデータベースを更新します。既存のすべてのディレクトリ内にあるファイルをこのデータベースに登録するには、rootユーザでこのプログラムを実行します。アンパサンド(&)を追加してこのプログラムをバックグラウンドで実行することには、意味があります。 その場合、同じコマンドライン(updatedb &)上で、直ちに作業を続けることができるからです。このコマンドは通常、毎日cronジョブとして実行します(cron.dailyを参照してください)。

find [options]

findコマンドを使用すると、特定のディレクトリ内でファイルを検索することができます。最初の引数は、検索を開始するディレクトリを指定します。-nameオプションの後には、検索文字列を指定する必要があります。 その中でワイルドカードを使用することもできます。データベースを使用するlocateとは異なり、findコマンドは実際のディレクトリを検索します。

3.3.1.2 ファイルの内容にアクセスするコマンド

file [options] [files]

fileは、指定されたファイル内の内容を検出します。

-z

圧縮されたファイル内を検索しようとします。

cat [options] files

catコマンドは、ファイルの内容を表示します。 特に、ファイルの内容全体を、一時停止なしで画面に出力します。

-n

出力の左マージンに、行番号を表示します。

less [options] files

このコマンドは、指定されたファイルの内容を閲覧する目的で使用できます。PgUpPgDnを使用して画面を半ページだけ上または下にスクロールすることや、Spaceを使用して画面1ページ分を下に移動することができます。HomeEndを使用すると、ファイルの最初または最後に移動できます。Qを押すと、このプログラムが終了します。

grep [options] searchstring files

grepコマンドは、指定された1つ以上のファイルの中で、特定の検索文字列を見つけます。検索文字列が見つかった場合、searchstringを含む行と該当のファイル名が表示されます。

-i

大文字と小文字を区別しません。

-H

該当するファイルの名前だけを表示し、テキスト行を表示しません。

-n

文字列が見つかった行の行番号も追加で表示します。

-l

searchstringを含んでいないファイルの名前だけを出力します。

diff [options] file1 file2

diffコマンドは、指定された2つのファイルの内容を比較します。このプログラムの出力は、一致していないすべての行をリストします。プログラマがソースコード全体ではなく、プログラムの変更箇所だけを送信する必要が生じた場合に、このコマンドがよく使用されます。

-q

2つのファイルに違いがあるかどうかだけを報告します。

-u

統合された」diffを出力します。出力がより読みやすくなります。

3.3.1.3 ファイルシステム

mount [options] [device] mountpoint

このコマンドを使用すると、ハードディスク、CD-ROMドライブ、および他のドライブなど、あらゆるデータメディアを、Linuxファイルシステムのディレクトリにマウントすることができます。

-r

読み取り専用でマウントします。

-t filesystem

ファイルシステムを指定します。最も一般的なのは、Linuxハードディスクを表すext2、MS-DOSメディアを表すmsdos、Windowsファイルシステムを表すvfat、およびCDを表すiso9660です。

/etc/fstabファイル内で定義されていないハードディスクについては、デバイスタイプも指定する必要があります。この場合、マウントを実行できるのはrootユーザだけです。他のユーザがファイルシステムをマウントする必要がある場合、/etc/fstabファイル内の該当行にuserオプションを入力し、その変更結果を保存します。 複数のユーザを指定する場合はカンマ(,)で区切ります。詳細については、mount(1)のmanページを参照してください。

umount [options] mountpoint

このコマンドは、マウント済みドライブをファイルシステムからマウント解除(アンマウント)します。データの損失を防止するために、リムーバブルデータメディアをドライブから取り出す前に、このコマンドを実行してください。通常、mountコマンドとumountコマンドを実行できるのはrootユーザだけです。他のユーザもこれらのコマンドを実行できるようにするには、/etc/fstabファイルを編集し、該当するドライブに対してuserオプションを指定します。

3.3.2 システム関連コマンド

以降のセクションでは、システム情報を検索し、プロセスし、ネットワーク制御のために必要な非常に重要なコマンドのいくつかを説明します。

3.3.2.1 システム情報

df [options] [directory]

df (disk free)コマンドをオプションなしで使用した場合、マウント済みのすべてのドライブに関する全ディスク容量、現在使用中のディスク容量、および空き容量を表示します。ディレクトリを指定した場合、そのディレクトリの配置先ドライブに関する情報だけが表示されます。

-h

使用中のブロック数を、ギガバイト(GB)、メガバイト(MB)、またはキロバイト(KB)単位で表示します。一般的に読みやすい形式です。

-T

ファイルシステムのタイプ(ext2、nfsなど)を表示します。

du [options] [path]

このコマンドをパラメータなしで実行した場合、カレントディレクトリ内にある各ファイルとサブディレクトリが使用している全ディスク容量を表示します。

-a

個別のファイルのサイズを表示します。

-h

一般的に読みやすい形式で出力します。

-s

計算後の合計サイズだけを表示します。

free [options]

freeコマンドは、RAMとスワップ領域の使用状況、および両方のカテゴリでの全容量と使用中容量に関する情報を表示します。詳細については、「10.1.6項 「freeコマンド」 (↑リファレンス)」を参照してください。

-b

バイト単位で出力します。

-k

キロバイト(KB)単位で出力します。

-m

メガバイト(MB)単位で出力します。

date [options]

この簡単なプログラムは、現在のシステム時刻を表示します。rootユーザでこのコマンドを実行した場合、システム時刻を変更することもできます。このプログラムの詳細については、date(1)のmanページを参照してください。

3.3.2.2 プロセス

top [options]

topコマンド は、現在動作しているプロセスの概要を表示します。Hを押すと、このプログラムをカスタマイズするための主要なオプションについて簡単に説明しているページにアクセスできます。

ps [options] [process ID]

オプションなしで実行した場合、このコマンドは現在のユーザ独自のプログラムまたはプロセスすべてからなる表を表示します。 それらは、現在のユーザが起動したものを意味します。このコマンドでオプションを指定する場合、ハイフンは付けません。

aux

所有者に関係なく、すべてのプロセスからなる詳しいリストを表示します。

kill [options] process ID

作業中、プログラムが通常の方法で終了できなくなることがあります。ほとんどの場合、該当するプロセスID (topコマンドとpsコマンドを参照)を指定し、killコマンドを実行することにより、そのような暴走したプログラムを終了させることができます。killコマンドは、TERMシグナルを送信します。 このシグナルは、そのようなプログラムに対して、自らを終了するよう指示します。これだけでは解決しない場合、次のパラメータを使用できます。

-9

TERMシグナルの代わりにKILLシグナルを送信します。これで、ほとんどすべての場合、指定されたプロセスが終了します。

killall [options] processname

このコマンドはkillコマンドに似ていますが、引数として(プロセスIDではなく)プロセス名を使用し、その名前を持つすべてのプロセスを終了させます。

3.3.2.3 ネットワーク

ping [options] ホスト名またはIPアドレス

pingコマンドは、TCP/IPネットワークの基本的な機能をテストする標準的なツールです。小さいデータパケットを送信先ホストへ送信し、即座の応答を要求します。この作業が成功した場合、pingコマンドは、その結果を知らせるメッセージを表示します。 これは、ネットワークリンクが基本的に機能していることを意味します。

-c number

送信するパケットの総数を決定し、それらをディスパッチし終わった後で処理を終了します(デフォルトでは、上限は設定されていません)。

-f

flood ping (pingの洪水):できるだけ多くのデータパケットを送信します。一般的には、rootがネットワークをテストする目的で使用します。

-i value

2つのデータパケットの間の間隔を秒単位で指定します(デフォルトは、1秒です)。

nslookup

ドメインネームシステム(DNS)は、ドメイン名からIPアドレスへの変換を行います。このツールは、ネームサーバ(DNSサーバ)に問い合わせを送信します。

telnet [options]ホスト名またはIPアドレス [port]

Telnetは、実際のところ、ネットワーク経由でリモートホスト上での操作を可能にするインターネットプロトコルの1つです。telnetは、このプロトコルを使用してリモートコンピュータ上での操作を可能にするLinuxプログラムの名前でもあります。

[Warning]警告

第三者が「傍受」可能なネットワークを経由する場合、telnetを使用しないでください。特にインターネットを経由する場合、パスワードが悪用されるリスクを回避するために、sshコマンドのような暗号化された伝送方法を使用してください(sshコマンドのmanページを参照してください)。

3.3.2.4 その他

passwd [options] [username]

ユーザはこのコマンドを使用することにより、自分のパスワードをいつでも変更できます。管理者rootはこのコマンドを使用して、システム上に存在するあらゆるユーザのパスワードを変更できます。

su [options] [username]

suコマンドは、実行中のセッションから、他のユーザ名を使用してログインできるようにします。ユーザ名と、対応するパスワードを指定してください。rootユーザはあらゆるユーザのID (身元)を使用することが承認されているので、rootがこのコマンドを使用する場合は、パスワードの入力を要求されません。ユーザの名前を指定しないでこのコマンドを使用する場合、rootのパスワードの入力を求めるプロンプトが表示され、スーパーユーザ(root)に変更されます。

-

別なユーザとしてログインシェルを開始するには、su -を使います。

halt [options]

データの損失を防止するために、システムをシャットダウンする場合、必ずこのコマンドを使用することをお勧めします。

reboot [options]

システムが直ちにリブートすることを除き、このコマンドは、haltコマンドと同じ処理を実行します。

clear

このコマンドは、コンソールの表示領域すべてをクリアします。オプションはありません。

3.3.3 関連資料

この章に掲載した以外にも、多くのコマンドがあります。他のコマンドの概要、またはより詳しい情報については、オライリー刊のLinux in a Nutshell(邦訳『Linux クイックリファレンス』)をお勧めします。