November 2023
Intermediate to advanced
336 pages
3h 40m
Japanese
このように、プロンプトでコマンドを実行することができるのですが、では、そのプロンプトとはいったい何でしょうか? それはどこから来て、コマンドはどのように実行されるのでしょうか? また、プロンプトはなぜ重要なのでしょうか?
その小さなプロンプトは、シェル(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を透過的に(コマンドに意識させることなく)リダイレクトするので、関係するコマンド同士は、互いにやり取りしていることを知りません。 ...
Read now
Unlock full access