Linuxのシェルを効率的よく使っていくには、メタ文字や正規表現の活用は欠かせない。これらは慣れないうちは操作に苦しむが、一度身につけてしまえば長期にわたって作業の効率を上げてくれるツールだ。Opensource.comが、「6 Linux metacharacters I love to use on the command line|Opensource.com」において、Linux初心者がメタ文字や正規表現を学ぶ最初のステップとして役立つお薦めの文字6個を取り上げているので、紹介しよう。

取り上げられているメタ文字および正規表現文字は次のとおり。

メタ文字 内容
パイプ。コマンドをつなげて、パイプの前のコマンドの出力結果を、パイプの後のコマンドで処理する
> 出力リダイレクト。コマンドの出力をファイルへ書き込む
アスタリスク、または、ワイルドカード。ファイルパスをグロブ展開する
~ チルダ。ホームディレクトリを意味する
$ ドル記号。正規表現において行末を意味する
^ キャレット。正規表現において行頭を意味する

簡単なサンプルとして、次のコマンド実行例が取り上げられている。

コマンド例 内容
ps -ef | grep firefox システムで動作している自分のプロセス一覧を表示させ(ps -ef)、そこから「firefox」という文字列が含まれているデータ(行)だけを表示させる
dmesg | grep amd > amd.txt dmesgコマンドが出力するシステム起動時情報のうち、「amd」という文字列が含まれているデータ(行)だけを取り出し、それをamd.txtというファイルへ書き込む
ls ∗.png 拡張子が.pngのファイルを一覧表示する
cd ~ ホームディレクトリへ移動する
ls | grep png$ lsコマンドが出力するファイル一覧のうち、行末がpngという文字列で終わっているデータ(行)だけを表示する
ls | grep ^Screen lsコマンドが出力するファイル一覧のうち、行頭がScreenではじまっているデータ(行)だけを表示する

記事では、どの文字もシェルが解釈する文字のような説明になっているが、このケースでは「^」と「$」はコマンドが正規表現として解釈している文字であることに注意。シェルもコマンドも似た表記を使うためわかりにくいが、シェルとコマンドがどの文字をどのように解釈するか学んでいくことで、より効率的なシェルおよびコマンドの利用が可能になる。