UNIXのコマンド 1

ファイルの中身を表示するコマンド

C言語のプログラムやMAYAのデータファイルのようなテキストファイルの 表示にはそのためのコマンドを使う。

more と less

more と lessはファイルの中身を表示するためのコマンドである。 ファイルの内容をただ見るだけの時は、 viなどのエディタを使うよりもmoreやlessを使った方が良い。 間違って消したり、書き換えたりすることが無いからである。

more
UNIXに古くからあるコマンド。
古いバージョンのものは後戻りができなかったが、 今のものはできるものが多い。
less
moreに機能を追加したコマンド。
普通はこちらを使えば良いが、lessが無いマシンもあるので moreも覚えておいた方が良い。

覚えておくと良い基本的なコマンドは以下の通り。

Space
次の画面を表示
q
more, lessを終らせる
b
前ページへ戻る。(後戻りの機能があるmore, lessの場合)
v
viを起動しファイルを書き換えることもできる。
(行番号)G
(行番号)の部分を表示

cat

小さなファイルの場合は、catコマンドで表示するという方法でも良い。
ただし、このコマンドはファイルの表示だけでなく色々な目的のために使用することがある。 例えば、2つ以上のファイルを1つのファイルにまとめる時などである。
以下の例ではfile1とfile2をfile3にまとめている。 (file3の中身はfile1とfile2が合体したものになって入る。)

#cat file1 file2 > file3

head と tail

head と tailはファイルの最初と最期の部分だけを表示する単純なコマンドである。
これだけだと、あまり役にたたないが下の例題のように組み合わせると色々なことができるようになる。

head
ファイルの先頭の部分を表示する。
デフォールトは10行分。
tail
ファイルの最期の部分を表示する。
デフォールトは同じく10行分。

コマンドを組み合わせて使う

シェルを使うと複数のコマンドを リダイレクションパイプ などと組み合わせることによって 一つ一つのコマンドではできないことができるようになる。

例題

あるファイル(file)の11行目から20行目までだけを表示するにはどのようにすれば良いか。

headtailの2つのコマンドだけを知っている時、 この例題を解くためにどうすれば良いか考えてみる。
この2つのコマンドのどちらか一つでは目的を達成できない。
そこで、この2つのコマンドを組み合わせることによってできないかと考えてみる。
そのためには以下のように考えれば良いだろう。

  1. headによって最初の20行分を取り出す。
  2. その20行分からtailによって後ろの10行分を表示する。

上の考え方をリダイレクションを使って実行すると以下の様になるだろう。

# head -20 file > tmp
# tail tmp

これでも良いが、tmpという余計なファイルができてしまうことと、 コマンドを2回にわけて打ち込むという手間がかかる。
そこで、あるコマンドの出力を別のコマンドの入力として渡すときには、 パイプを使うと2つのコマンドを一つにまとめることができる。

# head -20 file | tail

練習課題

まとめ

参考


Prev | Next
Home | Contents
abe@injapan.net