このページで解説している内容は、以下の YouTube 動画の解説で見ることができます。
新Linuxコマンド演習29

新Linuxコマンド演習29 概要
「新Linuxコマンド演習29」では、シェルでよく使用される 引用符(クォート) の使い方について学びます。
Linuxのコマンドラインでは、シングルクォーテーション( ' )、ダブルクォーテーション( " )、およびバックスラッシュ( \ ) の3種類の引用・エスケープ方法があり、
それぞれに異なる意味と動作があります。
この演習では、実際に入力しながらそれぞれの違いを確認し、
「変数展開」や「エイリアス設定」などにおけるクォートの正しい使い方を理解していきます。

引用符(クォート)の種類と特徴
| 記号 | 名称 | 主な特徴 |
|---|---|---|
| ' ' | シングルクォーテーション | 文字列をそのまま出力(変数展開・コマンド置換を無効化) |
| " " | ダブルクォーテーション | 変数展開・コマンド置換が有効 |
| \ | バックスラッシュ | 直後の1文字を特殊文字ではなく通常の文字として扱う(エスケープ) |
この表からも分かるように、引用符の使い方を正しく理解することで、
シェルスクリプトやエイリアス設定などで思わぬ誤動作を防ぐことができます。
演習問題+模範解答例
演習01:エイリアスの設定を間違えてみよう
問題
スペースを含むコマンドを引用符で囲まずに alias コマンドで定義してみてください。
模範解答例
[suzuki@AlmaLinux ~]$ alias ll=ls -l
bash: alias: -l: 見つかりません解説
- alias ll=ls -l のように引用符を使わないと、シェルは alias=ls と解釈してしまいます。
- これにより、-l は別の引数として扱われ、エラーが発生します。
- スペースを含む値を設定する場合は、'(シングルクォート)または"(ダブルクォート)で囲む必要があります。
演習02:バックスラッシュ( \ )を使ってエイリアスを正しく設定しよう
問題
引用符を使わずに、エスケープシーケンス( \ )を利用してエイリアス ll を正しく設定してください。
模範解答例
[suzuki@AlmaLinux ~]$ alias ll=ls\ -l
[suzuki@AlmaLinux ~]$ ll
合計 0
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 19:11 Desktop
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 19:11 Documents
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 19:11 Downloads
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 19:11 Music
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 19:11 Pictures
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 19:11 Public
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 19:11 Templates
drwxr-xr-x. 2 suzuki suzuki 6 10月 31 19:11 Videos解説
- \(バックスラッシュ)を使うことで、直後のスペースが「特別な区切り文字」ではなく「通常の文字」として扱われます。
- その結果、ls -l 全体が1つの文字列として認識され、正しいエイリアスになります。
演習03:シングルクォーテーション( ' )を使った出力を確認しよう
問題
変数 name に文字列 tanaka を代入し、シングルクォーテーションを使って出力してください。
模範解答例
[suzuki@AlmaLinux ~]$ name=tanaka
[suzuki@AlmaLinux ~]$ echo 'My name is $name.'
My name is $name.解説
- シングルクォーテーションで囲まれた部分は、そのまま文字列として解釈されます。
- $name は変数として展開されず、「$name」という文字列がそのまま出力されます。
- 変数展開を無効にしたい場合や、文字列をそのまま扱いたい場合に有効です。
演習04:ダブルクォーテーション( " )を使って変数を展開しよう
問題
演習03で使用した変数 name を使い、ダブルクォーテーションで囲んで出力してください。
模範解答例
[suzuki@AlmaLinux ~]$ echo "My name is $name."
My name is tanaka.解説
- ダブルクォーテーションでは 変数展開が有効 になります。
- $name が展開され、変数に代入された値 tanaka が出力されます。
- コマンド置換(例:$(date) )も同様に展開されます。
演習05:コマンド置換を確認しよう
問題
ダブルクォーテーションを使って現在の日付を出力してください。
模範解答例
[suzuki@AlmaLinux ~]$ echo "Today is $(date)."
Today is 2025年 11月 16日 日曜日 11:25:45 JST.解説
- $(date) はコマンド置換と呼ばれ、date コマンドの出力結果に置き換えられます。
- シングルクォートで囲むとこの展開は行われず、文字列そのものが出力されます。
まとめ
「新Linuxコマンド演習29」では、
- シングルクォート( ' ) … 文字列をそのまま扱う。
- ダブルクォート( " ) … 変数展開・コマンド置換を有効にする。
- バックスラッシュ( \ ) … 特殊文字の意味を無効化する。
という3つの重要な引用・エスケープの仕組みを学びました。
これらはシェル操作やスクリプト作成の基礎中の基礎です。
実際のターミナルで試しながら、挙動の違いをしっかり理解しておきましょう。
