Linux
 Computer >> コンピューター >  >> トラブルシューティング >> Linux

Linuxコマンドラインでテキストファイルの内容を表示する方法|cat・more・lessの使い方徹底解説

Linuxを使い始めたばかりの方から最もよく寄せられる質問のひとつが、「どのコマンドを使えばファイルの中身を確認できるのか」というものです。伝統的なUnix環境に関することの多くと同じように、やり方はひとつではありません。しかも、ここで紹介するテクニックの大半は、OS XやFreeBSDを使っている方にもそのまま応用できます。

つまり、コマンドラインからファイルを表示する基本さえ身につければ、ほぼどんなUnix系のプロンプトに出会っても迷わず操作できるようになるということです。

方法1:通常のテキストファイルを表示する

テキストファイルを表示する最も簡単な方法は、catに続けてファイル名を入力することです。ファイルが十分に短ければ、全テキストがそのまま画面に表示されます。長い場合は画面が次々とスクロールしていきます。最近の端末エミュレータならウィンドウを最大化して表示領域を広げられますが、それでも内容が画面から流れて読めなくなることがあります。

そんなときは、moreに続けてファイル名を入力しましょう。ページ単位で表示されるため、スペースキーを押すまで続きが表示されず、内容が消える前にじっくり読むことができます。読み終わったら「q」キーで終了します。さらにmore -dのようにオプションを付けると画面下部に簡単な操作ガイドが表示され、「h」キーを押せば本格的なヘルプ画面も呼び出せます。

Linuxコマンドラインでテキストファイルの内容を表示する方法|cat・more・lessの使い方徹底解説

より細かい操作をしたい場合は、lessコマンドを使います。lessではカーソルキーやPage Up/Page Downキー、さらにviでおなじみのk/jキーバインドを使って、テキストファイル内を前後自由にスクロールできます。

Linuxコマンドラインでテキストファイルの内容を表示する方法|cat・more・lessの使い方徹底解説

manコマンドでコマンドラインツールのマニュアルページを見たことがあるなら、実はすでにlessを使った経験があることになります。多くのディストリビューションでは、マニュアルページのスクロールにlessが採用されているからです。manページャーで使っていた操作はそのままlessでも試せますし、いつでも「h」キーでヘルプ画面を開けることを覚えておきましょう。

Linuxコマンドラインでテキストファイルの内容を表示する方法|cat・more・lessの使い方徹底解説

vi/vimの熟練ユーザーには少し違和感があるかもしれません。viではh/j/k/lで移動するのが基本ですが、lessではそもそも左右への移動が必要ないためです。とはいえ、すぐに慣れるでしょう。Ctrl+NやCtrl+Eで1行進み、Ctrl+YやCtrl+Pで1行戻ることも可能です。ヘルプ画面に「CRで1行進む」と記載されているのは、CR(Carriage Return)がキーボードのReturn(Enter)キーを指しているためです。

ドキュメント内を検索したいときは、検索したい語句の前に「/」を入力します。「n」キーで次の候補へ、Shift+Nで前の候補へ移動できます。

Linuxコマンドラインでテキストファイルの内容を表示する方法|cat・more・lessの使い方徹底解説

grepほど柔軟ではありませんが、lessでファイルを閲覧中に特定の語句を探したい場合には十分役立つ機能です。

方法2:特殊なファイルを表示する

less -fに続けてファイル名を指定すると、ファイルを強制的に開けます。たとえばsudo less -f /dev/sdb1とすれば、パーティションのブートレコードの先頭部分を覗き見ることができます。ただし、sudoアカウントやブートレコードを扱う際は、常に細心の注意を払ってください。

筆者は実際に、Androidタブレット用にフォーマットしたmicroSDHCカードのブートレコードを調べる際にこの方法を使用しました。

Linuxコマンドラインでテキストファイルの内容を表示する方法|cat・more・lessの使い方徹底解説

ファイル内は通常どおり移動でき、「q」キーを押せば終了します。また、普通のテキストファイルでも特殊なエンコーディングで保存されていて、GUIアプリを含む他のプログラムでは開けないという場合は、od -cに続けてファイル名を入力してみてください。ターミナル上で直接スクロールしてもよいですし、出力が長すぎる場合はod -c ファイル名 | lessのようにパイプでlessに渡すと快適に閲覧できます。ちなみに、スイッチを付けずにodを実行すると、ファイルの内容が8進数の数値列として出力されます。まさに最後の手段と言えるでしょう。

方法3:圧縮されたファイルの中身を表示する

圧縮されたテキストファイルを、解凍せずにそのまま読みたい場面もあります。MS-DOS由来のZIP形式は、アーカイブ化(複数ファイルのまとめ)と圧縮を同時に行うため、ZIPアーカイブ内のテキストファイルを読むには一旦展開する必要があります。一方、Unix系の圧縮方式では、ファイルをその場で単体のまま圧縮できるのが特徴です。

たとえばsmallerFile.gzという圧縮テキストファイルがあれば、zcat smallerFile.gzと入力するだけで、コマンドラインから中身を表示できます。zmoreやzlessを使っても構いません。これらのコマンドはmore/lessとまったく同じように動作しながら、gzipで圧縮されたテキストファイルに対応しています。

xz形式を採用するLinuxディストリビューションも増えています。この形式で圧縮されたテキストファイルの場合は、cat・less・moreの代わりにxzcat・xzless・xzmoreを使えばOKです。同様に、bzip2形式で圧縮されたファイル向けには、bzcat・bzless・bzmoreというコマンドラインツールが用意されています。

ただし注意点があります。テキストファイルをまずtarやcpioアーカイブに格納してから圧縮した場合は、この方法では読めません。smallerFile.gzなら問題なく読めても、smallerFile.tar.gzやsmallerFile.tgzは同じようには扱えないのです。

  1. 【findコマンド徹底解説】Linuxでファイルやディレクトリを柔軟に検索する方法

    Linuxのfindコマンドは、Linuxシステムにおいて最も重要かつ便利なコマンドの一つです。その名の通り、自分で設定したさまざまな条件や変数に基づいて、Linuxマシン上のファイルを検索できます。パーミッション、ユーザー、グループ、ファイルタイプ、日付、サイズなど、多彩な条件を組み合わせて目的のファイルを見つけられるのが特徴です。この記事では、findコマンドを使ってLinux上でファイルを検索する方法を詳しく解説します。 findコマンドはほとんどのLinuxディストリビューションにデフォルトで搭載されているため、追加でパッケージをインストールする必要はありません。 カレントディレクト

  2. コマンドラインからUbuntuをアップグレードする方法|do-release-upgrade徹底解説

    Ubuntuの「アップデートマネージャー」を使えば、新しいメジャーリリースへのアップグレードは比較的簡単に行えます。GUIのウィザードが手順を順番に案内してくれるため、初心者でも迷わず操作できるでしょう。 しかし、GUIユーティリティを使えない場面もあります。たとえばサーバー環境ではグラフィカルインターフェースにアクセスできないため、コマンドラインでアップグレード作業を行うしかありません。 とはいえ、これだけがコマンドラインを使う理由ではありません。CLIでは処理の進行状況がより詳細に表示されるのが特徴です。多くのコマンドラインツールは実行中に大量のテキストを出力するため、アップグレードの詳細