コマンドラインとは
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コマンドの教科書(抜粋版)
コメント