テキストファイルを確認する Linux コマンドのまとめ
普段 Linux 環境でテキストファイルを見たり編集したりする時、僕はもっぱら Vim を使っている。しかし、ログファイルを閲覧したりする時は、less とかを上手く使えるとカッコイイ気がする。
そこで今回は、今更ながらテキストファイルを閲覧するコマンド類をまとめてみようと思う。
目次
vi
おなじみテキストエディタ。VIsual editor とか Visual Interface とかの略らしい。
POSIX 準拠らしく、Linux OS にはプリインストールされているのが特徴。コレの使い方だけ覚えておけば、閲覧も編集もとりあえずできる。
とりあえずの使い方は以前紹介した以下の記事を参照のこと。
- これだけ覚えておくと Vim に拒絶反応がなくなると思うキー操作・コマンド一覧
 - Mac のターミナルで使うエイリアスを設定しつつ Vim の基本的なキー操作を覚えてみる
 - Vimtutor : Vim の使い方を覚えられるコマンドがあった
 
vim
vi の改造版。Vi IMproved の略。
機能が拡充されているが、最近は vi が vim のエイリアスになっている場合すらある。が、エイリアスになってることを期待して vi と打っていると、vim ではなく機能が少ない vi が起動していることもあるので、やっぱり意識して vim と叩いた方が良いのかも。
view
vi のエイリアスだが、ファイルを読み取り専用モードで開ける。インサートモードに移ると警告文が出るが編集はできて、無理やり保存する時は :w! とすれば一応保存もできる。
$ ls | view -みたいにパイプで渡して使えたりする- 参考 : vim を less とか more の代わりに使うと便利 – tomeapp
 
more
ファイルを1画面ごとに閲覧できる、ページャと呼ばれるコマンド。1978年に開発された。
d・Spaceで1画面下がるz・Enterで1行下がるbで上に戻るhでヘルプ表示qで終了vでviが開く
元々は下の行に移動していく機能しかなく、上の行には戻れなかったようだ。だから More なのねん。最終行に移動する機能はなさそう。
less
more より高機能なページャコマンド。1983年に開発された。日本語への対応が上手くいかない場合もあったようだが、最近はあまり気にしなくて良さそう。
d・uで大きく移動j・kで1行移動hでヘルプ表示qで終了gで1行目に移動G(Shift + g) で最終行に移動
emacs
Vi とエディタ論争を巻き起こしていた Emacs。MacOS はプリインストールされてるが、CentOS などはプリインストールされていない、という点で、最近はあまり人気が高くない様子。ローカルで好きに使うならいいけど、サーバ管理する際は使わないと思う。
- うっかり 
emacsの画面に入ってしまったら、Control + x→Control + cと入力すれば強制終了できる - 参考 : Emacsのバージョン | Emacs JP
 - 参考 : emacsがプリインストールされないのはなぜですか? - コードログ
 - 参考 : 1.2 Emacsの起動と終了
 - 参考 : GNU Emacs Manual - Exiting
 
cat
本来は CATenate のとおり、複数のファイル結合するためのコマンド。ファイルを1つだけ指定した場合に、ファイル全量を標準出力に書き出す動きをするので、ファイルの内容を確認するために使ったりする。
「Useless Use of cat 無駄な cat の使用」というジャーゴンがあったりして、cat 使わなくても実現できるのに使ってる例がよくある。
$ cat file.txt | grep 'HOGE'→$ grep 'HOGE' ./file.txt
tac
ファイルを最終行から逆に出力する。cat のつづりが逆転して tac、というワケ。
GNU CoreUtils に含まれているコマンドで、Linux 系なら入っているだろうが、MacOS には入っていない。MacOS では tail -r というコマンドを使うと良い。
$ tac example.txt | head -1は$ cat example.txt | tail -1と同じく、最終行が表示できる$ tac a.txt b.txtとすると、a.txtの逆順 →b.txtの逆順、の順に結合・出力する。b.txtがa.txtより先にはならないので注意- 参考 : 逆順出力 tac と tail -r - Qiita
 
ログファイルの最後から遡って確認する時に良いかも。
以上
今までなんとなく more とか less とか叩いていたが、少し体系的に覚え直せた。