OpenWindows ユーザーズガイド (上級編)

第 2 章 SunOS の基本コマンド

この章では、SunOS オペレーティングシステムのユーザコマンドについて概説します。コマンドの入力方法、入力誤りの訂正方法、複数のコマンドや長いコマンドの入力方法、コマンドオプションの使い方、その他 SunOS コマンドに関する有用な情報などについて説明します。

コマンドを入力する場合は、コマンドツールやシェルツールのウィンドウを使います。これらのウィンドウを表示するには、ワークスペースメニューのプログラムサブメニューを選択します。

コマンドプロンプト

ログインした直後は、初期プロンプト (最初にプロンプトが表示されていること) を除いて画面 (ウィンドウ) には何も表示されません。このプロンプトの形状は、使っているシェルの種類やシステム管理者による初期設定によって異なります。SunOS で使われるデフォルトのコマンドプロンプトはドル記号 ($) なので、このマニュアルで紹介する大部分の例ではこの $ プロンプトを使います。

コマンドプロンプトを変更する場合は、第 10 章「動作環境のカスタマイズ」「コマンドプロンプトの変更」を参照してください。

コマンドの入力

コマンドプロンプトが表示されているときは、システムがコマンドの入力待ち状態であることを示します。次の例に示すように、コマンドプロンプトに対して date というコマンドを入力してみてください (date と入力して Return キーを押します)。

$ date
Mon Feb 3 10:12:51 PST 1992
$

この例に示すように、date コマンドは現在の日付と時間を表示します。次に、同じコマンドの先頭を大文字にして入力してみてください。

$ Date
Date: Command not found.
$

上記のように、システムは大文字の D と小文字の d を区別しています。SunOS オペレーティングシステムの大部分のコマンドは小文字です。

誤った入力の訂正

最初に Date と入力して Return キーを押す前に誤りに気付いたとします。ユーザが入力したテキストは、Return キーを押すまではシステムに送信されません。したがって、Return キーを押す前であれば、入力の誤りを訂正できます。誤りを訂正するには、次の 2 つの方法があります。

これら 2 つの方法を試して動作を確認してください。(Delete キーと Backspace キーの動作はシステムによって異なる場合があります。Ctrl-U はほとんどのシステムで同様に動作します。)

複数のコマンドと長いコマンドの入力

1 行に複数のコマンドを入力することもできます。次の date コマンドと logname コマンドの例に示すように、コマンドの間にセミコロン (;) を挿入してください。

$ date; logname
Mon Feb 3 10:19:25 PST 1992
spanky
$

上記の例に示すように、現在の日付と時間 (date コマンドの出力) およびシステムに現在ログインしているユーザのログイン名 (logname コマンドの出力) が続けて表示されます。

非常に長いコマンドを入力する場合は、バックスラッシュ文字 (¥) を使うことによって次の行に続けて入力できます。次の例を参照してください。

$ date; ¥
logname
Mon Feb 3 10:23:25 PST 1992
hankw
$

date コマンドと logname コマンドは決して長いコマンドではありません。この例では、複数のコマンドを次の行に続けて入力するという概念を、できるだけ簡単に説明するためにこれらのコマンドを使っています。入力するコマンドが画面の幅よりも実際に長いときは、バックスラッシュ文字を使うと非常に便利です。


注 -

OpenWindows 環境でシェルツールやコマンドツールのウィンドウを使っている場合は、次の行にコマンドを続けて入力するためにバックスラッシュ文字を使う必要はありません。入力中のコマンドが行の終わりにくると、次の行に自動的に改行され、Return キーを押したときにそれらの全コマンドが実行されます。


前回のコマンドを繰り返す


注 -

この節で説明するコマンド繰り返しの機能は、C シェルを使っている場合にだけ利用できます。


最後に入力したコマンドを繰り返すには、!! を入力して Return キーを押す方法が簡単です。システムは、ユーザが入力したコマンドの履歴を保持しているため、以前入力したコマンドを繰り返し実行できます。たとえば、最後に入力したコマンドが date の場合は次のようになります。

example% !!
date
Mon Feb 3 10:26:20 PST 1992
example%

!x と入力すると、以前に入力した任意のコマンドを繰り返し実行できます。x は、繰り返すコマンドに対応する履歴リスト上のコマンド番号です。履歴リストを参照するには、history と入力して Return キーを押します。次の例に示すようなリストが表示されます。

example% history
1  pwd
2  clear
3  ls -l
4  cd /usr/home/worker
5  logname
6  date
7  history

また、! の後に負の番号を入力しても履歴リスト上のコマンドを繰り返すことができます。たとえば、履歴リスト上の最後のコマンドから数えて 3 番目のコマンドを実行するには、次のように入力します。

example% !-2
logname
hankw
example%

上記の履歴リストを例にとれば、logname コマンドが繰り返し実行されます。

! の後に以前のコマンド名の先頭から数文字を入力してもコマンドを再実行できます。たとえば、以前に clear コマンドを入力して画面をクリアした場合は、!cl と入力すれば画面を再度クリアできます。ただし、この方法によるコマンドの繰り返しでは、繰り返したいコマンドを履歴リスト上で一意に識別できる文字数を指定しなければなりません。! の後に 1 文字しか指定しなかった場合は、その文字で始まるコマンドのうちで最後に入力したものが繰り返されます。

コマンドオプションの指定

多くのコマンドにはオプションがあり、そのコマンドに関連する特別機能を実行できます。たとえば、date コマンドには、ローカル時間ではなくグリニッジ標準時間で日付を表す -u というオプションがあります。

$ date -u
Mon Feb 3 11:06:51 GMT 1993
$

大部分のオプションは、1 文字の前にダッシュ (-) を付けたものです。オプションを持たないコマンドもあれば、複数のオプションを持つコマンドもあります。コマンドに対して引数を持たないオプションを複数指定する場合は、それらのオプションを個別に入力しても (-a -b) まとめて入力しても (-ab) かまいません。

コマンド出力のリダイレクトとパイプ

特に指定しない限り、コマンドの出力結果は画面上に表示されます。特別な記号を使って、コマンドの出力をリダイレクト (出力先を変更) できます。たとえば、コマンド出力を画面に表示せずにファイルに保存できます。次の例は、リダイレクト記号 (>) の使い方を示しています。

$ date > sample.file
$ 

この例では、date コマンドからの出力が sample.file という新規ファイルにリダイレクトされています。次に、more コマンドを使って sample.file の内容を表示します。

$ more sample.file
Mon Feb 3 12:56:26 PST 1993
$

この例に示すように、sample.file には date コマンドからの出力結果が入っています。(more コマンドについての詳細は、第 3 章「ファイルとディレクトリの操作」を参照してください。)

あるコマンドの出力を別のコマンドの入力としてリダイレクトすることもできます。このような方法で複数のコマンドを連結したものをパイプラインと呼びます。パイプラインは、パイプと呼ばれる垂直バー (|) を使って構成します。)

たとえば、コマンドの出力結果をファイルに保存する代わりに、プリントコマンド (lp) の入力としてリダイレクトする場合、パイプ記号 (|) を使えます。date コマンドからの出力をプリンタに直接送信するには、次のように入力します。

$ date | lp
$

これによって、date コマンドの結果が印刷されます。(lp コマンドを使ったファイルの印刷方法については、第 8 章「プリンタの使い方」「デフォルトプリンタへの印刷要求の実行」を参照してください。

ここで紹介したコマンドのリダイレクト例は非常に簡単なものですが、さらに高度なコマンドを学習するに従って、リダイレクトとパイプのさまざまな用途が理解できます。

バックグラウンドでコマンドを実行する

コマンドプロンプトからコマンドを始動した後で、そのコマンドをバックグラウンドに置くと便利な場合がよくあります。コマンドをバックグラウンドに置かない場合は、そのコマンドが作業を完了するまでは次のプロンプトは表示されません。しかし、中には完了するまでにかなりの時間がかかるコマンドもあるため、その間に別のコマンドを実行する方が効率的です。

コマンドをバックグラウンドで実行する場合は、下記に示すようにコマンド名の後にアンパサンド (&) を入力します。その下に表示されている番号は、プロセス ID です。

$ bigjob &
[1] 21414
$ 

この例では、コマンド bigjob はバックグラウンドで実行され、他のコマンドの入力を続行できます。バックグラウンドのジョブが終了すると、次にコマンド (この例では date) を入力したときに下記のようなメッセージが表示されます。

$ date
Mon Feb 3 10:23:25 PST 1992
[1]  + Done    bigjob
$ 

バックグラウンドのジョブが完了する前にログアウトする可能性がある場合は、下記の例に示すように、nohup コマンド (no hangup) を使ってジョブを起動すると、ログアウトしてもそのジョブを完結させることができます。それ以外の場合は、ログアウトするとバックグラウンドのジョブは終了してしまいます。

$ nohup bigjob &
[1] 21414
$

OS コマンドによるヘルプ情報の表示

この節では、さまざまなオンラインヘルプ機能について説明します。オンラインヘルプ機能を使うことによって、ワークステーションや端末からリファレンス情報を読むことができます。


注 -

この節では、OpenWindows のヘルプ機能以外のヘルプ機能について説明しています。


man コマンドによるマニュアルページの表示

コマンドの名前は知っていてもその機能について不明な場合は、man コマンドを使うと便利です。man コマンドの詳細機能を表示するには、次のように入力します。

$ man man

このコマンドは、SunOS マニュアルページ man(1) の最初の画面をウィンドウの表示領域に出力します。次の画面を表示するには Space Bar キーを押します。終了してコマンドプロンプトに戻るには q キーを押します。マニュアルページは、利用できる全オプションと適切なコマンド構文を記述しています。マニュアルページによっては、コマンドのさまざまな用途を説明した例もあります。

whatis コマンドによる 1 行要約の表示

コマンド機能の 1 行要約だけを参照する場合は、次に示すような whatis コマンドを使います。

$ whatis date
date (1)           -display or set the date
$

上記の例で、コマンド名の後の括弧内に数字がありますが、この数字はこのコマンドが属するセクションを示します。コマンドは、その機能に応じてさまざまなセクションに分類されています。大部分のユーザコマンドは、セクション 1 にあります。共通の表記法により、セクション番号はコマンド名の後の括弧内に表示されます。紙のマニュアルページでは、同じセクション内の各コマンドはアルファベット順に並んでいます。

apropos によるキーワードの検索

実行したい機能はわかっていても、どのコマンドを使えばよいかわからない場合は、apropos コマンドが便利です。apropos コマンドを使うと、キーワード検索によって適切なコマンドを見つけることができます。apropos を実行すると、入力したキーワードを要約行に含むコマンドが、すべて一覧表示されます。入力したキーワードが多数の場所に現れる場合は、表示が非常に長くなることがあります。

apropos の出力例として、次のコマンドのどれかを入力してみてください。

入力するキーワードによって表示が非常に長くなる場合は、Ctrl-C を押せば (Ctrl キーを押したままで c キーを押す)、表示が中止されコマンドプロンプトに戻ります。