Linux「コマンドラインとシェル」

Linux Linux

Amazon.co.jp

コマンドラインとは

Linuxのディストリビューションには、デスクトップ環境がある。

現在は、WindowsやmacOSと同様にマウスなどで直感的に操作できる。

かっては、コンピューターへの指示や結果を文字だけで行っていた。

「コマンド」という命令をキーボードから入力して、コンピューターに実行させるのである。

もちろん、実行結果も文字で画面に表示される。これを「CUI:キャラクタユーザーインターフェース」という。これに対して、先のWindowsなどは、「GUI:グラフィカルユーザーインターフェース」と言われる。

コマンドライン」とは、コマンドを入力する行のことである。

例えば、コマンドラインに「ls -a」というコマンドを入力して「Enter」キーを押すと、自己のあるディレクトリにあるファイルの一覧を出力する。

rocky@VAIO:~$ ls -a
   .bash_history  .bashrc  .motd_shown  .sudo_as_admin_successful
   .bash_logout   .cache   .profile     .vscode-server

ここで、「rocky@VAIO:~$」は、コマンドが受付可能な状態であることを示す「コマンドプロンプト」である。

なお、コマンドプロンプトの表示は、設定で変えることができる。
本稿では、「$」で示している。

シェルとは

コマンドラインでコマンドプロンプトを表示し、キーボードから入力されたコマンドを実行するのは、「シェル」というソフトウェアである。

「シェル」は、CPUやメモリなどのリソースを管理するカーネルとユーザーとの橋渡しをコマンドラインを通じて行う。

カーネルに処理をしてもらうには、「システムコール」と呼ばれる機能を使う必要がある。

カーネルに対してよく実行させる処理や、その処理を実行するコマンドを,ユーザーの代わりに「シェル」が実行する。

なお、「シェル」と呼ばれているのは、カーネル(Kernel、核)を「貝(shell)」のように包みこんで、ユーザーに使いやすい機能を提供しているためである。

代表的な「シェル」としては、次のものがある。

Bourne Shell(sh)

かつて多くのUNIX系OSで標準的に用いられていたシェルプログラムの一つ。
(IT用語辞典e-Words)

Bourne-Again Shell(bash)

GNUで開発されているオープンソースのシェルである。sh互換であるが、様々な機能が追加されている。Linuxディストリビューションの大半で使用されている。macOSでも「Mac OS X Panther 10.3 」から「macOS Mojave 10.14 」までは採用されていた。

Z Shell(zsh)

他のシェルの便利な機能を持ちつつ、独自に進化している、sh互換のオープンソースのシェルである。

macOSでは、「macOS Catalina 10.15」からデフォルトのシェルとして採用されている。

C Shell(csh)

Bill Joy氏が開発した、BSD系のOS(FreeBSDなど)で使用されているシェルである。

文法がC言語風である。実際には、tcshが使われることが多くなっている。

TENEX C Shell(tcsh)

cshを拡張したオープンソースのシェルである。「TENEX 」というOSの機能に影響を受けていることが名前の由来である。

macOSでは、「Mac OS X Jaguar 10.2 」までは採用されていた。

コマンドについて

「コマンド」とは、本稿では、コマンドラインかで入力する命令をさすものとする。

「コマンド」には、シェル自身が処理する「内部コマンド」と、Linuxのアプリである「外部コマンド」がある。

外部コマンドを実行するときは、Linuxのカーネルに実行を依頼する。

(参考)日経Linux 2023年 9 月号 特別付録 エンジニア1年生のための世界一わかりやすい
 Linuxコマンドの教科書(抜粋版)

コメント

タイトルとURLをコピーしました