UNIXのとっても初歩の操作

私は何を持っているの?

UNIXにloginすると、プロンプトが出されて入力が促されます。 とりあえず「あなたが今何を持っているか」から調べることにしましょう。

UNIXは、あとで述べるように全てをファイルとして扱います。 このファイルを一覧表示するコマンドがls(LiSt)コマンドです。

	   >   ls
	

何も表示されませんね? 最初は何もファイルがないのでしょうか?

じつは、UNIXのlsは .(ピリオド)で始まるファイルは表示しないように なっています。 .(ピリオド)で始まるファイルは、初期設定関係や自分の環境構築のために用 いられることになっていますが、ふだんの作業では見えて欲しくないことが多いの でこうなっています。

では、全部のファイルを表示するにはどうしたらよいのでしょうか? UNIXのコマンドは、色々なコマンドラインオプション [1] をつけることで、 振る舞いを変えることができるようになっています。 lsコマンドで、(.から始まるファイルを含む)全てのファイルを表示す るには、-aオプションを利用して下さい。

すると、

	   >   ls -a
	  .               .canna          .login          .newsrc
	  ..              .cshrc          .logout
	  .Xauthority     .forward        .mailrc
	  .Xdefaults      .fvwmrc         .mnews_setup
	

表示は少し異なるかも知れませんが、このようなファイルが見えたはずです。

ファイルの名前だけ見てもしかたが無いので、中身が見たいところです。 これには、色々な方法がありますが、 試しに見たいだけなのであんまり大きいファイルだと困ってしまいます。

そこで、今度はファイルの大きさを調べてみましょう。 これには、ls-lオプションつきで使えば大丈夫です。 でも、ただ単に-lだけを指定したのでは、全部のファイルが読めません。 今は、-a-lを指定したいですが、どうしましょうか? オプションを複数指定する方法には、-a -lの様に指定する方法と、 -alの様に指定する方法があります。 これはコマンドによって異なったり、両方使えたりするのですが lsの場合はどっちでも大丈夫です [2]

では調べましょう。

	   >   ls -al
	  total 139
	  drwxr-sr-x   2 mutoh    mutoh       512 Jul  5 19:41 .
	  drwxr-sr-x  14 mutoh    mutoh      1536 Jul  5 19:40 ..
	  -rw-------   1 mutoh    mutoh       492 Jul  5 19:41 .Xauthority
	  -rw-r--r--   1 mutoh    mutoh      6681 Jul  5 19:41 .Xdefaults
	  -rw-r--r--   1 mutoh    mutoh      4362 Jul  5 19:41 .canna
	  -rw-r--r--   1 mutoh    mutoh      5598 Jul  5 19:41 .cshrc
	  -rw-r--r--   1 mutoh    mutoh        24 Jul  5 19:41 .forward
	  -rw-r--r--   1 mutoh    mutoh     14843 Jul  5 19:41 .fvwmrc
	  -rw-r--r--   1 mutoh    mutoh      1981 Jul  5 19:41 .login
	  -rw-r--r--   1 mutoh    mutoh       614 Jul  5 19:41 .logout
	  -rw-r--r--   1 mutoh    mutoh      1515 Jul  5 19:41 .mailrc
	  -rw-r--r--   1 mutoh    mutoh      8835 Jul  5 19:41 .mnews_setup
	  -rw-r--r--   1 mutoh    mutoh     88466 Jul  5 19:41 .newsrc
	

なにがなんだか分かりませんね。 とりあえず、スペース(空白)で区切られたひとつひとつをフィールドと呼ぶこ とにしましょう。 頭から数えて、5番目のフィールドがファイルの大きさです。

ファイルの中身を見る方法

余り大きなファイルを見てもしかたが無いので、丁度良さそうな(?) .cshrcを見てみましょう。 ファイルをみるコマンドには色々あります [3] が、最も単純なcat [4] でも使ってみることにしましょう。

	   >   cat .cshrc
	  #csh .cshrc file
	  setenv  EDITOR          ne
	  setenv  EXINIT          'set autoindent'
	  setenv  LESSCHARSET     japanese-euc
	  (略)
	  umask 2
	  endif
	

あっというまに表示されて読めなかったでしょうが、とりあえずファイルの 表示方法は分かりましたね? morelessは一ページごとに表示が止まりますので、 ゆっくり読むことができます。 興味があれば試してみて下さい。

UNIXのコマンドがワカラヘン!?

UNIXは、呆れてしまう程のコマンドがあります。 これを全部おぼえるのなんてとうてい無理ですし、すべての解説をするには 辞書ぐらいの厚さの本を書いても無理かも知れません [5]。 実際、わたしもすべてのコマンドの一覧というものをみたことすらありません。

では、どうやって今使いたいコマンドを調べたらよいのでしょうか?

UNIXには、オンラインマニュアルが用意されています。 オンラインマニュアルを読むためのコマンドがmanです [6]。 まずは、manのオンラインマニュアルを読んでみましょう。

	   >   man man
MAN(1)                  FreeBSD General Commands Manual                 MAN(1)

NAME
     man - format and display the on-line manual pages

SYNOPSIS
     man [-adfhkotw] [-m machine] [-p string] [-M path] [-P pager] [-S list]
         [section] name ...

DESCRIPTION
     Man formats and displays the on-line manual pages.  This version knows
     about the MANPATH and PAGER environment variables, so you can have your
     own set(s) of personal man pages and choose whatever program you like to
     display the formatted pages.  If section is specified, man only looks in
	  (後略)
	

標準ではページャ [7] として、moreが動きますが、 スペースを押して行けば次々にページが見れるので便利ですね。 moreは前に戻ることはできませんが、 lessであれば bを押すことで、一つ前のページも見ることができます。 その他の操作に付いては?を押してください。 見るのを終わりたくなったら、qを押して下さい。

しかし、記述はなんと英語ですね 英語であっても、読まないと駄目なところは決まっていますので、 あんまり毛嫌いしなくても大丈夫です。

NAMEには、コマンド名とその簡単な説明が書いてあります。 「オンラインマニュアルページを整形し、表示する」と書いてあります。

SYNOPSISのところに、 コマンドはこういうコマンドラインオプションがあって、 こう入力して下さいというのがあります。 どうも、man -kという使い方が怪しそうです。 このオプションの使い方を見てみましょう。

もう少し読み進めると、オプションを記述した部分があるはずです。 ここに、コマンドラインオプションの説明があります。

	  (前略)
     The options are as follows:

     -M path     Specify an alternate manpath.  By default, man uses
                 manpath(1) (which is built into the man binary) to determine
	  (中略)
     -k          Equivalent to apropos.
	  (後略)
	

aproposコマンドと同じと書いてますね。 では、見てみましょう。

	   >   man apropos
APROPOS(1)              FreeBSD General Commands Manual             APROPOS(1)

NAME
     apropos, whatis - search the whatis database

SYNOPSIS
     apropos keyword ...
     whatis keyword ...

DESCRIPTION
     apropos searches a set of database files containing short descriptions of
     system commands for keywords and displays the result on the standard out-
     put.  whatis displays only complete word matches.

RETURN VALUES
     The apropos utility exits 0 on success, and 1 if no keyword matched.

SEE ALSO
     makewhatis(1), man(1)

FreeBSD 4.5                    January 15, 1991                    FreeBSD 4.5
	

「文字列(string)をwhatisデータベースから検索する」 コマンドのようです。 whatisデータベースとは、オンラインマニュアルのNAMEセクションを 抜きだして作ったコマンドとその機能の簡単な説明を含んだもので、 これを検索することによって今必要なコマンドを探すことができます。

では、電子メール関係のコマンドに何があるのか調べてみましょう。 この場合、キーワードはmailあたりがいいでしょうか?

	   >   apropos mail
aliases(5) - aliases file for sendmail
biff(1)                  - be notified if mail arrives and who it is from
ctm_smail(1), ctm_dequeue(1), ctm_rmail(1) - send and receive ctm deltas via mai
l
	  (中略)
sendmail(8)              - an electronic mail transport agent
smrsh(8)                 - restricted shell for sendmail
Net::SMTP(3)             - Simple Mail Transfer Protocol Client
Palm::Mail(3)            - Handler for Palm Mail databases
	

なんか、たくさん出て来ましたね。 この中から、目的に合いそうなものが見つかったら、さらにそのコマンドを manコマンドで調べることで、使い方が分かりますね。

このようにして、ひとつずつ使えるコマンドを増やしていけばいいわけです。

Notes

[1]

コマンドを実行する時に与える追加的な機能を指定する文字列です。 指定によって、コマンドの振舞いがさまざまに変わります。

[2]

コマンドごとに違うのは困ってしまいますね。 あとで、コマンドのオンラインマニュアルの読み方を説明しますので、 どうやって調べるかはもう少し待って下さい。

[3]

more,lessなどが代表的なファイルを見るためのコマンドです

[4]

本当はconCATenateの略で、 ファイルとファイルをつなぐためのコマンドです。

[5]

「The UNIX Super Text」[2]はUNIXについて 詳しく説明している本ですが、 上下2分冊で両方あわすと1400ページにもなります!! 下手な電話帳よりも厚いですね。

[6]

日本語マニュアルを表示するためのコマンドjmanも FreeBSDには存在します (japanese/manjapanese/man-doc)。 日本語マニュアルがない場合があるので、ここでは英語マニュアルの 読み方のコツに付いて説明しておきます。

[7]

表示を行なうためのコマンドです。 変更も可能です。 環境変数PAGERを好きなページャにしてください。