誰でも COMPUTER

Windows, Linux関係の操作方法、等々

ファイルの参照(Linux)

Linuxでは、ほとんどの設定がテキストファイルに保存されています。そのため、それらのファイルを適切に扱えるかどうかで、作業の効率がかなり変わってきます。今回の記事では、ファイルの参照によく使われるコマンドを紹介します。

コマンド 用途
less コマンドラインでのテキスト表示用メインコマンド
cat -vte 制御コードの表示
tail -f ファイルのリアルタイム監視

less

lessコマンドは、テキスト表示のための様々な機能を提供します。1ページずつ改ページしたり、特定の文字を検索したり、と機能が豊富なので、コマンドラインでのテキスト表示には、こちらをメインに使うことをおススメします。 moreコマンドも最近はいろいろ機能が拡張されているようですが、lessとのすみわけが中途半端な感じもするので、こちらだけ覚えておけば問題ないと思います。

less (-X) ファイル名

-X:終了時に画面をクリアしない

f:id:Unam:20171229152111p:plain

テキストが表示されたら、以下のコマンドで操作が可能です。

Ctrl+f:次ページを表示
Ctrl+b:次ページを表示
q:テキスト表示を終了する

上記ログファイルのように、1行の文字数が多いと、画面内で行が折りたたまれてしまうため、内容の視認性がかなり悪くなります。そのような場合-Sオプションを付ければ、長い行も折りたたまれずに表示されます。画面の表示されて以内部分は、矢印キーで移動すれば表示可能です。-Nは行番号を表示するオプションです。

less -SN(X) ファイル名

f:id:Unam:20171229151740p:plain

その他、テキスト表示中の操作

f:id:Unam:20171229151418p:plain

/ + 文字列 :文字の検索
n:次の検索結果に移動
g:ファイルの先頭に移動
G:ファイルの末尾に移動
h:helpを表示

cat

ファイルの内容を読み込んで、画面に表示します。

cat ファイル名

実行例:
f:id:Unam:20171229142848p:plain

lessのほうが便利なので、catはどちらかというと、スクリプト内での文字列制御に使う方が多い気もします。

-vteオプションを付けると、タブや改行コードが確認できます。テキストの表示が崩れていたり、スクリプトの処理がうまく動かないときには、テキストファイル内の制御コードを確認することで、問題の解決につながるケースもあります。

cat -vte ファイル名

実行例:
f:id:Unam:20171229143455p:plain

^I タブ
$ 改行 (LF)

Windowsで作成されたファイルは、改行コードが^M$(CR+LF)になっています。 Mac^M(CR)らしいのですが、もっていないので未確認です。
f:id:Unam:20171229143814p:plain

それぞれの略語は以下の意味です。 CR(Carriage Return) カーソルを行頭に戻す LF(Line Feed) 改行

Wikipedia https://ja.wikipedia.org/wiki/%E6%94%B9%E8%A1%8C%E3%82%B3%E3%83%BC%E3%83%89

head/tail

headはファイルの先頭、tailはファイルの末尾(それぞれデフォルトは10行)を表示します。catと同様、どちらかというと、スクリプト内での文字列制御に使う方が多い気もします。

head (-行数) ファイル名

f:id:Unam:20171229152908p:plain

tailコマンドは-fオプションを付けることで、ファイルを更新するごとに画面に表示します。これはアプリケーションのデバッグ中に、対象のログなどをリアルタイムで確認できるので、非常に便利な機能です。また、デバッグモードなどで大量にログが発生するような状態でも、| grep --line-bufferedと組み合わせて使うと、特定のキーワードだけに絞りこんで表示することができます。

tail -f ファイル名 | grep --line-buffered 検索キーワード

f:id:Unam:20171229153314p:plain

これは便利ですよ。