【Linux入門】メタキャラクタ

メタキャラクタ(Meta Characters)の概要

 メタキャラクタは、シェル(Unix/Linuxシステムのコマンドラインインターフェース)において特別な意味を持つ文字を指します。これらの文字は、通常の文字ではなく、コマンドやシェルの制御構造を指定するために使用されます。以下に、一般的なメタキャラクタとその機能を解説します。

以下は、メタキャラクタとそれに関連する説明を表にまとめたものです。

メタキャラクタ説明
*0回以上の任意の文字に一致するワイルドカード
?任意の1文字に一致するワイルドカード
\エスケープ文字。次の文字を特殊な意味を持たない通常の文字として扱う
'シングルクォート。内部の文字列をそのまま解釈し、変数展開や特殊文字の処理を行わない
"ダブルクォート。シングルクォートと同様に内部の文字列をそのまま解釈するが、変数展開や特殊文字の処理は行う
<リダイレクション。ファイルから標準入力を読み込む
>リダイレクション。標準出力をファイルに書き込む(既存のファイルを上書き)
>>リダイレクション。標準出力をファイルに追加する(既存のファイルを継続して書き込む)
;セミコロン。複数のコマンドを連結して、一度に実行する
`バッククォート。コマンドを実行してその結果を変数に格納する
$()バッククォートと同様にコマンドを実行してその結果を変数に格納する
&アンパサンド。コマンドをバックグラウンドで実行する
$ドル記号。変数の値を参照する
?直前のコマンドの終了ステータス(エラーコード)を取得する
!バング。履歴中のコマンドを取り消す。また、条件文での否定に使用する
メタキャラクタの一覧

 これらのメタキャラクタは、シェルスクリプトやコマンドラインでさまざまな操作を実現するために活用されます。

ワイルドカード

ワイルドカードは、ファイルやディレクトリ名のパターンに一致する文字列を表すために使用されます。

'*'(アスタリスク):0文字以上の任意の文字に一致します。

次の例では、拡張子が .txt で終わるファイルに一致します。

$ ls *.txt

'?'(クエスチョンマーク):任意の1文字に一致します。

次の例では、'file1.txt' 、'file2.txt' などに一致します。

$ ls file?.txt

バックスラッシュ \(\)

バックスラッシュはエスケープ文字として使用され、次の文字に特殊な意味を持たせません。

次の例では、各スペースの前にバックスラッシュが付いています。

$ echo This\ is\ an\ example

シングルクォート ' およびダブルクォート "

 シングルクォートまたはダブルクォートで括られた部分では、内部の文字列がそのまま解釈され、変数展開や特殊文字の処理が行われません。

$ echo 'This is a single-quoted string'
$ echo "This is a double-quoted string"

パイプ '|'

パイプは1つのコマンドの出力を別のコマンドの入力として渡すために使用されます。

$ command1 | command2

リダイレクション '<' 、'>' 、'>>'

'<':ファイルから標準入力を読み込む。

$ command < input.txt

'>':標準出力をファイルに書き込む(既存のファイルを上書き)。

$ command > output.txt

'>>':標準出力をファイルに追加する(既存のファイルを継続して書き込む)。

$ command >> output.txt

パイプライン

セミコロンは、複数のコマンドを連結して、一度に実行するために使用されます。

$ command1 ; command2

バーティカルバー '||' および '&&'

'||' :前のコマンドが失敗した場合に次のコマンドを実行します。

$ command1 || command2

'&&' :前のコマンドが成功した場合に次のコマンドを実行します。

& command1 && command2

バッククォート ``(バックティック)

バッククォートは、コマンドを実行してその結果を変数に格納するために使用されます。

$ result=`command`

または、最新のバージョンでは、$() 構文がバッククォートと同等です。

$ result=$(command)

アンパサンド '&'

アンパサンドは、バックグラウンドでコマンドを実行するために使用されます。

$ command &

エスケープシーケンス

 エスケープシーケンスは、特殊な制御文字を表現するために使用されます。代表的なものには、改行(\n)やタブ(\t)があります。

$ echo -e "Line 1\nLine 2"

ドル記号 $

ドル記号は、変数の値を参照するために使用されます。

$ variable="Hello"
$ echo $variable

クエスチョンマーク '?' および バング '!'

'?' :直前のコマンドの終了ステータス(エラーコード)を取得するために使用されます。

$ command
$ echo $?

'!':履歴中のコマンドを取り消すために使用されます。また、条件文での否定にも使用されます。

$ !!  # 直前のコマンドを再実行


 これらは一般的なメタキャラクタの例であり、シェルの機能を拡張し、柔軟性を提供します。シェルスクリプトやコマンドラインの作業でこれらのメタキャラクタを理解し活用することで、効率的な作業が可能となります。