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

第 2 章 ログインと基本的な SunOS コマンドの使用

この章の内容は次のとおりです。

コマンドの入力には、端末かウィンドウを使用してください。端末またはウィンドウの起動方法を知りたい場合は、使用しているデスクトップ環境のマニュアルを参照してください。

ログインの方法

一般に作業セッションとは、ユーザがシステムにログインしてからログアウトするまでを指します。SunOS のマルチユーザ環境では、システムを利用するたびに識別名を入力することが必要です。システムがユーザを識別し、またそのユーザをほかのユーザと区別するための識別名として、ログイン名 (ユーザ名またはアカウントとも呼ばれる) が使われます。パスワードは、それを知っているユーザだけがアカウントを利用できるように制限するものです。ログイン名とパスワードをまだ持っていない場合は、システム管理者に問い合わせてアカウントを設定してもらってください。ログイン名とパスワードが設定されれば、ログインできる状態になります。

システムにログインするときは、画面に次のような文字が表示されていなければなりません。


hostname console login:

システム管理者によって割り当てられたログイン名を入力して Return キーを押します。たとえば、ログイン名が spanky の場合は次のように入力します。


hostname console login: spanky

それから、Return キーを押します。次に、パスワードを入力するよう要求されます。


hostname console login: spanky

Password:

プロンプトに対してパスワードを入力して Return キーを押します。(アカウントにまだパスワードが割り当てられていない場合は、パスワードを入力しなくてもログインできます。)入力したパスワードが画面に表示 (エコー) されることはありません。これは、ほかのユーザにパスワードを知られないようにするためです。

ログインシェル

2 章以降では、SunOS のコマンドを使用します。システムに対してコマンドを入力すると、実際にはシェルと呼ばれるコマンド・インタプリタプログラムに情報を提供することになります。シェルプログラムは提供された情報を読み取り、適切なアクションをシステム内部で実行させます。

SunOS のデフォルトシェルは Bourne シェルですが、Solaris オペレーティング環境は次のシェルもサポートしています。

これらのシェルには、それぞれ独自の機能があります。


注 –

man コマンドで各シェルプログラムを含む SunOS の各コマンドのマニュアルページを表示できます。マニュアルページについての詳細は、man コマンドによるマニュアルページの表示を参照してください。


初めてシステムにログインしたとき (あるいは端末またはウィンドウを新たに開いたとき) にコマンドプロンプトが表示された場合は、シェルプログラムが自動的に起動されたことを意味します。このシェルは、ログインシェルと呼ばれます。システム管理者が別のシェルを指定している場合は、ログインシェルは SunOS のデフォルト (Bourne シェル) になりません。

あるシェルで利用できるコマンドや手続きがほかのシェルでは利用できない場合もあります。特に明記されていないかぎり、このマニュアルで説明されているコマンドと手続きはすべて Bourne シェルで利用できます。

ログアウトの方法

作業セッションを完了してオペレーティングシステムを終了する準備ができたら、次のように入力してログアウトします。


$ exit

しばらくすると、再びログインプロンプトが表示されます。


$ exit

hostname console login:

ログインプロンプトが表示された場合は、正常にログアウトできたことを意味します。これで任意のユーザが続けてログインできる状態になります。


注 –

SunOS オペレーティングシステムでは、ワークステーションや端末の電源を切ってもログアウトできるとは限りません。明示的にログアウトしない場合、システムにログインしたままになることがあります。


ショートカットキー

操作の中には、特定のキーの組み合わせ (キーボードアクセラレータと呼ぶ) を使用して操作をスピードアップできるものが多数あります。この機能を利用すると、マウスやメニューと同等の操作を行なったり、あらかじめ定義されているキーボードのキー操作を行なったりできます。


注 –

メタキーは SPARC キーボード上では <> キーを意味し、x86 キーボード上では Ctrl-Alt キーを押すことを意味します。


キーボードアクセラレータを使用するには、最初のキー (メタキー、または Ctrl-Alt キー) を押しながら 2 番目のキーを押します。たとえば、選択したテキストをカットするには、SPARC システムではメタキーを押しながら x キーを押します。x86 システムでは Ctrl キーと Alt キーを一緒に押しながら x キーを押します。

コマンドプロンプト

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

コマンドプロンプトを変更する場合は、コマンドプロンプトの変更を参照してください。

コマンドの入力

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


$ date

Mon Sep 17 10:12:51 PST 2001

$

このコマンドは、現在の日時を表示します。同じコマンドの先頭の文字を大文字で入力すると、次のメッセージが表示されます。


$ Date

Date: Command not found.

$

Solaris オペレーティング環境は大文字の D を小文字の d とは異なるものとして解釈するため、Date コマンドは失敗します。Solaris オペレーティング環境のほとんどのコマンドは小文字です。

誤った入力の訂正

ユーザが入力したコマンドは、Return キーを押すまではシステムに送信されません。コマンドを間違って入力しても、Return キーをまだ押していなければ次の方法で入力を訂正できます。

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

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

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


$ date; logname

Tue Oct 31 15:16:00 MST 2000

spooky

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

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


$ date; \

logname

Tue Oct 31 15:17:30 MST 2000

spooky

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


注 –

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


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

Korn、Bourne Again、C、TC、および Z シェルには、入力されたコマンドの履歴を保持し、以前に入力されたコマンドを繰り返すことができるようにする機能があります。


注 –

Bourne シェル (sh) では、history コマンドは使用できません。


Bourne Again、C、TC、Z シェルでコマンドを繰り返す

Bourne Again、C、TC、または Z シェルを使用している場合は、!! と入力して Return キーを押すことにより最後に入力したコマンドを繰り返し実行することができます。


example%!!

date

Tue Oct 31 15:18:38 MST 2000

example%

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


example% history

1  pwd

2  clear

3  ls -l

4  cd $HOME

5  logname

6  date

7  history

注 –

Z シェルは、履歴リストに history コマンドを表示しません。


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


example% !-2

date

Tue Oct 31 15:20:41 MST 2000

example%

注 –

Z シェル内で history コマンドの直後にこのコマンドを繰り返し実行するには、! のあとの負の数を 1 つ増やしてください (!-3)。


上記の履歴リストの例では、date コマンドが繰り返し実行されます。

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

Korn シェルでのコマンドの繰り返し

Korn シェルを使用する場合、次のコマンドを使用して以前のコマンドを繰り返し実行します。


$ fc -s -

date

Tue Oct 31 15:18:38 MST 2000

$

fc -s x と入力すると、以前に入力した任意のコマンドを繰り返し実行できます。x は、繰り返すコマンドに対応する履歴リスト上のコマンド番号です。履歴リストを参照するには、fc -l と入力して Return キーを押します。履歴リストの使用例を次に示します。


$ fc -l

344  pwd

345  clear

346  ls -l

347  cd $HOME

348  logname

349  date

350  history

$

履歴リストからコマンドを繰り返し実行するには、fc -s コマンドにマイナスの番号を付けて実行します。たとえば、履歴リスト上の最後のコマンドから数えて 2 番目のコマンドを実行するには、次のコマンドを入力します。


$ fc -s -2

date

Tue Oct 31 15:20:41 MST 2000

$

上記の履歴例では、date コマンドが繰り返し実行されます。

fc -s コマンドに以前のコマンドの最初の 2、3 の文字を付けることによっても実行できます。たとえば、以前に date コマンドを使用して現在の日時を表示した場合、fc -s da と入力すると日時を再度表示できます。ただし、履歴リスト内でコマンドを特定するのに十分な文字数を入力する必要があります。fc -s のあとに 1 文字しか指定しなかった場合は、その文字で始まるコマンドのうちで最後に入力したものが繰り返されます。

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

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


$ date -u

Tue Oct 31 22:33:16 GMT 2000

$

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

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

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


$ date> sample.file

$ 

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


$ more sample.file

Tue Oct 31 15:34:45 MST 2000

$

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

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

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


$ date | lp

request id is jetprint-46 (1 file)

$

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

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

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

コマンドを入力して Return キーを押すと、システムはそのコマンドを実行し、コマンドがタスクを完了するのを待ち、その後別のコマンドを入力するようプロンプトを表示します。しかし、中には完了するまでにかなりの時間がかかるコマンドもあるため、その間に別のコマンドを実行する方が効率的です。前のコマンドを実行している間、別のコマンドを実行するには、バックグラウンドで実行できます。

バックグラウンドでコマンドを実行するには、次の例のようにアンパサンド (&) をコマンドの後に入力します。


$ bigjob &

[1] 7493

$ 

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


$ date

Tue Oct 31 15:44:59 MST 2000

[1]    Done                 bigjob

$ 

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


$ nohup bigjob &

[3] 7495

$

パスワードの使い方

システムのセキュリティ保護のため、Solaris オペレーティング環境ではパスワードを使用してシステムにアクセスする必要があります。1 年に何度かパスワードを変更するとより安全です。


注 –

自分のアカウントを許可なく使ったユーザがいるようであれば、即座にパスワードを変更してください。


パスワードは次の点を考慮して選択します。

パスワードの変更方法

各ユーザのパスワードを変更するには、passwd コマンドを使います。


$ passwd

passwd:  Changing password for user2

Enter login password: 

New password: 

Re-enter new password: 

passwd (SYSTEM): passwd successfully changed for user2

$ 
  1. Enter login password: というプロンプトが表示されたら、現在のパスワードを入力します。

    現在アカウントにパスワードが割り当てられていない場合 は、Old Password: プロンプトは表示されません。

    パスワードは画面にエコー (表示) されないため、ほかの人にパスワードを知られなくてすみます。

  2. New Password: というプロンプトが表示されたら、新しいパスワードを入力します。

    このときも、入力したパスワードは画面上に表示されません。

  3. 最後に Retype new password: というプロンプトに対して、新しいパスワードをもう一度入力します。

    これは、意図したパスワードを入力したかを確認するためです。

    前のプロンプトで入力したパスワードのとおり入力しないと、パスワード変更は拒否され、次のメッセージが表示されます。


    passwd: They don't match; try again.
    

    このメッセージが繰り返し表示される場合は、システム管理者に連絡して新しいパスワードを設定してください。


    注 –

    6 文字未満のパスワードは使えません。また、新しいパスワードは古いパスワードと比較して 3 文字以上は異なっていなければなりません。


パスワードの有効期限を設定する

パスワードの有効期限を設定 (passwd コマンドのオプションを使うと設定できる) している場合、パスワードには最長有効期限のみ、または最長有効期限と最短有効期限の両方を持つものがあります。パスワードの有効期限は、システム管理者が設定します。

パスワードが有効期限に達すると、ログイン時にパスワードの変更を求める次のメッセージが表示されます。


Your password has expired. Choose a new one.

次に、自動的に passwd プログラムが実行され、新しいパスワードを入力するよう要求されます。

また、たとえば、パスワードの最短有効期限が 2 週間と設定されている場合、その最短期間が経過する前にパスワードを変更しようとすると、次のメッセージが表示されます。


Sorry, less than 2 weeks since the last change.

passwd(1) と、パスワードの有効期限の設定についての詳細は、『man pages section 1: User Commands』を参照してください。

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

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

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

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


$ man man

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

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

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


$ whatis date

date (1)           -display or set the date

$

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


注 –

whatis コマンドを利用できるのは、システム管理者がコマンド説明を集めた特殊なデータベースを設定している場合だけです。


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

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


注 –

apropos コマンドを利用できるのは、システム管理者がコマンド説明を集めた特殊なデータベースを設定している場合だけです。


apropos の出力例を確認するには、次のコマンドを入力してください。

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