シェル展開とグロブ
ブレース展開、チルダ展開、ファイル名のグロブパターンなど、シェルがコマンドを展開する仕組みを理解します。
「シェル展開とグロブ」はCoddyKit上の無料Linux Command Line & Bash Scripting Masteryレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはLinux Command Line & Bash Scripting Mastery学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
シェル展開とは
Linuxでは、シェルはユーザーとオペレーティングシステムの間を取り持つ翻訳者のような役割を果たします。シェルはコマンドを実行する前に、展開と呼ばれる「魔法」のような処理を行うことがあります。
シェル展開とは、シェルがコマンド内の特殊文字やパターンを探し、それらを別のものに置き換える処理です。これはコマンドが実際に実行される前に行われるため、入力の手間が省け、コマンドをより強力に使えるようになります。
チルダ `~` でホームディレクトリを指定する
チルダ(~)展開は、とても便利なショートカットです。現在のユーザーのホームディレクトリに自動的に展開されます。
/home/yourusernameと入力する代わりに、~だけを使えます。ホームフォルダー内のファイルを移動したり参照したりするときに特に便利です。
echo ~
echo ~/Documents他のユーザーを指定するチルダ
チルダは自分のホームディレクトリ専用ではありません。他のユーザーのホームディレクトリを指定することもできます。
~usernameと入力すると、シェルはこれを指定した「username」のホームディレクトリに展開します。共有ファイルや設定にアクセスするときに便利です。
~rootは/rootに展開されます~guestは/home/guestに展開されます
ブレース展開 `{}`
ブレース展開を使うと、任意の文字列を生成できます。1つのパターンから複数の項目を、すべて入力することなくすばやく作成できます。
シェルは中かっこ{}内の内容を、個別の単語の一覧に展開します。似た名前のファイルやディレクトリを作成したり、複数の項目に対してコマンドを実行したりする場合に非常に便利です。
echo {apple,banana,cherry}ブレース展開の範囲指定
ブレース展開を使って、数字や文字の連続した範囲を生成することもできます。中かっこ内で、..で区切った2つの項目を指定します。
シェルがその範囲内のすべての項目を生成するため、番号付きのファイルやディレクトリを作成したり、値の集合を順番に処理したりするのが簡単になります。
echo file_{1..3}.txt
echo {a..c}_report.logグロブの基本
グロブは、特殊なワイルドカード文字を使ってファイル名やパス名を照合するシェルの機能です。ファイルを探すための「検索パターン」のようなものです。
ls *.txtのようなコマンドを入力すると、シェルは*.txtをそのままlsに渡しません。代わりに、*.txtを現在のディレクトリ内で一致するすべてのファイルの一覧に展開し、その一覧をlsに渡します。
`*` ですべてに一致させる
アスタリスク(*)は、最も一般的なワイルドカードです。ファイル名内の0個以上の文字に一致します。
任意の文字列に一致させられるため、ファイル名の一部を基準にファイルを選択する際に非常に柔軟に使えます。
mkdir -p glob_test
touch glob_test/report.txt glob_test/image.jpg glob_test/document.pdf
echo "Files ending in .txt:"
ls glob_test/*.txt
rm -rf glob_test`?` で1文字に一致させる
疑問符(?)ワイルドカードは、ちょうど1文字に一致します。
一致させたいファイル名の部分の長さはわかっているものの、具体的な文字がわからない場合に便利です。
mkdir -p glob_test
touch glob_test/file1.log glob_test/file2.log glob_test/fileA.log
echo "Files matching file?.log:"
ls glob_test/file?.log
rm -rf glob_test特定の文字 `[]`
角かっこ([])を使うと、指定した文字集合内の任意の1文字に一致させられます。
?よりも細かく照合できます。個々の文字を列挙したり、範囲を指定したりできます(例:[a-z]は任意の小文字1文字、[0-9]は任意の数字1文字に一致します)。
mkdir -p glob_test
touch glob_test/photoA.png glob_test/photoB.png glob_test/photoC.png glob_test/photoD.png
echo "Files matching photo[A-C].png:"
ls glob_test/photo[A-C].png
rm -rf glob_testグロブの組み合わせ
異なるグロブパターンを組み合わせたり、ブレース展開と組み合わせたりして、強力なファイル選択を行えます。
シェルはこれらの展開を左から右へ処理し、必要なものだけに正確に一致する複雑なパターンを作成します。
mkdir -p glob_test
touch glob_test/data_01.csv glob_test/data_02.txt glob_test/data_a.log glob_test/info_01.txt
echo "Files matching data_[0-9]*.{txt,csv}:"
ls glob_test/data_[0-9]*.{txt,csv}
rm -rf glob_test確認問題
次のうち、report1.doc、report2.doc、report3.docという名前のファイルを一覧表示し、reportA.docは一覧表示しないコマンドはどれでしょうか。
振り返りと次のステップ
よくできました!コマンドが実行される前に、シェルによって展開される仕組みを学びました。この「魔法」によって、コマンドラインでの作業をより効率的に行えます。
- チルダ展開(
~):ホームディレクトリを指定するショートカットです。 - ブレース展開(
{}):任意の文字列や範囲を生成します。 - グロブ(
*、?、[]):ワイルドカードを使ってファイル名に一致させ、パターンに基づく強力な選択を可能にします。
これらの展開を理解することは、効果的で簡潔なコマンドを書くための鍵です。繰り返し練習して身につけましょう。
よくある質問
「シェル展開とグロブ」レッスンは無料ですか?
はい。「シェル展開とグロブ」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Linux Command Line & Bash Scripting Masteryコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Linux Command Line & Bash Scripting Masteryコースには全4レッスンが含まれています。
「シェル展開とグロブ」で何を学びますか?
ブレース展開、チルダ展開、ファイル名のグロブパターンなど、シェルがコマンドを展開する仕組みを理解します。 ブラウザで直接実行するハンズオンコードでLinux Command Line & Bash Scripting Masteryを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Linux Command Line & Bash Scripting Masteryを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのLinux Command Line & Bash Scripting Masteryは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「シェル展開とグロブ」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このLinux Command Line & Bash Scripting Masteryレッスンでコードを書いて実行できますか?
はい。すべてのLinux Command Line & Bash Scripting Masteryレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。