2章シェルについての理解
このように、プロンプトでコマンドを実行することができるのですが、では、そのプロンプトとはいったい何でしょうか? それはどこから来て、コマンドはどのように実行されるのでしょうか? また、プロンプトはなぜ重要なのでしょうか?
その小さなプロンプトは、シェル(shell)と呼ばれるプログラムによって生成されます。プロンプトは、ユーザーとLinuxオペレーティングシステムの間に存在するユーザーインターフェースです。Linuxでは複数のシェルが提供されており、最も一般的なのが(そして本書で標準的に使用しているのが)、bash
と呼ばれるシェルです(他のシェルを使用する場合は、「付録B 他のシェルを使用する場合」を参照してください)。
bash
やその他のシェルは、単にコマンドを実行するだけでなく、多くのことを行います。たとえば次のように、一度に複数のファイルを参照するために、コマンドにワイルドカード(*
)が含まれている場合、
$ ls *.py
data.py main.py user_interface.py
このワイルドカードは、ls
プログラムによってではなく、完全にシェルによって処理されます。シェルは、*.py
という式を評価し、それにマッチするファイル名のリストに置き換えます。これは、ls
が実行される前に、ls
から見えないように行われます。つまり、ls
がワイルドカードを目にすることはありません。ls
の観点からすれば、ユーザーが次のコマンドを入力したのと同じです。
$ ls data.py main.py user_interface.py
シェルは、「1章 コマンドの組み合わせ」で説明したパイプの処理も行います。stdinやstdoutを透過的に(コマンドに意識させることなく)リダイレクトするので、関係するコマンド同士は、互いにやり取りしていることを知りません。 ...
Get Efficient Linuxコマンドライン ―開発と自分に磨きをかけるLinuxのテクノロジー now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.