tanaka101

CLIとは何か

コマンドラインインターフェースの基本概念を理解しよう

とは

CLI(Command Line Interface) は、テキストベースでコンピュータを操作するインターフェースです。

普段使っているマウスやタッチで操作する画面は GUI(Graphical User Interface) と呼ばれます。
例えば、Yahoo のホームページはマウスで検索ボタンをクリックしたり、ニュースのリンクをクリックすることで記事の詳細ページへ遷移したりしますよね。

Yahoo! JAPANのホームページ - GUIの例
Yahoo! JAPANのホームページ。マウスでクリックして操作するGUIの例

一方、CLI はキーボードでコマンド(命令文)を入力して操作します。
映画で悪役が黒い画面を見ながらキーボードカタカタしてるやつです。
例えば、PowerShell(後述)で pwd と叩いてみるとパスが表示されます

cliでpwdコマンドを実行 -CLIの例
cliでpwdコマンドを実行 -CLIの例

なぜ を学ぶのか

エンジニアのお仕事では、CLI の知識が必須です。
このサイトを例に、どこで を使っているか見てみましょう。

1. 環境構築

僕は WindowsPC でこのサイトを作りました。このサイトは で作られています。
を動かすには が必要ですが、Windows には最初から入っていません。

winget install nodejs と入力してインストールします。

winget install nodejs

2. のインストール

開発に必要な(便利グッズみたいなもの)も でインストールします。(これがないと開発ができない)

npm install

3. コードの管理

作成したコードは GitHub で管理します。
コードのアップロードも で行います。

git push

このように、環境構築からコード管理まで、開発のあらゆる場面で を使います。

※データベースの操作、クラウド(AWS など)の構築・運用など、他にも多くの場面で を使います。

とシェル

「CLI を使いたい!」となったとき、何を起動すればいいのでしょうか?
ここで登場するのが シェル です。

とは

(端末)は、CLI を使うための「窓口」となるアプリです。
黒い画面(または白い画面)が表示されて、そこにコマンドを入力します。

身近なもので例えると、テレビのようなものです。
テレビは映像を映し出す「箱」であり、中身の番組(コンテンツ)は放送局が作っています。
も同じで、画面を表示する「箱」であり、中身の処理は別のプログラムが担当しています。

OS によって使えるターミナルアプリが異なります。

OS代表的な
WindowsWindows Terminal、PowerShell
Mac.app、iTerm2
LinuxGNOME Terminal、Konsole など

シェルとは

シェル は、の中で動いている「通訳プログラム」です。
あなたが入力したコマンドを理解して、コンピュータに伝えてくれます。

テレビ()に映し出される番組(処理結果)を作っているのがシェルです。

あなたコマンドを入力シェルが解釈コンピュータが実行結果を表示

シェルにもいくつか種類があります。
方言のようなもので、基本的な文法は似ていますが、細かい部分が異なります。

シェル特徴
bash (バッシュ)Linux系の標準シェル。歴史がある。今も現役
zsh (ゼットシェル)Mac の標準シェル。bashよりも利用者に優しい
PowerShell (パワーシェル)Windows の標準。独自のコマンドが多い

とシェルの関係

まとめると、こんな関係になっています。

(箱)
画面を表示するアプリ
シェル(中身)
コマンドを解釈して実行
の中でシェルが動いている

ポイント: 同じでも、中で動くシェルを変えることができます。
例えば、Windows で bash を動かすこともできます(WSL を使う場合など)。

最初は「 = シェル」と思っていても大丈夫です。

セクションまとめ

  • はテキストでコンピュータを操作する方法
  • 開発作業では が必須
  • ターミナルアプリでシェルを使ってコマンドを実行する