この章の内容は次のとおりです。
コマンドの入力には、端末かウィンドウを使用してください。端末またはウィンドウの起動方法を知りたい場合は、使用しているデスクトップ環境のマニュアルを参照してください。
一般に作業セッションとは、ユーザがシステムにログインしてからログアウトするまでを指します。SunOS のマルチユーザ環境では、システムを利用するたびに識別名を入力することが必要です。システムがユーザを識別し、またそのユーザをほかのユーザと区別するための識別名として、ログイン名 (ユーザ名またはアカウントとも呼ばれる) が使われます。パスワードは、それを知っているユーザだけがアカウントを利用できるように制限するものです。ログイン名とパスワードをまだ持っていない場合は、システム管理者に問い合わせてアカウントを設定してもらってください。ログイン名とパスワードが設定されれば、ログインできる状態になります。
システムにログインするときは、画面に次のような文字が表示されていなければなりません。
hostname console login: |
システム管理者によって割り当てられたログイン名を入力して Return キーを押します。たとえば、ログイン名が spanky の場合は次のように入力します。
hostname console login: spanky |
それから、Return キーを押します。次に、パスワードを入力するよう要求されます。
hostname console login: spanky Password: |
プロンプトに対してパスワードを入力して Return キーを押します。(アカウントにまだパスワードが割り当てられていない場合は、パスワードを入力しなくてもログインできます。)入力したパスワードが画面に表示 (エコー) されることはありません。これは、ほかのユーザにパスワードを知られないようにするためです。
2 章以降では、SunOS のコマンドを使用します。システムに対してコマンドを入力すると、実際にはシェルと呼ばれるコマンド・インタプリタプログラムに情報を提供することになります。シェルプログラムは提供された情報を読み取り、適切なアクションをシステム内部で実行させます。
SunOS のデフォルトシェルは Bourne シェルですが、Solaris オペレーティング環境は次のシェルもサポートしています。
GNU Bourne Again シェル (bash)
C シェル (csh)
Korn シェル (ksh)
TC シェル (tcsh)
Z シェル (zsh)
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 キーをまだ押していなければ次の方法で入力を訂正できます。
Delete キーか Back Space キーを押して間違った箇所まで戻ります。
これら 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 |
date と logname は長いコマンドではありませんが、この例では複数のコマンドを次の行に続けるという概念を示すためにこれらのコマンドを使用しています。入力するコマンドが画面の幅よりも実際に長いときは、バックスラッシュ文字を使うと便利です。
デスクトップウィンドウを使用する場合は、次の行にコマンドを続けて入力するためにバックスラッシュ文字を使う必要はありません。入力中のコマンドが行の終わりにくると、次の行に自動的に改行され、Return キーを押したときにそれらの全コマンドが実行されます。
Korn、Bourne Again、C、TC、および Z シェルには、入力されたコマンドの履歴を保持し、以前に入力されたコマンドを繰り返すことができるようにする機能があります。
Bourne シェル (sh) では、history コマンドは使用できません。
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 シェルを使用する場合、次のコマンドを使用して以前のコマンドを繰り返し実行します。
$ 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 年に何度かパスワードを変更するとより安全です。
自分のアカウントを許可なく使ったユーザがいるようであれば、即座にパスワードを変更してください。
書き留めなくても覚えられるパスワードを選択する。覚えられないようなパスワードは、簡単に推測できるパスワードよりも不適切です。
6 文字以上で、そのうち 1 文字以上が数字からなるパスワードを選択する。
自分の名前や頭文字、または配偶者の名前や頭文字は使わない。
ペットの名前や一般的な趣味に関係する名前は使わない。
大文字だけからなるパスワードは使わない。
複数のアカウントを持っている場合は、各アカウントごとにパスワードを変える。
パスワード内に Ctrl-C、Ctrl-Z、Ctrl-U、Ctrl-S、Esc、Tab、#、および @ は使用しない。端末によっては、これらの文字が通常のテキスト文字ではなくシグナルとして解釈されるため、パスワードを正しく入力できなくなる場合があります。
各ユーザのパスワードを変更するには、passwd コマンドを使います。
$ passwd passwd: Changing password for user2 Enter login password: New password: Re-enter new password: passwd (SYSTEM): passwd successfully changed for user2 $ |
Enter login password: というプロンプトが表示されたら、現在のパスワードを入力します。
現在アカウントにパスワードが割り当てられていない場合 は、Old Password: プロンプトは表示されません。
New Password: というプロンプトが表示されたら、新しいパスワードを入力します。
このときも、入力したパスワードは画面上に表示されません。
最後に 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』を参照してください。
この節では、さまざまなオンラインヘルプ機能について説明します。オンラインヘルプ機能を使うことによって、ワークステーションや端末からリファレンス情報を読むことができます。
コマンドの名前は知っていてもその機能について不明な場合は、man コマンドを使うと便利です。man コマンドの詳細機能を表示するには、次のように入力します。
$ man man |
このコマンドは、SunOS マニュアルページ man(1) の最初の画面をウィンドウの表示領域に出力します。次の画面を表示するにはスペースバーを押します。終了してコマンドプロンプトに戻るには q キーを押します。マニュアルページは、利用できる全オプションと適切なコマンド構文を記述しています。マニュアルページによっては、コマンドのさまざまな用途を説明した例もあります。
コマンド機能の 1 行要約だけを参照する場合は、次に示すような whatis コマンドを使います。
$ whatis date date (1) -display or set the date $ |
上記の例で、コマンド名のあとの括弧内に数字がありますが、この数字はこのコマンドが属するリファレンスマニュアルセクションを示します。コマンドは、その機能に応じてさまざまなセクションに分類されています。大部分のユーザコマンドは、セクション 1 にあります。共通の表記法により、セクション番号はコマンド名のあとの括弧内に表示されます。紙のマニュアルページでは、同じセクション内のコマンドはアルファベット順に並んでいます。
whatis コマンドを利用できるのは、システム管理者がコマンド説明を集めた特殊なデータベースを設定している場合だけです。
実行したい機能はわかっていても、どのコマンドを使えばよいかわからない場合は、apropos コマンドでキーワード検索によってコマンドを見つけることができます。apropos を実行すると、入力したキーワードを要約行に含むコマンドが、すべて一覧表示されます。キーワードが多数の場所に現れる場合は、apropos の出力が非常に長くなることもあります。
apropos コマンドを利用できるのは、システム管理者がコマンド説明を集めた特殊なデータベースを設定している場合だけです。
apropos の出力例を確認するには、次のコマンドを入力してください。
apropos who
apropos execute
apropos apropos
入力するキーワードによって表示が非常に長くなる場合は、Ctrl-C を押せば (Ctrl キーを押したままで c キーを押す)、表示が中止されコマンドプロンプトに戻ります。