ホーム
SQT
小単元とクイズで楽しくトレーニング

メインナビゲーション

  • ホーム
  • 受講チケット
  • 利用ガイド
    • 受講チケット
    • 講座と教材の利用
    • 教材検索
    • 企業団体向け機能
    • セキュリティについて
    • パートナー様向け機能
  • 記事一覧

CLI とは何か ― ターミナルとシェルの関係

パンくず

  • ホーム
  • 開発者のための Linux CLI / Bash 入門(試用版)
  • CLI とは何か ― ターミナルとシェルの関係
音声スライド (クリックで展開/閉じる)
スライドクリック& F キーで全画面、Esc で復帰、その他のショートカット

はじめに

  • GUI と CLI の操作の違いを知る
  • 開発で CLI が使われる理由を知る
  • ターミナルとシェルの役割を区別する
  • Bash がシェルの一種であることを知る
  • 実際にコマンドを 3 つ打ってみる

この単元は、講座の最初の一歩です。まず、マウスで操作する GUI と、文字で操作する CLI の違いを整理し、開発の現場で CLI が使われる理由を確認します。

次に、よく混同される「ターミナル」と「シェル」が、それぞれ何を担当しているのかを区別します。あわせて、Bash がシェルの一種であることを知ります。

最後に、実際にコマンドを 3 つ打ってみます。文字で命令すると、文字で結果が返ってくる。この単純な体験が、以降のすべての単元の土台になります。

この講座を終えたときにできること

  • 題材:動かない開発サーバーを任された新人
  • 原因を自分で調べて、一つずつ直す
  • 状態を点検するスクリプトを書いて自動化する
  • 作業内容と証跡を報告書にまとめて提出する
  • 必要な知識は、すべてこの講座で学ぶ

この講座の最後には、実務を模した総合課題に取り組みます。あなたはチームに配属されたばかりのエンジニアです。先輩から「開発用の Linux 環境に置いてある簡易タスク管理 API サーバーを起動して、動くか確認してほしい。動かなければ原因を調べて直してほしい」と頼まれます。

さらに、同じことが起きたときのために状態を点検するスクリプトを作り、作業の報告書と証跡をまとめて渡すことも求められます。

今の時点では、この依頼の意味がほとんど分からなくても大丈夫です。講座を進めるうちに、必要な道具と考え方が一つずつ揃っていきます。Linux 環境の中で何が起きているかを自分で調べ、直せるようになること。それがこの講座のゴールです。

指して操作するか、書いて操作するか

GUI(グラフィカル・ユーザー・インターフェース)は、画面上のアイコンやボタンを目で見て、マウスで指し示して操作する方式です。普段パソコンでフォルダを開いたり、ファイルをドラッグしたりしているのが GUI です。

CLI(コマンドライン・インターフェース)は、やりたいことを文字で書いて命令し、結果も文字で受け取る方式です。

GUI は画面を見て探せるので、初めてでも迷いにくいのが長所です。一方 CLI は、何をしたいかを文字で正確に伝える必要があります。最初は少し取っつきにくく感じますが、この「文字で伝える」という性質こそが、次に見る CLI の強みにつながっています。

GUI と CLI を比べる

観点 GUI CLI
操作の仕方 画面の対象を指して選ぶ 命令を文字で書く
主な道具 マウス・タッチ キーボード
結果の受け取り方 画面の変化を見る 文字で返ってくる
手順の記録 言葉や画像で説明する 打った文字がそのまま手順
得意なこと 初めての操作、見て探す 同じ操作の繰り返し

2 つの方式を観点ごとに並べてみましょう。

特に注目してほしいのは「手順の記録」の行です。GUI の操作を人に伝えるには、「右上のメニューを開いて、3 番目の項目をクリックして……」と言葉で説明したり、画面の画像を撮ったりする必要があります。CLI なら、打った文字そのものが手順の記録になります。それを相手に渡せば、相手も同じ操作ができます。

どちらが優れているという話ではありません。見て探したいときは GUI、同じ操作を正確に繰り返したいときは CLI、というように得意分野が違うのです。

CLI が開発で選ばれる 3 つの理由

  • 再現性:同じ文字を打てば同じ結果になる
  • 自動化:手順をファイルにまとめて繰り返せる
  • リモート操作:文字だけで離れた機械を操れる
  • 開発ツールの多くが CLI を前提にしている

開発の現場で CLI が選ばれるのには、はっきりした理由があります。

1 つ目は再現性です。同じ文字列を打てば、誰がいつ実行しても同じ操作になります。手順書やチャットにそのまま貼って共有できます。

2 つ目は自動化です。打つ文字列をファイルにまとめておけば、何十行もの手順を 1 回の命令で繰り返せます。これを「シェルスクリプト」と呼び、この講座のモジュール 8 で扱います。

3 つ目はリモート操作です。画面の絵を送る必要がなく、文字のやり取りだけで済むため、遠くにあるサーバーも軽い通信で操作できます。

そして、開発環境として使う仮想マシンやコンテナには、そもそも GUI がないことがよくあります。Docker や Git といった開発ツールも CLI での操作が基本です。これらのツールは別講座で扱いますが、その土台となるのがこの講座の内容です。

ターミナルとシェルは別物

  • ターミナル:文字を表示し、入力を受け取る画面
  • シェル:入力を命令として解釈し、実行する
  • ターミナルは「窓口」、シェルは「受付係」
  • 窓口は同じでも、中の受付係は替えられる

「黒い画面」とひとまとめに呼ばれがちですが、実は 2 つの別々のプログラムが協力して動いています。

ターミナルは、キーボードから打たれた文字を受け取り、返ってきた文字を画面に表示する役です。正式には「端末エミュレータ」と呼ばれ、Windows の「Windows Terminal」や macOS の「ターミナル」がその例です。ターミナル自身は、打たれた文字が何を意味するかを知りません。

シェルは、ターミナルから受け取った文字列を「命令」として解釈し、実際に実行するプログラムです。

役所にたとえると、ターミナルは申請書を受け取る窓口、シェルはその申請を読んで処理する受付係です。同じ窓口の奥に、別の受付係を座らせることもできます。つまり、同じターミナルの中で別のシェルを動かすことができるのです。

入力から結果が返るまで

コマンドを 1 つ打ったとき、裏側で何が起きているかを図で追ってみましょう。

あなたがキーボードで「date」と打って Enter キーを押すと、ターミナルはその文字列をシェルに渡します。シェルは「date というコマンドを実行せよ、という意味だな」と解釈し、date という名前のプログラムを探して実行します。date は現在の日時を文字として出力し、その文字がターミナルに届いて、画面に表示されます。

ターミナルは「運ぶ・見せる」、シェルは「読み解く・動かす」。この分担を押さえておくと、今後「これはシェルの働きです」という説明が出てきたときに、何の話をしているのかが分かりやすくなります。

Bash はシェルの一つ

シェル 特徴
sh 古くからある基本のシェル。最小構成の環境にもある
bash 多くの Linux で標準。この講座で使うシェル
zsh 補完などが高機能。macOS の標準シェル
  • 基本的な操作は、どのシェルでもほぼ共通

「シェル」はプログラムの種類を表す言葉で、実際にはいくつもの実装があります。

sh は古くからある基本的なシェルで、機能を絞った最小構成のコンテナなどでは、これしか入っていないこともあります。bash(Bash)は多くの Linux で標準として使われているシェルで、この講座で使うのもこれです。zsh は入力補完などの機能が充実したシェルで、macOS では標準になっています。

それぞれ細かな違いはありますが、コマンドを打って実行するという基本的な使い方はほぼ共通です。この講座で Bash を身につければ、他のシェルに出会っても大きく戸惑うことはありません。

最初のコマンドを打つ前に

  1. 演習環境のターミナルを開く
  2. 行の最後に $ が出ていることを確認する
  3. 日本語入力をオフにし、半角でコマンドを打つ
  4. Enter キーを押して実行する
  5. 結果の下に再び $ が出たら次を打てる

いよいよコマンドを打ってみます。演習環境は、Ubuntu 系の Linux に一般ユーザーでログインした状態を前提としています。そこへ接続する方法はこの講座では扱いませんので、ターミナルが開いている状態から始めます。

ターミナルには「user@host:~」のような表示が出ていて、最後が「」で終わっているはずです。これは「入力を待っています」という合図です。この表示の詳しい読み方は、次の単元で扱います。

コマンドは、日本語入力をオフにして半角で打ちます。打ち終えたら Enter キーで実行します。結果が表示され、その下に再び「$」が現れたら、次のコマンドを打てる状態に戻った合図です。

3 つのコマンドを打ってみる

$ echo Hello Linux
Hello Linux
$ date
Sat Mar 14 10:22:05 JST 2026
$ whoami
student
$

ターミナルで、次の 3 つのコマンドを 1 つずつ打ってみましょう。行の先頭にある「」は入力待ちの印なので、打つ必要はありません。「」の後ろの部分だけを打ち、Enter キーを押します。

1 つ目は「echo Hello Linux」です。echo と Hello の間、Hello と Linux の間には半角スペースを入れます。

2 つ目は「date」、3 つ目は「whoami」です。

date の結果に表示される日時と、whoami の結果に表示されるユーザー名は、あなたの環境によって異なります。日時の表示形式も環境によって少し違うことがありますが、問題ありません。どれも何かを変更したり壊したりすることのない、安全なコマンドです。安心して試してください。

何が起きたのか

入力 シェルが実行したこと 返ってきた結果
echo Hello Linux 後ろの文字をそのまま表示 Hello Linux
date 現在の日時を表示 日時の文字列
whoami 今のユーザー名を表示 自分のユーザー名
  • どれも「文字で命令 → 文字で結果」

3 つのコマンドで何が起きたのかを整理しましょう。

echo は、後ろに書いた文字をそのまま表示するコマンドです。「こだま」を意味する英語のとおり、言ったことがそのまま返ってきます。date は現在の日時を表示し、whoami は「Who am I?(私は誰?)」のとおり、今ログインしているユーザーの名前を表示します。

どの場合も、あなたが打った文字列をシェルが解釈し、その名前のプログラムを実行して、結果の文字がターミナルに表示されました。先ほどの図の流れそのものです。

それぞれのコマンドの使い方の詳しいルールは、次の単元から少しずつ学んでいきます。今は「打てば返ってくる」という感覚をつかめれば十分です。

思いどおりに動かないとき

  • 大文字と小文字は区別される(Date は ×)
  • 全角文字や全角スペースは使わない
  • 「not found」と出たら、まず綴りを確認する
  • 打ち直せばよい。この 3 つで何も壊れない

最初は、思ったとおりに動かないことがよくあります。よくある原因を知っておきましょう。

CLI では大文字と小文字が区別されます。「date」は動きますが、「Date」と打つと別の名前として扱われ、見つかりません。また、日本語入力がオンのまま打った全角文字や全角スペースは、シェルには正しく読み取れません。

コマンド名を打ち間違えると、「not found」を含むメッセージが表示されます。これは「その名前のコマンドは見つからない」という意味で、多くの場合は綴りの間違いです。表示の細かな文言は環境によって少し異なります。

エラーが出ても慌てる必要はありません。今回の 3 つのコマンドは何も変更しないので、落ち着いて打ち直せば大丈夫です。エラーメッセージは「何が起きたか」を教えてくれる手がかりであり、その読み方は講座を通して身につけていきます。

まとめ

  • GUI は指して操作、CLI は文字で書いて操作
  • CLI は再現性・自動化・リモート操作に強い
  • ターミナルは入出力の画面、シェルは解釈・実行役
  • Bash はシェルの一つ。sh や zsh もある
  • 文字で命令すれば、文字で結果が返ってくる

この単元では、CLI の世界への入口を確認しました。

GUI は画面の対象を指して操作し、CLI は命令を文字で書いて操作します。CLI は、打った文字がそのまま手順になるため、再現性・自動化・リモート操作に強く、開発の現場で欠かせない道具になっています。

「黒い画面」は、文字の入出力を担うターミナルと、文字列を命令として解釈・実行するシェルという、2 つの別々のプログラムの協力で成り立っています。Bash はそのシェルの一つで、ほかにも sh や zsh があります。

そして実際に echo、date、whoami を打ち、文字で命令すると文字で結果が返ってくることを体験しました。次の単元では、ターミナルに表示されている「$」までの表示、つまりプロンプトの読み方と、コマンドの基本的な書き方を学びます。

確認テスト

学んだ知識をクイズ問題でチェック!

すべての単元を見るには…

開発者のための Linux CLI / Bash 入門講座

開発者のための Linux CLI / Bash 入門

開発作業で「黒い画面」を使いこなす Linux と Bash の基礎力を身につけるeラーニング講座です。ターミナル、ファイルシステム、プロセス、権限、環境変数、ネットワーク、標準入出力、Bash などの基本概念を実際の開発作業と結びつけて学びます。

受講チケットのお求めはこちら

1 / 1 単元

講座情報

開発者のための Linux CLI / Bash 入門(試用版)
「開発者のための Linux CLI / Bash 入門」のお試し用サンプル教材です。確認テストの試用にはログインが必要です。ユーザー登録は無料。詳しくは、利用ガイドをご覧ください。
 講座ページへ
モジュール 1:ターミナルとシェルの世界へ
1 CLI とは何か ― ターミナルとシェルの関係

利用ガイド

  • はじめに
  • 受講チケットの購入
  • 講座と教材の利用
  • 教材検索
  • 企業団体向け機能
  • セキュリティについて
  • パートナー様向け機能
  • 利用ガイド
  • 特定商取引法に基づく表記
  • プライバシポリシー
  • 運営会社

SQT はシナジークエストが運営するオンラインIT学習サイトです。