catコマンドもしくはmoreコマンドでファイルの中身を確認する方法をまとめました。
catコマンドとmoreコマンドの概要と違い
catコマンド、moreコマンド、どちらもともにファイルの中身を参照することができるコマンドです。
catコマンドとmoreコマンドの違いは、catコマンドは実行した際にファイルの中身全てを一度に表示するのに対して、moreコマンドは、少しずつファイルの中身を表示させることができるという点です。
catコマンドの使い方
catコマンドで実際にファイルの中身を見てみます。今回の例では、IPアドレスとホスト名の名前解決を行うファイル、hostsファイルの中身をcatコマンドで参照してみます。
# cat /etc/hosts
Red Hat Enterprise Linux 9.6で実際に確認してみました。
[root@RHEL96 ~]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
デフォルトの状態なので、2行しかファイルの中身がありません。
ファイルの中身がそれほど多くなければcatコマンドで一度にファイルの中身を表示させても特に支障はないと思います。
/etc/hosts以外にも、Linuxのファイルを一度にすべて内容を確認するには以下のようにcatコマンドを使用します。
cat <ファイルパス>
catコマンドはファイルの中身を見るコマンドなので、ディレクトリの中身を確認する際はlsコマンドを使用します。
more(モア)コマンドはファイルの中身を一定行数で区切って表示できる
catコマンドで一度にファイルの中身を参照すると、大量にデータが表示されることがあります。
moreコマンドであればすべての中身を一度に表示するわけではないため、ファイルの中身の量が多い場合はmoreコマンドを使用してファイルの中身を参照します。
例えば、rpmパッケージからRed Hat Enterprise Linuxにソフトウェアをインストールする際に実行するyumコマンドが参照するレポジトリ(サーバー)の情報が記載された/etc/yum.repos.d/redhat.repoを参照するには、ファイルの中身の量が多いためmoreコマンドを使用してみます。
[root@RHEL96 ~]# more /etc/yum.repos.d/redhat.repo
#
# Certificate-Based Repositories
# Managed by (rhsm) subscription-manager
#
# *** This file is auto-generated. Changes made here will be over-written. ***
# *** Use "subscription-manager repo-override --help" if you wish to make changes. ***
#
# If this file is empty and this system is subscribed consider
# a "yum repolist" to refresh available repos
#
(中略)
--続きます--(0%)
–続きます–(0%) という表記が表示されました。

この状態でSpace(スペース)キーを押下すると、どんどんファイルの中身を見ていくことができます。
スクロールはスペースキーを連打しなくとも、長押しでスクロールすることができます。
途中でスクロールをやめたい場合は、qキーを押下します。
catもしくはmoreコマンドと| grepを組み合わせる
catもしくはmoreコマンドの後ろに| grep <検索したい文字列>という感じでコマンドを実行することでファイルの中身を見つつ、その中からキーワードを検索することができます。
Apache HTTP Serverの設定ファイル、「/etc/httpd/conf/httpd.conf」内の文字列を検索してみる
例えば、Apache HTTP Serverの設定ファイル、「/etc/httpd/conf/httpd.conf」はcatコマンドで中身を表示するには量が多いためmoreコマンドで参照したほうが見やすいかと思います。
こういった場合に、catコマンドの後ろに| grep <検索したい文字列>を付け加えることで中身を絞ってファイルを参照できます。
moreコマンドの後ろに| grep <検索したい文字列>を付け加えた場合は、| grepで検索された結果に対してmoreコマンドで行数を制限した状態で結果が表示されていきます。
試しにApache HTTP Serverの設定ファイル、「/etc/httpd/conf/httpd.conf」に対してcatコマンドと| grepを併用して実行してみます。
[root@RHEL96 ~]# cat /etc/httpd/conf/httpd.conf | grep Document
# DocumentRoot: The directory out of which you will serve your
DocumentRoot "/var/www/html"
# access content that does not live under the DocumentRoot.
#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
「/etc/httpd/conf/httpd.conf」に対してDocumentを検索した結果が表示されました。
Tera Termでログ(エビデンス)を取得する
catコマンドやmoreコマンドで出力したログは、Tera Termでログを取得していれば、そのまま.logファイルにコマンドで確認した結果が確認できます。
必要に応じてcdコマンドでディレクトリの移動を行う
cdコマンドでログインしているユーザーのいる場所を変更することができます。
適宜ユーザーを移動させてファイルの中身を確認します。
なお、catコマンド、moreコマンドは絶対パスを指定してファイルの中身を参照することができるので、絶対パスを指定すれば特にcdコマンドで移動しなくともファイルの中身を確認できます。
lsコマンドでファイルが存在していることを確認する
catコマンド、moreコマンドでファイルの中身を確認する前に、lsコマンドで実際にそのファイルが存在しているか確認することができます。
viコマンドでファイルの中身を編集する
cat、moreコマンドはどちらもファイルの中身を確認するだけで、ファイルを編集することができません。ファイルの中身を編集するにはviエディタ(viコマンド)を使用します。
例えば、/etc/hostsを編集したい場合は以下のコマンドを実行します。
# vi /etc/hosts


