音声スライド (クリックで展開/閉じる)
はじめに
- 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 を身につければ、他のシェルに出会っても大きく戸惑うことはありません。
最初のコマンドを打つ前に
- 演習環境のターミナルを開く
- 行の最後に
$が出ていることを確認する - 日本語入力をオフにし、半角でコマンドを打つ
- Enter キーを押して実行する
- 結果の下に再び
$が出たら次を打てる
いよいよコマンドを打ってみます。演習環境は、Ubuntu 系の Linux に一般ユーザーでログインした状態を前提としています。そこへ接続する方法はこの講座では扱いませんので、ターミナルが開いている状態から始めます。
ターミナルには「user@host:~」のような表示が出ていて、最後が「」で終わっているはずです。これは「入力を待っています」という合図です。この表示の詳しい読み方は、次の単元で扱います。
コマンドは、日本語入力をオフにして半角で打ちます。打ち終えたら Enter キーで実行します。結果が表示され、その下に再び「$」が現れたら、次のコマンドを打てる状態に戻った合図です。
3 つのコマンドを打ってみる
ターミナルで、次の 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 を打ち、文字で命令すると文字で結果が返ってくることを体験しました。次の単元では、ターミナルに表示されている「$」までの表示、つまりプロンプトの読み方と、コマンドの基本的な書き方を学びます。