ファイル全体を表示:cat
cat
(Concatenate)は、ファイルの内容を表示する最も基本的なコマンドです。
基本的な使い方
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$
█
ファイルツリー
/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log
試してみよう:
cat sample.txt
- ファイルの内容を表示cat -n sample.txt
- 行番号付きで表示cat sample.txt sample.txt
- 同じファイルを2回表示
catの便利なオプション
オプション | 説明 | 使用例 |
---|---|---|
-n | 行番号を表示 | cat -n file.txt |
-b | 空行以外に行番号を表示 | cat -b file.txt |
-s | 連続する空行を1行にまとめる | cat -s file.txt |
-E | 行末に$を表示 | cat -E file.txt |
-T | タブをタブ記号で表示 | cat -T file.txt |
複数ファイルの結合
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$
█
ファイルツリー
/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log
catは複数のファイルを結合して表示できます:
cat file1.txt file2.txt > combined.txt
ファイルの先頭を表示:head
head
は、ファイルの先頭部分だけを表示します。大きなファイルの概要を確認するのに便利です。
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$
█
ファイルツリー
/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log
試してみよう:
head numbers.txt
- デフォルトで先頭10行を表示head -n 5 numbers.txt
- 先頭5行を表示head -n 20 numbers.txt
- 先頭20行を表示
headの活用例
# ログファイルの先頭を確認
head /var/log/system.log
# CSVファイルのヘッダーを確認
head -n 1 data.csv
# 複数ファイルの先頭を一度に確認
head *.txt
ファイルの末尾を表示:tail
tail
は、ファイルの末尾部分を表示します。ログファイルの最新情報を確認するのによく使われます。
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$
█
ファイルツリー
/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log
試してみよう:
tail log.txt
- 末尾10行を表示tail -n 3 log.txt
- 末尾3行を表示tail -f log.txt
- リアルタイムで更新を監視(Ctrl+Cで終了)
tailの重要なオプション
オプション | 説明 | 使用例 |
---|---|---|
-n | 表示する行数を指定 | tail -n 20 file.txt |
-f | ファイルの更新を監視 | tail -f access.log |
-F | ファイルが再作成されても追跡 | tail -F app.log |
大きなファイルの閲覧:lessとmore
大きなファイルを見るときは、less
やmore
を使ってページ単位で表示します。
lessの基本操作
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$
█
ファイルツリー
/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log
less large_file.txt
を実行すると、以下のキーで操作できます:
- スペース:次のページ
- b:前のページ
- /検索語:前方検索
- ?検索語:後方検索
- q:終了
lessとmoreの違い
機能 | less | more |
---|---|---|
前方スクロール | ○ | ○ |
後方スクロール | ○ | × |
検索機能 | 高機能 | 基本的 |
ファイルの終端での動作 | 待機 | 自動終了 |
実践的な使用例
1. ログファイルの監視
# アクセスログをリアルタイムで監視
tail -f /var/log/apache2/access.log
# エラーログの最新20行を確認
tail -n 20 /var/log/apache2/error.log
2. 設定ファイルの確認
# 設定ファイルをコメント行を除いて表示
cat /etc/ssh/sshd_config | grep -v '#'
# 長い設定ファイルをページャーで確認
less /etc/nginx/nginx.conf
3. データファイルの分析
# CSVファイルの先頭でカラムを確認
head -n 1 sales_data.csv
# ファイルの行数を確認
cat data.txt | wc -l
高度なテクニック
パイプとの組み合わせ
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$
█
ファイルツリー
/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log
パイプ(|)を使って、コマンドを組み合わせることができます。 上の例では、1-50の数字から先頭20行を取り、その末尾5行(16-20)を表示しています。
特定の範囲を表示
# 10行目から20行目を表示
sed -n '10,20p' file.txt
# 5行目以降をすべて表示
tail -n +5 file.txt
実践演習
以下の演習に挑戦してみましょう:
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$
█
ファイルツリー
/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log
課題
- data.txtの全内容を行番号付きで表示
- 最初の5行だけを表示
- 最後の5行だけを表示
- 10行目から15行目を表示(ヒント:headとtailを組み合わせる)
解答例:
cat -n data.txt
head -n 5 data.txt
tail -n 5 data.txt
head -n 15 data.txt | tail -n 6
よくある使い方のミス
1. バイナリファイルをcatで表示
# 画面が文字化けする可能性
cat /usr/bin/ls
# 代わりにfileコマンドで確認
file /usr/bin/ls
2. 巨大なファイルをcatで表示
# メモリを大量に消費する可能性
cat very_large_file.log
# lessやheadを使う
less very_large_file.log
head -n 100 very_large_file.log
まとめ
このレッスンでは、ファイルの内容を表示する様々な方法を学びました。用途に応じて適切なコマンドを選択することで、効率的にファイルの内容を確認できます。
次のレッスンでは、テキスト処理の基本について学びます。
💡 覚えておくと便利:cat
は小さなファイル、less
は大きなファイル、head
/tail
は部分表示に使い分けましょう!