ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
headは、Linuxでファイルの先頭部分(既定では先頭10行)を表示するコマンドです。ファイル全体を開かずに冒頭だけを素早く確認したいときや、パイプでつないで大きな出力の先頭だけを取り出したいときに使います。
| この記事の要点 |
|---|
|
headコマンドとは
headは、指定したファイルの先頭部分を標準出力に表示するコマンドです。オプションを付けない場合は先頭から10行が表示されます。ファイル全体を読み込むのではなく冒頭だけを取り出すため、設定ファイルの書き出しやログの最初の数行、CSVのヘッダー行などを手早く確認する用途に向いています。
名前のとおり「先頭(head)」を扱うコマンドで、「末尾(tail)」を表示する tail コマンドと対になっています。複数のファイルをまとめて指定したり、パイプを通じて他コマンドの出力を受け取ったりと、組み合わせの幅が広い点も特徴です。
基本的な使い方
もっとも単純な使い方は、ファイル名を1つ指定する形です。これで先頭10行が表示されます。
|
head sample.txt |
表示する行数を変えたい場合は -n オプションに行数を渡します。次の例は先頭から5行だけを表示します。
|
head -n 5 sample.txt |
多くの環境では、-n 5 の代わりに -5 のように行数を直接書く短縮形も使えます。ただしこの短縮形は環境によって扱いが異なる場合があるため、スクリプトなど確実性を求める場面では -n 5 の形を使うほうが無難です。
主要なオプション
よく使うオプションを以下にまとめます。
| オプション | 意味 | 使用例 |
|---|---|---|
-n 行数 |
先頭から指定した行数を表示する。 | head -n 20 access.log |
-c バイト数 |
行ではなく先頭から指定したバイト数を表示する。 | head -c 100 data.bin |
-n -数 |
末尾の指定行を除いた、残りの先頭部分を表示する。 | head -n -5 sample.txt |
-q |
複数ファイル指定時に、ファイル名の見出しを表示しない。 | head -q a.txt b.txt |
-v |
ファイルが1つでも、常にファイル名の見出しを表示する。 | head -v sample.txt |
バイト数や行数の指定では、環境によって 1K(キロバイト)や 1M(メガバイト)といった単位付きの指定に対応している場合があります。利用できる単位は環境に依存するため、必要に応じてヘルプ(head --help)で確認してください。
複数ファイルをまとめて表示する
ファイルを複数指定すると、それぞれの先頭部分が「==> ファイル名 <==」という見出し付きで順番に表示されます。複数のログの冒頭を一度に見比べたいときに便利です。
|
head -n 3 app1.log app2.log |
末尾以外を表示する(-n -数)
-n に負の数を渡すと、「末尾の指定行を除いた残り全体」を表示します。たとえば末尾の集計行や空行を取り除いて本文だけを見たい場合に使えます。次の例は、ファイル末尾の5行を除いた残りをすべて表示します。
|
head -n -5 sample.txt |
なお、この負の数指定はGNU版のheadで利用できる機能です。一部の環境(最小構成のシステムなど)では対応していないことがあるため、移植性が重要な場合は注意してください。
tailとの対比
headがファイルの先頭を扱うのに対し、tailはファイルの末尾を扱います。どちらもオプションの体系がよく似ており、見たい場所が「冒頭」か「末尾」かで使い分けます。
| 項目 | head | tail |
|---|---|---|
| 表示する位置 | ファイルの先頭 | ファイルの末尾 |
| 行数指定の例 | head -n 10 file |
tail -n 10 file |
| 代表的な用途 | ヘッダー行や冒頭の確認 | 最新ログの確認、追記の追従 |
| 追従表示 | 非対応 | -f で追記を継続表示できる |
ログの「最新の動き」を見たいときは tail、ファイルの「冒頭の書式やヘッダー」を見たいときは head、と覚えておくと選びやすくなります。
パイプとの組み合わせ
headは、他コマンドの出力をパイプ | で受け取って、その先頭だけを表示する用途でもよく使われます。出力が大量になるコマンドでも、先頭だけを確認すれば全体の傾向や書式を把握できます。
たとえば、カレントディレクトリの一覧の先頭5件だけを表示します。
|
ls -l | head -n 5 |
次は、プロセス一覧の見出しと先頭の数行だけを確認する例です。大量の出力を画面に流さずに、必要な冒頭部分だけを取り出せます。
|
ps aux | head -n 10 |
並べ替えと組み合わせれば、「上位N件」を取り出す定番の使い方になります。次はディスク使用量を大きい順に並べ、上位5件を表示する例です。
|
du -sh * | sort -rh | head -n 5 |
実用的な使用例
ログファイルの先頭を確認して、いつから記録が始まっているかや冒頭の書式を把握します。
|
head -n 20 /var/log/syslog |
CSVファイルのヘッダー行とサンプル数行だけを見て、列の構成を確認します。
|
head -n 5 data.csv |
ファイルの先頭から決まったバイト数だけを取り出したいときは -c を使います。次はファイル冒頭の512バイトを取り出す例です。
|
head -c 512 sample.dat |
落とし穴・注意点
| 注意点 | 内容 |
|---|---|
-n 0 は何も表示されない |
行数に0を指定すると、表示行数が0になるため出力は空になります。意図せず空表示になった場合は行数の指定を見直してください。 |
| バイナリファイルの表示崩れ | バイナリファイルをそのまま head で表示すると、制御文字によって端末の表示が崩れることがあります。中身を確認したい場合は -c でバイト数を絞り、od や xxd など専用コマンドの利用を検討してください。 |
| パイプ時のSIGPIPE | パイプの出力側で head が必要な行数を読み終えると、headは入力を閉じます。すると上流コマンドの書き込み先がなくなり、SIGPIPE シグナルによって上流が途中で終了します。これは正常な動作ですが、上流コマンドのエラーや警告として見える場合があります。 |
| 行数の短縮指定の互換性 | head -5 のような短縮形や -n -数 の負数指定は環境によって対応状況が異なります。確実性を重視する場面では head -n 5 のような明示的な形を使うのが安全です。 |
よくある質問(FAQ)
Q. オプションを付けないと何行表示されますか?
A. 既定では先頭10行が表示されます。行数を変えたい場合は -n で指定してください。
Q. 行ではなく文字数(バイト数)で先頭を取り出せますか?
A. -c オプションを使うとバイト数で指定できます。たとえば head -c 100 file で先頭100バイトを表示します。なお日本語などのマルチバイト文字では、バイト数の途中で文字が切れて表示が崩れる場合がある点に注意してください。
Q. ファイルの末尾を見たいときはどうしますか?
A. 末尾を表示するには tail コマンドを使います。head と tail はオプション体系が似ているため、見たい位置に応じて使い分けると覚えやすくなります。
Q. headとgrepなどを組み合わせて先頭だけ絞り込めますか?
A. できます。grep パターン file | head -n 5 のようにパイプでつなぐと、検索結果の先頭5件だけを表示できます。大量にヒットする検索の最初の数件を確認したいときに便利です。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ls ファイル/ディレクトリ一覧表示
- sudo ユーザー指定
- cron/crontab ジョブの自動実行と登録方法
- wget http通信によるファイルダウンロード
- rm ファイル/ディレクトリ削除
- pwd カレントディレクトリの表示
- cd ディレクトリの移動
- ./configure
- make
- make install
- unzip ファイルの解凍
- mv ファイル/ディレクトリの移動および名称変更
- mkdir ディレクトリの作成
- touch 空ファイルの新規作成
- vi テキストディタの使用
- find ファイル/ディレクトリ検索
- grep 文字列の検索
- tail ファイルの末尾表示
- curl HTTP通信によるリクエスト
- nslookup ドメインのIP解決
- apt update パッケージリストの情報を更新
- apt upgrade パッケージの更新
- ln リンク/ショートカットの作成と削除
- rsync ファイル/ディレクトリの同期
- ssh リモートとの暗号化通信
- scp sshを利用したファイルのコピー
- unzip zip ファイルを解凍する
- cp ファイル/ディレクトリのコピー
- diffファイルの差分抽出
- fdisk ハードディスクに対する操作
- lsblk デバイスをツリー状で表示する
- kill プロセスを終了させる
- zip ファイルやディレクトリをzip形式に圧縮する
- hostコマンド
- chmod 権限の変更
- ip IPアドレスの確認
- chown コマンド(所有者の変更)
- chgrp ファイル/ディレクトリのグループ情報の変更
- nohupと'&' プログラムのバックグラウンド実行(ssh接続時)
- lsof 開いているポート番号の確認
- tar ファイルの圧縮と解凍
- file ファイルの種類を表示
- cat ファイルの中身を表示
- head ファイルの先頭部分を表示
- wc 行数/単語数/文字数を確認
- shutdown システムのシャットダウンと再起動
- ps プロセスの確認
- which コマンドの絶対パスを調べる
- yum RedHat系ディストリビューションの管理
- mount ファイルシステムのマウント
- 特定フォルダ以下の特定拡張子のファイルを再帰的に削除する方法
- 特定のフォルダとそのサブフォルダ内にある特定のファイル名のファイルを再帰的に削除
- sed テキスト処理用ストリームエディタ
- awk フィールド単位の柔軟なテキスト処理
- sort 行の並び替え
- uniq 重複行の除去・カウント
- cut 行から特定列を切り出し
- tr 文字の置換・削除
- less ページャでファイルを読む
- more 古典ページャ
- xargs 標準入力をコマンド引数に変換
- paste 複数ファイルを列方向に結合
- top プロセスの動的監視
- htop 強化版インタラクティブプロセス監視
- nice プロセスの優先度を指定して起動
- renice 実行中プロセスの優先度を変更
- jobs シェル管理下のジョブ一覧
- bg ジョブをバックグラウンドで実行
- fg バックグラウンドジョブをフォアグラウンドに
- killall プロセス名でまとめて終了
- pgrep プロセス名から PID を検索
- pkill プロセス名でシグナルを送信
- uname システム情報の表示
- uptime システム稼働時間とロードアベレージ
- free メモリ使用状況の表示
- df ディスク使用量 (ファイルシステム単位)
- du ディレクトリ・ファイル単位の使用量
- lscpu CPU 情報の表示
- lsmod 読み込み済みカーネルモジュール一覧
- lspci PCI デバイス一覧
- dmesg カーネルリングバッファの表示
- w ログイン中ユーザーと負荷の表示
- ping ホストへの到達性とラウンドトリップ確認
- traceroute ホストまでの経路を表示
- netstat ネットワーク接続・ルーティング表示 (旧式)
- ss netstat 後継、ソケット統計
- ifconfig ネットワークインターフェース表示・設定 (旧式)
- dig DNS リゾルバ問い合わせの定番
- route ルーティングテーブル表示 (旧式)
- iptables Linux パケットフィルタリング
- telnet TCP 接続診断・古典的リモートログイン
- arp ARP テーブルの表示・編集 (旧式)
- useradd ユーザーアカウントの作成
- usermod 既存ユーザーアカウントの変更
- userdel ユーザーアカウントの削除
- passwd パスワードの変更・管理
- groupadd グループの追加
- id ユーザーとグループの ID・所属を表示
- whoami 現在のユーザー名を表示
- su 別ユーザーに切り替え
- dnf Red Hat 系の次世代パッケージマネージャ (yum 後継)
- pacman Arch Linux のパッケージマネージャ
- echo 文字列・変数の出力
- export 環境変数の設定と継承
- alias コマンドの別名定義
- source / . スクリプトをカレントシェルで実行
- history コマンド履歴の表示・操作
- type コマンドの種別 (組み込み/関数/エイリアス/外部) を表示
- env 環境変数表示と一時設定でコマンド実行
- set シェルオプションと位置パラメータの操作
- unset 変数・関数の削除
- printf C 風書式付き出力
- systemctl systemd ユニットの管理
- service init.d 互換のサービス管理
- journalctl systemd ジャーナルログの参照
- crontab 定期実行ジョブの登録・編集
- at 指定時刻に 1 回だけコマンド実行
- umount ファイルシステムのアンマウント
- reboot システムを再起動
- halt システムを停止
- date 日付・時刻の表示と設定
- hostname ホスト名の表示・設定
- gzip ファイルを Deflate で圧縮
- gunzip gzip 圧縮ファイルの展開
- bzip2 高圧縮率の圧縮コマンド
- xz LZMA2 ベースの高圧縮コマンド
- zstd Facebook 製の高速圧縮コマンド
- dpkg Debian パッケージの低レベル操作
- rpm Red Hat パッケージの低レベル操作
- snap Canonical の sandbox パッケージマネージャ
- apt Debian/Ubuntu の高レベルパッケージマネージャ
- 7z 7-Zip コマンドラインツール
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?