LinuxコマンドとBashコマンドの違い
Linuxコマンド
やBashコマンド
という用語を聞いたことがあるのですが、両者の違いがよくわかっていなかったので調べました。
LinuxコマンドとBashコマンドの違い
LinuxコマンドとBashコマンドは、どちらもCLI(command line interface)シェルで実行されるコマンド(シェルコマンド)の一種ですが、Linux OS上で使用できるコマンドを総称してLinuxコマンドと呼び、Bashシェル環境で使用できるコマンドをBashコマンドと呼ぶようです。
Linux OSでは、ZshやFishなどBash以外の様々なシェルを使用することができます。またBashも、macOSやWindowsなどLinux以外の環境でも使用できます。したがって、LinuxコマンドとBashコマンドは1対1で対応するわけではありません。
コマンドラインシェルについておさらい
CLIとシェルの違いも曖昧だったので調べました。
シェルというのは、ユーザとOS(オペレーティングシステム)の間のインターフェイスを提供するプログラムのことです。シェルはユーザからコマンドを受け取り、それをOSに伝えて実行する役割を持ちます。そして、シェルにはコマンドラインインターフェイス(CLI)とグラフィカルユーザインターフェイス(GUI)の2つの種類があります。
つまり、広義にはアイコンやマウス操作を中心としたGUIもシェルの一種です。しかし、一般的にシェルといった場合はBashやZshなどのCLIを提供するシェルのことを指すことが多いです。これらのシェルをコマンドラインシェルというようです。
シェルとシェルスクリプトの違い
前述の通り、シェルはユーザが入力したコマンドをOSに伝えて実行するためのソフトウェアです。対してシェルスクリプトは、シェルに入力するコマンドを保存したテキストファイルです。シェルはソフトウェア、シェルスクリプトはテキストファイルであり、両者は別物です。
同じシェルコマンドを何度も手入力して面倒になったら、それをそのままファイルに保存すれば、次回から実行の手間が省けますし、入力ミスによる誤操作のリスクも減らせます。テキストファイルであるため、処理の手順を文書化して、同僚に共有する必要がある場合にも便利です。
また、シェルスクリプトは異なるUnix系OSでも少ない変更で実行できることが多く、ポータビリティに優れています。Unix系OS間の互換性を確保するためのIEEE標準であるPOSIX(Portable Operating System Interface)というものがあり、これに準拠しているシェル間であれば、スクリプトはスムーズに移行できます。
まとめ
- LinuxコマンドもBashコマンドも、シェルコマンドの一種
- Linuxコマンドは、Linux OSで使用できるコマンドの総称
- Bashコマンドは、Bashシェル環境で使用できるコマンド
- シェルコマンドをテキストファイルに保存したものをシェルスクリプトと呼ぶ
- BashやZshなどのテキストベースでOSに命令を伝えるソフトウェアをコマンドラインシェルと呼ぶ
Discussion