オンラインテキスト目次
コンピュータリテラシー目次

Unixのコマンド

Unixには非常に多くのコマンドがある. これらのコマンドの使い方を(しかもオプションの働きをも)理解することは,Unixの使い手となるための第一歩である.

ここでは,ごく簡単で,しかも便利な用途が広がるコマンドのいくつかを紹介する. 実際に,コマンドを実行させて,その表示結果や意味などを検討することが大切である.

以下のコマンドは,今後必須の前提知識として説明なして利用する.

cat

cat はファイル内容を表示するコマンドとして既に使ってきた. ファイルfile1,file2,file3,...の内容をつなげて(連接して)表示するには,次のようにする:
% cat file1 file2 file3 ....

nkf

漢字コードを変換するフィルタである. ファイルfileをシフトJIS(WindowsやMacintoshで主に使われる漢字コード)に変換して,その結果をファイルsjisに書き出すには次のようにする.
% nkf -s file > sjis
漢字コードフィルタnkfのオプション
オプション 意味
-j JIS漢字コードに変換
-e EUC漢字コードに変換
-s シフトJISコードに変換

注意: 本学のUnixの漢字コードはEUCである. Unixに接続されているプリンタから,Windowsで作成したテキストファイル(シフトJIS漢字コードで書かれている)sjis.txtの内容をプリンタからする前には,漢字コードの変更が必要である.
逆に,Unixで作成したテキストをWindowsやMacintoshを使って作業を続けるためには,漢字コードをShift JISに変更しておく必要がある.

テキストファイルの印刷

Unixに接続されているプリンタはPostscriptプリンタである. 通常のテキストファイルの内容をPostscriptプリンタで印刷するには,ASCII文字や漢字をPostscriptに変換してプリンタに送り込む必要がある.

テキストファイルをPostscriptに変換するためのコマンドが『 a2ps 』である (ただし、漢字はUnix用に変換されていることが前提).

たとえばテキストファイルreport.txtをPostscriptプリンタで印刷するには次のようにする.

% a2ps report.txt | lpr
プログラムの解説によく見られるように,行番号を付けて印刷するには
% a2ps --line-numbers=1 report.txt | lpr
とすればよい.

知っていると便利なオプションを,表に示す.

テキストファイルをPostscriptに変換するフィルタa2psのオプション
オプション 意味
-RA4用紙を立てに使うことをを指定している. このオプションがなければA4用紙を横にして(landscape)2 段組に印刷される(字が細かくてもよい場合や多くの文字数があるファイルの印刷に向いている).
--line-numbers=1 全ての行に行番号を付ける
-Tn タブの文字数をn文字にする.デフォルトは8文字.

sort

sortは入力行を並べ替えるコマンドで,Unixでは頻繁に利用される. 並べ替えの条件オプションは次の通り.

ソートsortのオプション
オプション 意味
-n 数値として比較
-r 逆順にソート
-f 大文字と小文字を区別しない
+i i番目のフィールド以降を比較(最初のフィールドは0番目).

フィールドとは"単一の空白文字(空白またはタブ)で区切られた領域"である. 空白が2つ以上続いた場合,先頭の空白が区切り文字として扱われ,2番目以降は次のフィールドに含まれる.

演習:ls コマンドでのロングフォーマットにおけるフィールドを調べ上げよ.

ホームにある「すべて」のファイルをロングフォーマットで表示したとき,
% ls -al | sort +i
で『i』に適当なフィールド数を入れて ファイル名で並べ替えたとき,アルファベット大文字で始まる,小文字で始まる,.や..記号で始まるファイル群はどのように並ぶかを詳細に報告せよ.

head

haedはファイルの先頭部分(デフォルトでは10行)を表示するコマンドである. ファイルfileの先頭20行を表示するには,次のようにする.
% head -20 file

演習:ホームにある適当なファイルを使って,ファイルの先頭表示行数を変えてheadコマンドを実行してみよ.

tail

tailはファイルの末尾行(デフォルトで末尾10行)を表示するコマンド. ファイルfileの末尾20行を表示するには,次のようにする.
% tail -20 file

演習:ホームにある適当なファイルを使って,ファイルの末尾表示行数を変えてtailコマンドを実行してみよ.

演習:次のコマンドの意味を説明せよ

% cat file | head -50 | tail -10

wc

wcはファイルの行数,単語数や文字数を表示するコマンド(漢字の場合には正しく表示されないことがある).
% wc file
     100     340    1234 number
は,左からファイルfileの行数,単語数,文字数(コントロール文字を含む)を返している.ただし,文字数はバイト数で表示されるため,日本語の場合は1文字あたり2文字とカウントされる(Shift-JIS,EUCの場合).

個々の情報だけを表示するには,次のオプションを使う.

オプション 意味
-l 行(Line)数の表示
-w 単語(Word)数の表示
-c 文字(Character)数(バイト単位)の表示

オプションを複数指定すれば,指定した順番に表示させることができる.

% wc -l *.txt
は,拡張子.txtの付くすべてのファイルの行数を表示する.

演習:ホームディレクトリにあるすべてのファイルをその行数の少ない順に表示するにはどうすればよいか.


コンピュータリテラシー目次
オンラインテキスト目次

mizutani@rsch.tuis.ac.jp