12.4 オプション

ここではコマンドのオプションについて学んでいきます. コマンドにオプションをつけることによって, コマンドの動作を変えることができます.

例1: グリニッジ標準時で現在時刻を表示

date は現在の時刻を出力するコマンドです.

promptdate return2 火 3 25 15:40:33 JST 2008

JST は日本標準時 (Japan Standard Time) を意味します.

date コマンドに -u というオプションをつけてみましょう. promptdate -u return2 のようにコマンドのあとに空白をあけて入力します.

promptdate -u return2 火 3 25 06:41:40 GMT 2008

今度は JST のかわりに GMT と表示されました. これはグリニッジ標準時 (Greenwich Mean Time) を表しています. 時刻の表示も 9時間ずれています. date コマンドに -u というオプションをつけることによって, 動作が変わったのです.

このように「-」のあとに文字を指定することにより, コマンドにオプションをつけることができます. つける文字によっていろいろなコマンドがいろいろな動作をするのです.

例2: ファイル一覧のいろいろな表示

次は ls というコマンドを例にとりましょう. このコマンドはファイルの一覧や情報を見るためのものです. 詳しくはファイルシステムの項を参照して下さい.

オプションを何も指定しないで入力した場合は以下のようになります.

promptls return2 Desktop Documents Library Movies Music OLDHOME Pictures Public Sites

なにやらいくつかの名前が表示されました. これは, 現在のディレクトリにあるファイルやディレクトリの名前なのです.

では次に -l というオプションをつけて実行してみましょう.

promptls -l return2

この -l というオプションをつけることにより, ls はファイルのより詳細な情報を提供するようになります.

以下の実行例を見て下さい.

promptls -l return2 合計 4 drwx------ 2 g999999 student 23 1 14 21:59 Desktop drwx------ 2 g999999 student 23 1 14 21:59 Documents drwx------ 19 g999999 student 4096 3 25 15:29 Library drwx------ 2 g999999 student 23 1 14 21:59 Movies drwx------ 2 g999999 student 23 1 14 21:59 Music drwxr-xr-x 4 g999999 student 31 2 21 01:11 OLDHOME drwx------ 2 g999999 student 23 1 14 21:59 Pictures drwxr-xr-x 3 g999999 student 55 1 14 21:59 Public drwxr-xr-x 3 g999999 student 68 1 14 21:59 Sites

それぞれについての詳しい内容が表示されました. ここではそれらの表示の意味が理解できなくても結構です. のちに学ぶ related_s13. ファイルシステムの項で解説します.

複数のオプションを同時に指定

複数のオプションを同時に指定することもできます.

下の例では -l オプションと,ピリオドで始まるファイルも含めたすべてのファイルを表示する -a というオプションを同時に指定しています. ピリオドで始まるファイル名は通常は隠しファイルになっていてみることができませんが, -a というオプションをつけることによって, ls の動作が変更されるのです.

promptls -al return2 合計 192 drwx------ 12 g999999 student 4096 3 25 15:31 . drwxr-xr-x 3102 root wheel 77824 3 19 21:25 .. -rw-r--r-- 1 g999999 student 4 6 17 2002 .CFUserTextEncoding -rw-r--r-- 1 g999999 student 6148 2 28 00:00 .DS_Store drwx------ 2 g999999 student 6 3 25 15:29 .Trash -rw-r--r-- 1 g999999 student 82 2 28 00:00 ._.DS_Store -rwx------ 1 g999999 student 82 3 25 15:29 ._.Trash -rw------- 1 g999999 student 82 1 14 21:59 ._Desktop -rw------- 1 g999999 student 82 1 14 21:59 ._Documents -rw------- 1 g999999 student 82 2 18 19:55 ._Library -rw------- 1 g999999 student 82 1 14 21:59 ._Movies -rw------- 1 g999999 student 82 1 14 21:59 ._Music ....(以下略)....

同時に複数のオプションを指定するには, -l -a とスペースで区切って並べてもよいですし, -al のように一度に書いてもよいです.

オプションにおいても,コマンド名と同様,大文字と小文字は区別されます. 例えば, ls-S というオプションをつければ,ファイルが大きさ順にソートされて出力されます. -s というオプションをつけるとファイルの大きさがキロバイト単位で表示されます.

オプションとパラメータを両方与える

コマンドは, オプションとパラメータを同時にとることもできます. その場合は,「コマンド名+オプション+パラメータ」の順番になります.

promptls -l .bash_history return2 -rw------- 1 g999999 student 4096 3 25 15:29 .bash_history

パラメータを取るオプション - 例3: 出力行数の変更

オプションのあとに数字などオプションのパラメータを取ることがあります.

例えば head は指定したファイルを先頭から10行分出力するコマンドです. オプション -n の後に数字を続けると出力する行数を10行以外に指定することができます. 例えば.bash_historyという今までにターミナルから入力したコマンドを記録しているファイルの中身を先頭から5行見てみましょう.

prompthead -n 5 .bash_history return2 cal cal 2008 echo hello date date -u

上の例では,「head」がコマンド名,「-n 5」の部分がオプション,「.bash_history」がパラメータとなります.

5」は -n オプションのパラメータで,コマンドのパラメータとは異なるので注意してください. head コマンドの -n オプションはパラメータを取るものなので,次に来るものがパラメータと解釈されます. その後に来るものは,別のオプションでなければコマンドのパラメータと解釈されます. オプションがパラメータを取るかどうかはコマンドによって異なります.

…まだまだほかにも

コマンドにはたくさんのオプションがあります. 各コマンドごとに, つけられるオプションの種類も違えば, そのオプションによる動作も違います. ここで示したのはあくまで一般的な例です. コマンドにどのようなオプションをつけることが可能かを調べるにはマニュアルを参照します.

次節ではオンラインマニュアルの使い方を学びます.

exercise

calコマンドに-yというオプションをつけてみましょう.cal -y return2 と入力すると出力がどうなるか実際にやってみてください.そして,次のうち正しいものを選んでください.

(1)
  • 今年一年のカレンダーが出る
  • 先月のカレンダーが出る
  • カレンダーが黄色く表示される
  • やすみの日,すなわち休日が表示される