カテゴリ: Linux 更新日: 2026/04/02

Linuxの「<<」とは?ヒアドキュメントの使い方を初心者向けに徹底解説【bash・zsh対応】

Linuxの「<<」とは?ヒアドキュメントの使い方
Linuxの「<<」とは?ヒアドキュメントの使い方

先生と生徒の会話形式で理解しよう

生徒

「Linuxでコマンドにまとめて文字を渡す方法ってありますか?毎回入力するのが大変で…」

先生

「それならヒアドキュメントという機能が便利ですよ。記号の<<を使います。」

生徒

「えっ、<<って何ですか?リダイレクトとは違うんですか?」

先生

「似ていますが役割は違います。複数行の入力をまとめてコマンドに渡せる仕組みなんです。」

生徒

「それ便利そうですね。初心者でも使えますか?」

先生

「もちろんです。基本から順番に見ていきましょう。」

1. Linuxの「<<」とは?ヒアドキュメントの基本

1. Linuxの「<<」とは?ヒアドキュメントの基本
1. Linuxの「<<」とは?ヒアドキュメントの基本

Linuxの<<は、ヒアドキュメントと呼ばれる機能で、読み方はヒアドキュメントという。コマンドに対して複数行のテキストをまとめて入力として渡す仕組みです。

通常、Linuxのシェルであるbashやzshでは、1行ずつコマンドを入力します。しかしヒアドキュメントを使うと、複数行の文章や設定内容を一括で処理できます。

特に、シェルスクリプトや設定ファイルの作成、ログ出力などでよく使われる基本テクニックです。Linux初心者でも覚えておくと作業効率が大きく上がります。

2. ヒアドキュメントの書き方と基本構文

2. ヒアドキュメントの書き方と基本構文
2. ヒアドキュメントの書き方と基本構文

ヒアドキュメントの基本構文は次のようになります。


cat << END
これは1行目
これは2行目
END
これは1行目
これは2行目

ENDは終了を示す文字列で、任意の名前を使えます。この終了文字までの内容が、コマンドにまとめて渡されます。

この仕組みによって、複数行の入力を簡単に扱えるようになります。Linuxコマンドの中でも、シェルスクリプトで頻繁に登場する重要な機能です。

3. よく使う例:ファイルに書き込む

3. よく使う例:ファイルに書き込む
3. よく使う例:ファイルに書き込む

ヒアドキュメントはファイル作成にもよく使われます。例えば、テキストファイルを一度に作ることができます。


cat << EOF > sample.txt
Hello Linux
This is Here Document
EOF

このコマンドを実行すると、sample.txtというファイルが作成され、中に複数行のテキストが書き込まれます。

この方法は、設定ファイルの作成やスクリプトの生成などで非常に便利です。Linux初心者にもおすすめの使い方です。

4. 変数を使ったヒアドキュメント

4. 変数を使ったヒアドキュメント
4. 変数を使ったヒアドキュメント

ヒアドキュメントでは、シェル変数を使うこともできます。変数とは、データを一時的に保存する箱のようなものです。


name="Taro"
cat << EOF
Hello $name
EOF
Hello Taro

このように、変数の中身が展開されて表示されます。bashやzshでよく使われる基本機能です。

ただし、変数展開をしたくない場合は書き方を変える必要があります。次の項目で説明します。

5. 変数展開を無効にする方法

5. 変数展開を無効にする方法
5. 変数展開を無効にする方法

ヒアドキュメントでは、変数展開を無効にすることも可能です。これにより、そのまま文字として扱えます。


name="Taro"
cat << 'EOF'
Hello $name
EOF
Hello $name

終了文字をシングルクォートで囲むことで、変数展開が無効になります。

この方法は、スクリプト内で特定の文字列をそのまま扱いたいときに便利です。Linuxのシェルスクリプトではよく使われるテクニックです。

6. インデントを無視する「<<-」の使い方

6. インデントを無視する「<<-」の使い方
6. インデントを無視する「<<-」の使い方

<<-を使うと、先頭のタブを無視できます。これは読みやすいスクリプトを書くときに便利です。


cat <<- EOF
	Hello
	Indented text
EOF
Hello
Indented text

タブでインデントした部分が無視されて出力されます。スペースではなくタブである点に注意してください。

コードの見た目を整えたいときに役立つ、少し上級ですが実用的なテクニックです。

7. シェルスクリプトでの活用例

7. シェルスクリプトでの活用例
7. シェルスクリプトでの活用例

ヒアドキュメントはシェルスクリプトで特に活躍します。例えば、メッセージをまとめて表示できます。


#!/bin/bash
cat << EOF
Linuxへようこそ
ヒアドキュメントの練習です
EOF
Linuxへようこそ
ヒアドキュメントの練習です

このように複数行のメッセージを簡単に出力できます。ログ表示や説明文の表示などに最適です。

8. ヒアドキュメントの注意点

8. ヒアドキュメントの注意点
8. ヒアドキュメントの注意点

ヒアドキュメントを使う際にはいくつか注意点があります。まず、終了文字は必ず同じものを使う必要があります。

また、終了文字の前後に余計なスペースがあると正しく動作しません。

さらに、大文字と小文字は区別されるため、EOFとeofは別物として扱われます。

これらのポイントを押さえておくことで、エラーを防ぎスムーズにLinux操作ができるようになります。

まとめ

まとめ
まとめ

Linuxにおけるヒアドキュメントは、コマンドライン操作を効率化するための非常に重要な機能です。特にbashやzshといったシェル環境において、複数行のテキストを一括で処理できる点は、日常的な作業やシェルスクリプト開発において大きなメリットとなります。通常のLinuxコマンドでは一行ごとに入力する必要がありますが、ヒアドキュメントを使うことで、設定ファイルの作成、ログ出力、テンプレート生成などを簡潔に記述できるようになります。

基本構文である記号の記述方法を理解することで、初心者でもすぐに実践できる点が特徴です。特に終了文字列を任意に設定できる柔軟性は、さまざまな場面で応用可能です。また、変数展開の有無を制御できる仕組みも重要で、ダブルクォートやシングルクォートの使い分けによって動作が変わる点は、Linuxコマンドの理解を深めるうえで欠かせません。

ファイルへの書き込みにおいてもヒアドキュメントは強力です。リダイレクトと組み合わせることで、一度のコマンド実行で複数行のファイルを生成できるため、設定ファイル作成や自動化処理において非常に役立ちます。Linux初心者が最初に覚えるべき効率化テクニックの一つといえるでしょう。

さらに応用として、インデントを無視する構文を使うことで、コードの可読性を保ちながら実行結果を整えることができます。これはチーム開発や長いシェルスクリプトを扱う際に特に重要です。タブとスペースの違いに注意しながら使うことで、より正確なスクリプトを書くことが可能になります。

ヒアドキュメントはシンプルな構文でありながら、非常に多機能で柔軟性の高い仕組みです。Linuxコマンドの理解を深め、効率的な操作を実現するためには、基本から応用までしっかりと習得しておくことが重要です。特にシェルスクリプトを書く機会が増えてくると、その便利さを実感する場面が多くなるでしょう。

まとめのサンプルコード


cat << EOF > summary.txt
Linuxのヒアドキュメントまとめ
複数行をまとめて処理できる
シェルスクリプトで便利
EOF

上記のように、ヒアドキュメントを活用することで、複数行の内容を一度にファイルへ書き込むことが可能です。Linuxの基本操作としてだけでなく、実務レベルでも頻繁に使用されるため、繰り返し練習して身につけておくことが大切です。

先生と生徒の振り返り会話

生徒

Linuxのヒアドキュメントって、最初は難しそうに見えましたが、複数行をまとめて扱える便利な機能だと分かりました。

先生

そうですね。特にシェルスクリプトを書くときには、ヒアドキュメントを使うことでコードがとてもシンプルになります。

生徒

変数が使えたり、使えなかったりするのは少し混乱しましたが、クォートの違いで制御できるのがポイントですね。

先生

その通りです。変数展開の有無を理解することは、Linuxコマンド全体の理解にもつながります。

生徒

あと、ファイル作成に使えるのが便利だと思いました。一度に内容を書けるのは効率的ですね。

先生

実務でもよく使われますよ。設定ファイルやテンプレート生成などで活躍します。

生徒

インデントを無視する書き方も覚えておくと、きれいなコードが書けそうです。

先生

はい。読みやすさと実行結果の両立ができるので、ぜひ活用してください。

関連記事:
カテゴリの一覧へ
新着記事
New1
Linux
Linuxの「~」とは?初心者向けにわかるホームディレクトリの意味と使い方を徹底解説【Linux シェル bash zsh 入門】
新規投稿
New2
基本情報技術者試験
DBMS(データベース管理システム)とは?初心者向け基礎知識を完全ガイド
更新記事
New3
基本情報技術者試験
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
更新記事
New4
Linux
Linuxの「||」とは?コマンド失敗時に実行する条件分岐を初心者向けに徹底解説【bash・zsh・シェルスクリプト対応】
新規投稿
人気記事
No.1
Java&Spring記事人気No1
基本情報技術者試験
イーサネット(Ethernet)とは?初心者にもわかるLANの基本技術をやさしく解説
No.2
Java&Spring記事人気No2
基本情報技術者試験
NIC
323
NICとは何か?初心者にもわかるネットワークインターフェースカードの基本
No.3
Java&Spring記事人気No3
基本情報技術者試験
セグメントとは?ネットワークの基本単位を初心者向けにやさしく解説
No.4
Java&Spring記事人気No4
基本情報技術者試験
16進数とは?初心者にもわかる意味・読み方・変換方法をやさしく解説!
No.5
Java&Spring記事人気No5
基本情報技術者試験
サブネットマスクとは?初心者でもわかるIPアドレスの分割とネットワークの仕組み
No.6
Java&Spring記事人気No6
基本情報技術者試験
IMAP
116
IMAPとは?初心者でもわかるメール受信プロトコルの仕組みと使い方
No.7
Java&Spring記事人気No7
基本情報技術者試験
パケットとは?初心者にもわかりやすくネットワークの仕組みをやさしく解説!
No.8
Java&Spring記事人気No8
基本情報技術者試験
CGI
114
CGIとは?初心者でもわかるWebとプログラムのつながりを解説!