Unixシステムにログインすると、以下のようなプロンプトがあらわれる。
irsv{i2004000}% [~]
プロンプトが出ているときにコマンドを打つことができる。コマンドを
打つときに「いる」のことをカレントディレクトリという。
カレントディレクトリはpwd
コマンドで確認できる。
irsv{i2004000}% pwd [~] /home/irhome/itl/i2004000
/home/irhome/itl/i2004XXX
のように表示されたものが
自分のホームディレクトリである。ホームディレクトリは
良く使うので、~
(チルダ)という記号で代用できる。たとえば、
~/public_html
と書いた場合は、
/home/irhome/itl/c103XXX/public_html
と書いたのと
同じ意味になる(xの部分は人によって異なる)。
コマンドラインからコマンドを打つとき、ファイル名の先頭部分だけ入れて TAB キーを押すと、ファイル名の残りの部分を補ってくれる(既に そのファイルが存在する場合)。 これをファイル名補完といい、使うのと使わないのとでは作業効率が 著しく異なるので積極的に利用したい。
ls
ディレクトリにあるファイルを表示。スペースで区切ってディレクト
リ名を指定するとそのディレクトリにあるファイル一覧を表示する。
-l
オプションを指定すると詳細表示(ロングフォーマット)で出
力する。
例:
% ls Mail/ help memo script/ TUTORIAL.ja maildir/ public_html/ % ls Mail draft/ inbox/ trash/ % ls -l Mail total 3 drwx------ 3 i2004000 irhome/itl 512 Oct 27 01:13 draft/ drwx------ 2 i2004000 irhome/itl 2048 Oct 27 01:14 inbox/ drwx------ 2 i2004000 irhome/itl 1024 Sep 11 13:58 trash/
-l
以外にもたくさんオプションがある。代表的なものを以
下に示す。
-t
ファイルを時刻順に並べ換えて表示
-r
ファイルの並べ換えを逆順にして表示
-R
指定したディレクトリの下にあるファイル全てを再帰的に たどって表示
-d
ディレクトリそのものの情報を表示(通常-l
と組み合わせる: ls -ld Mail
)
mkdir
ディレクトリを作成する。
例:
% ls Mail/ help memo script/ TUTORIAL.ja maildir/ % mkdir public_html % ls Mail/ help memo script/ TUTORIAL.ja maildir/ public_html/
rmdir
ディレクトリを削除する。
例:
% ls Mail/ help memo script/ TUTORIAL.ja maildir/ public_html/ % rmdir public_html % ls Mail/ help memo script/ TUTORIAL.ja maildir/
cd
ディレクトリを移動する。 例:
% pwd /home/irhome/itl/i2004000 % cd Mail % pwd /home/irhome/itl/i2004000/Mail
ホームディレクトリに戻りたいときは cd
とだけ
タイプする。
% pwd /home/irhome/itl/i2004000/Mail % cd /home/irhome/itl/i2004000
cp
ファイルをコピーする。ファイルを2つ指定する、つまり、
cp File1 File2
とすると File1 を File2 にコピーする。最後にディ レクトリを指定する場合はコピー元となるファイルを何個でも指定できる。 たとえば、
cp File1 File2 File3 Directory
とすると、File1 File2 File3 の全てを Directoryディレクトリにコピーする。
cp *.html Directory
とするとカレントディレクトリにある .html で終わるファ イル全てをDirectoryディレクトリにコピーする。
mv
ファイルを移動する。使い方は cp
と同じ。
mv File1 File2 File3 Directory
とすると、File1 File2 File3 の全てを Directoryディレクトリに移動する。
mv *.html Directory
とするとカレントディレクトリにある .html で終わるファ イル全てをDirectoryディレクトリに移動する。
cat
ファイルを標準出力(端末画面)に書き出す。
% cat ファイル……
とすることで、指定したファイル(複数指定した場合はそれら全てを連 結したもの)の中味を標準出力に出力する。良く使うオプションには 以下のものがある。
-n
各出力行の前に、行番号を付加する。
-v
ファイル中に印字不能文字がある場合、それらを代替表現で表 示する。
catは、ファイルの内容を一気に出力するので、通常は、シェルの
パイプラインを利用して別のプロセスに渡す場合に利用する。ファイルの
中味そのものを自分が読みたい場合は、次項で説明するless
コマンドを利用する。
less
ファイルの中味を画面に出力し、一画面表示したところで止まる。
次の一画面分を見たい場合は、SPCキーを押して順次読み進め
ることができる。less
でファイルの中を読んでいるとき
は、画面最下行に、
ファイル名 (END)
のようなプロンプトが表示される。これは、less
のコ
マンドモードに入っていることを示す。less
コマンド
モードで利用できるキー操作としては、以下のものが重要である。
lessコマンドを抜けるときのqだけは覚えておけば何とか なるだろう。
wc
標準入力全ての、「行数」、「単語数」、「文字数」を数える。 ファイルを指定した場合は、そのファイルについて数える。
% wc class.txt
86 81 2034 class.txt
class.txtは86行で構成されるファイルであると分かる。
nkf
日本語を含むテキストを読み込み、指定した漢字コードに変換する。 SJIS/JIS/EUCコードに対応している。
% nkf [オプション] [ファイル]…
「オプション」は、変換したい漢字コードに応じて以下のどれかを指 定する。
-j
JISコードに変換する
-e
EUCコードに変換する
-s
Shift JIS コードに変換する
egrep
正規表現により検索パターンを指定して、そのパターンにマッ チする行を表示する。
% egrep [オプション] パターン [ファイル]
とすると、「ファイル」(ファイルを省略した場合は標準入力)から 「パターン」にマッチするものを含む行を検索してその行を標準出力に書 き出す。良く使うオプションには以下のものがある。
-h
複数のファイルを指定した場合でも、マッチした行のファイル 名を表示しない
-i
アルファベットを検索する場合に大文字小文字を同一視する
-l
一致した行ではなく、一致したものがあるファイル名を表示する
-v
そのパターンを含まない行を表示する(反転)
-w
検索パターンを「単語」だと見す
いくつか例を示そう。
% egrep abc *
カレントディレクトリにある全てのファイルから "abc" という文字列 を含む行を表示する。ファイルが複数ある場合はマッチする行の先頭に ファイル名も表示する。
% egrep -i abc *
上と同様だが、"abc" というパターンでアルファベット大文字小文 字を同一視して検索する。"ABC", "Abc" などの行もマッチする。
% egrep -w abc access_log | egrep -v xyz
access_log
というファイルから "abc" という単語を含
む行を選んでパイプラインに渡す。パイプラインの先の次のegrepでは、
受け取った行のうち、xyzというパターンを含まない行だけを選
んで表示する。
データを一行単位で並べ換えた結果を出力する。良く使うものとし て、次のオプションが挙げられる。
-u
並べ換えた結果、2つ以上同じデータが並ぶときに、重複行を削 除する。
-n
データを辞書順(文字コード順)ではなく、数値だとみなして並
べ換える。辞書順では "10" より "9" のほうが若い(小さい)と
みなされ "10" が先に来るが、-n
をつけると、数
値としての 10, 9 の大小比較をするので、9のほうが先に来る。
-r
並べ順を逆にする。つまり、昇順(若い順)ではなく、降順(大 きい順)にする。
du
コマンドと合わせて次のように利用することが良くあ
る。
% du -sk */ | sort -nr
最初の du
コマンドで、全ディレクトリに含まれる容量
が得られる。たとえば以下のようになる。
28 Mail 4 maildir 1 nsmail 12 script
行頭にディレクトリ以下のファイル容量がKB単位で表示されるので、
これを sort -nr
に渡すと、数値の大きい順に並べ換えら
れ、
28 Mail 12 script 4 maildir 1 nsmail
という結果が得られる。duコマンドの結果出力が非常にシンプルで、 さみしいと感じていたかもしれないが、このように別のコマンドに渡し て並べ換えなどの別の処理を行なうためには、出力には余計なメッセージ を含ませないことが重要である。
→ 目次