基本的なコマンド( touch, head, tail )
ファイルのタイムスタンプの変更( touch )
ファイルにはタイムスタンプ(最終更新日)が必ず存在する。タイムスタンプは ls コマンドの -l オプションをつけることで確認できる。
touchコマンドはその最終更新時間を変更するコマンドである。
$ touch [ オプション ] [ ファイル名 ]
touchコマンドを実行すると、ファイルのタイムスタンプが現在日時に変更される。なお、オプションにより、新しいタイムスタンプとなる日時を指定することもできる。
ちなみに、ファイルが存在しない場合、touchコマンドは中身が空であるバイト0のファイルを作成する。
オプション
-t
-t はファイルの更新時間をするオプションである。時間は[[CC]YY]MMDDhhmm[.SS]形式([]内が省略可)で指定する。これで、ファイルの最終更新時刻が変わったことが確認できる。
touchコマンドで指定したファイルが存在しない場合、空のファイルを作成する。
[[CC]YY]MMDDhhmm[.SS]形式の意味
CC:年の最初の 2 桁 (世紀)。
YY:年の後半の 2 桁。 CC を指定せずに YY だけを指定した場合、YY の値が 69 - 99 の範囲内であれば、CC 値は 19 と見なされる。 その他の場合は、20 の CC 値が使われる。
MM:月を表す 1 - 12 の値。
DD:日を表す 1 - 31 の値。
hh:時を表す 0 - 23 の値。
mm:分を表す 0 - 59 の値。
SS:秒を表す 0 - 59 の値。
ファイルの一部の取得( head, tail )
headコマンド
headコマンドはファイルの先頭部分を標準出力する。
$ head [ オプション ] [ ファイル名 ]
オプション
-n 行 先頭から指定した行を標準出力する。 -c バイト 先頭から指定したバイト分を標準出力する。
ファイル名の部分を空白、もしくはハイフン( - ) にした場合は標準入力からデータに対し処理を行う。従って、以下の三つのコマンドの実行結果は同一になる。
$ head FILE [FIlE]の先頭10行を表示 $ cat FILE | head - 標準入力からの内容のうち先頭10行を表示 $ cat FILE | head 標準入力からの内容のうち先頭10行を表示
オプションに行数を指定しなかった場合は先頭10行が表示される。オプションをつけることにより、表示する行数を変更できる。
tailコマンド
tail は head の逆で、ファイルの終わりの部分を標準出力する。オプションを付けない場合は末尾の10行を標準出力する。
$ [ オプション ] [ ファイル名 ]
オプション
-n 行 末尾から指定した行を標準出力する。 -c バイト 末尾から指定したバイトを標準出力する。
こちらも head と同様だが、ファイル名の部分を空白、もしくはハイフン( - ) にした場合は標準入力からデータに対し処理を行う。従って、以下の三つのコマンドの実行結果は同一になる。
$ tail FILE [FILE]の末尾10行を表示 $ cat FILE | tail - 標準入力からの内容のうち末尾10行表示 $ cat FILE | tail 標準入力からの内容のうち末尾10行表示
特別なオプション -f
tail は本来ファイルの終わりを表示するコマンドである。しかし、ファイルによってはその終わりが随時変わることがある。-f オプションは変更をリアルタイムをモニタすることが可能となる。よく用いられる目的にログファイルのモニタが挙げられる。
システムの変更やサービスの動作などでメッセージがログに記載されると、その内容が出力される。
$ tail -f [ ファイル名 ]
tail コマンドの実行例
$ man less > ~/manual-less
テスト用のファイルを作成している。
$ tail manual-less Mark Nudelman Send bug reports or comments to <bug-less@gnu.org> See http://www.greenwoodsoftware.com/less/bugs.html for the latest list of known bugs in less. For more information, see the less homepage at http://www.greenwoodsoftware.com/less. Version 487: 25 Oct 2016 LESS(1)
manual-lessファイルの末尾10行が表示される。
-n オプションの実行
$ tail -n 5 manual-less http://www.greenwoodsoftware.com/less. Version 487: 25 Oct 2016 LESS(1)
末尾5行を標準出力している。
-fオプションの実行
$ tail -f manual-less Mark Nudelman Send bug reports or comments to <bug-less@gnu.org> See http://www.greenwoodsoftware.com/less/bugs.html for the latest list of known bugs in less. For more information, see the less homepage at http://www.greenwoodsoftware.com/less. Version 487: 25 Oct 2016 LESS(1)
tailコマンドに -fオプションを付けたので、ファイルの終わりの部分が標準出力されるが、シェルに制御が戻らない。
新しく別の端末を開き、以下のコマンドを実行する
$ echo 'Hello' >> manual-less
すると、manual-less ファイルにデータが追加される
$ tail -f manual-less Mark Nudelman Send bug reports or comments to <bug-less@gnu.org> See http://www.greenwoodsoftware.com/less/bugs.html for the latest list of known bugs in less. For more information, see the less homepage at http://www.greenwoodsoftware.com/less. Version 487: 25 Oct 2016 LESS(1) Hello
tail -f によるファイルの読み込みは「 Ctrl」 + C キーを押し処理が中断されるまで継続される。これにより、 tail -f はファイルを動的に読み込むことができるがわかる。
webサーバーのアクセルログやエラーログを見るのに便利なコマンドである。