はじめに
bash
と「シェル」と「ターミナル」の違いが説明できなかったので調べました。
「ターミナル」とは
-
「『コンピューターと対話するための』物理的なデバイス」
キーボードを入力・モニターやプリンターを出力とする -
「GUI環境内でCLIを提供するソフトウェアアプリケーション(ターミナルエミュレーター)」の略称
簡単に補足します。
まず、コンピューターと人は、そのままでは意思疎通(コンピューターに仕事をさせる)ことができません。
そこで、キーボードやモニターを使用し、コンピューターと意思疎通するわけです。
この端末を「ターミナル」と呼びます。
また、この「ターミナル」のエミュレーター(模倣品)が「ターミナルエミュレーター」です。
「GUI」とは「マウスカーソルを使用してファイルをいじる」ことであり、「CLI」とは「キーボードのみでファイルをいじる」ことです。
「シェル」とは
「シェルとは何か」は複雑な問題でした。
-
「ユーザーからのコマンドを受け取り、OSに伝えるインターフェース」全体の名称。
ターミナルが画面を提供し、シェル
例:bash
もWindows Powershell
も「シェル」である。 -
かつて多くのUNIX系OSで使用されていた
Bourne shell
のこと。また、そのコマンド名sh
のこと。
例:bash
はBourne shell
(=略称:シェル)に影響を受けた「シェル」である。 -
bash
などの「現在使用されているシェル」への「ハードリンク」「シンボリックリンク」としてのsh
例:(設定されていれば)"docker compose exec web /bin/sh
=docker compose exec web bash
" である。 -
例外として、
SSH
(セキュアシェル)の略称。ただし誤解を招く表現で、避けるべきである。
シェル、一言で何?
「総称としてのシェル」「シェルの中でも、特にBourne shell
のこと」「現在使われているシェル(bash
など)へのリンク」です。
難しいので、「shell
やPowershell
などの総称である」ということだけ覚えればよいでしょう。
bash
とは
先ほどから少し触れていますが、bash
は「シェル」の一種であり、
「Bourne shell
」に大きく影響を受けた後続のシェルです。
bash
はBourne Again SHell
の略称です。もろにBourne shell
ですね。
おわりに
大まかには理解できたと思います。
言葉や理解が足りないところがあればコメントお願いします!
参考
参考 他
いつか見たツイート
ChatGPT