- サーバー
ターミナルとは|シェルとの違い・Mac/Windowsの開き方と最初の10コマンド
結論
ターミナルとは、キーボードから文字で指示を打ち込み、結果を文字で受け取るための「画面(アプリ)」です。打ち込んだ文字を読み取って実行するのは、ターミナルの中で動く「シェル」(bash・zsh・PowerShell など)という別のプログラムです。
この記事でわかること
- ターミナル・シェル・コンソール・コマンドプロンプトの違いと、画面の裏側(tty・pty)の実物
- Mac・Windows・Linux での開き方・閉じ方(Apple・Microsoft の公式で確かめた範囲)
- 最初に覚える10コマンドの実行結果と、固まった・表示されないときの対処
ターミナルは「窓口」、シェルは「窓口の中で話を聞いて動く係」です。ターミナルに打った文字は、OS が用意する端末(tty)を通ってシェルに届き、シェルがコマンドを実行して、結果が同じ道を戻って画面に出ます。
flowchart TD
U[キーボードと画面<br>使う人] --> T[ターミナル<br>ターミナル.app・Windows Terminal など]
T --> P[端末 tty / pty<br>OS が用意する通り道]
P --> S[シェル<br>bash・zsh・PowerShell]
S --> C[コマンド<br>ls・cd・git など]
C -->|結果の文字| S -->|結果の文字| P -->|表示| T
よく調べられることの答えを先にまとめます。
| 知りたいこと | 答え | 詳しい節 |
|---|---|---|
| ターミナルとは(意味) | 文字で指示を出し、文字で結果を受け取る画面(アプリ) | ターミナルとは |
| ターミナルとシェルの違い | ターミナルは画面、シェルは文字を解釈して実行する係 | ターミナル・シェル・コンソールの違い |
| コマンドプロンプトとの違い | コマンドプロンプトは Windows のシェル(cmd.exe)の名前 | Windows のターミナル |
| Mac ターミナルの開き方 | Launchpad か Finder の「ユーティリティ」。既定のシェルは zsh | Mac の「ターミナル」 |
| Windows での開き方 | Windows Terminal(22H2 以降は既定)。中身は PowerShell | Windows のターミナル |
| 最初に覚えるコマンド | pwd・ls・cd・mkdir・echo・cat・cp・mv・rm・history | 最初に覚える10コマンド |
| 閉じ方 | exit か Ctrl+D。動いているものは Ctrl+C で止める |
怖くない閉じ方 |
| 固まった・文字が出ない | Ctrl+Q(Ctrl+S で止まった)、パスワードは表示されない仕様 | よくある画面とつまずき |
確認環境:Ubuntu 24.04.5 LTS の上で、bash 5.2.21 と zsh 5.9(apt で入れて確認後に purge)を使い、tty・ps・script・stty の出力、最初の10コマンド、Ctrl+C・Ctrl+D・Ctrl+Z・Ctrl+S/Ctrl+Q の動き、エラーの文言を、Python の pty で作った疑似端末の中で実行して記録しました。Mac と Windows は手元で操作していないため、Mac の「ターミナル」の開き方・終了・既定のシェルは Apple サポートの「ターミナルユーザガイド」と「zshをMacのデフォルトシェルとして使う」、Windows Terminal・PowerShell・cmd の位置づけは Microsoft Learn と Microsoft の Windows Command Line ブログで確かめた範囲だけを書いています。図は mermaid で描画を確かめています(確認日 2026年10月29日)。
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「ターミナルとは|シェルとの違い・Mac/Windowsの開き方と最初の10コマンド」
ターミナルとは(意味を一言で)
この節では、「ターミナル」という言葉の意味と、なぜ黒い画面がそう呼ばれるのかが分かります。
ターミナル(terminal)は、もともと「端末」という意味の言葉で、コンピューター本体につながれたキーボードと画面のセットを指していました。 本体は別の部屋にある大きな機械で、使う人はその「端」にある装置から文字を打ち、結果を文字で受け取っていました。今の Mac や Windows、Linux にある「ターミナル」は、その端末をソフトウェアで再現したアプリ(端末エミュレーター)です。黒い画面に白い文字、という見た目は、文字しか扱えなかった当時の装置の名残です。
ターミナルの仕事は、次の2つだけです。
- キーボードで打った文字を、中で動いているプログラム(シェル)に渡す。
- プログラムが返してきた文字を、画面に表示する。
ターミナル自身は、ls や cd といったコマンドの意味を知りません。意味を知っていて実行するのは、次の節で説明する「シェル」です。「ターミナルを開くと黒い画面が出て、その中でコマンドが打てる」のは、ターミナルが起動した瞬間に、中でシェルも起動しているからです。
1ターミナル=画面と入力の窓口
文字を受け取って渡し、返ってきた文字を表示する。Mac の「ターミナル.app」、Windows の「Windows Terminal」、Ubuntu の「端末(GNOME Terminal)」。
2シェル=文字を解釈して実行する係
打った1行を読み、コマンドを探して実行し、結果を返す。bash・zsh・PowerShell・cmd.exe。
3コマンド=実際に仕事をするプログラム
ファイルを一覧する ls、移動する cd、コードを管理する git など。シェルから呼び出される。
ターミナル・シェル・コンソール・コマンドライン・プロンプトの違い
この節では、似た言葉が5つあるのに、入門記事ではほぼ同じ意味で使われている理由と、正確な区別が分かります。
日常の会話では「ターミナル」「シェル」「コンソール」「コマンドライン」はどれも「黒い画面でコマンドを打つこと」の意味で使われます。 Ubuntu の公式チュートリアルも、これらは「どれもターミナルを開いてシェルにたどり着け、という言い方の違い」だと説明しています。区別が要るのは、エラーの原因を探すときです。
| 言葉 | 正確な意味 | 具体例 |
|---|---|---|
| ターミナル(端末) | 文字の入出力を担う画面・アプリ | ターミナル.app、Windows Terminal、iTerm2 |
| シェル | 打った文字を解釈し、コマンドを実行するプログラム | bash、zsh、fish、PowerShell、cmd.exe |
| コンソール | OS に直結した管理用の端末(物理コンソール・仮想コンソール)。ターミナルとほぼ同義でも使う | サーバー横の画面、Ctrl+Alt+F3 の文字画面、ブラウザの「コンソール」 |
| コマンドライン(CLI) | 文字で操作するやり方そのもの。GUI の対義語 | 「コマンドラインで実行する」 |
| プロンプト | シェルが「入力を待っています」と示す文字列 | taro@pc:~$、PS C:\Users\taro> |
電話にたとえると
電話機(ターミナル)を替えても、担当者(シェル)が同じなら、通じる言葉は同じ
「コマンドプロンプト」は、Windows のシェル cmd.exe を開くアプリの名前です。Microsoft Learn の cmd のページは、cmd を「コマンド インタープリターの新しいインスタンスを開始します」と説明しています。インタープリター(解釈する係)という言葉が、シェルの役割そのものです。
画面の裏側を見る:tty・pty を tty コマンドと ps で確かめる
この節では、「ターミナルとシェルは別のもの」が、Linux のコマンドの出力で確かめられることが分かります。
シェルは、ターミナルと直接つながっているのではなく、OS が用意する「端末(tty)」という通り道を通してつながっています。 今のターミナルアプリが用意するのは疑似端末(pty)で、Linux では /dev/pts/0 のような名前です。tty コマンドは、自分がどの端末につながっているかを表示します。
taro@pc:~/work$ tty
/dev/pts/0
taro@pc:~/work$ echo $SHELL
/bin/bash
taro@pc:~/work$ ps -o pid,ppid,tty,comm -p $$
PID PPID TT COMMAND
27131 27130 pts/0 bash
taro@pc:~/work$ ps -o pid,tty,comm -t pts/0
PID TT COMMAND
27131 pts/0 bash
27175 pts/0 ps
ps の TT の欄が、そのプロセスがつながっている端末です。シェル(bash)と、そこから実行した ps が、同じ pts/0 につながっています。親プロセス(PPID の 27130)が、端末を用意したターミナル側のプログラムです。
ターミナルが無いと「not a tty」になる
同じ tty コマンドを、ターミナルを通さずに(自動実行の仕組みから)動かすと、結果が変わります。
$ tty
not a tty
$ ps -o pid,tty,comm -p $$
PID TT COMMAND
26673 ? bash
$ ls -l /proc/$$/fd/0 /proc/$$/fd/1
lr-x------ 1 root root 64 Oct 29 22:38 /proc/26737/fd/0 -> /dev/null
l-wx------ 1 root root 64 Oct 29 22:38 /proc/26737/fd/1 -> .../tasks/brgwyqxow.output
端末が無いので TT は ? になり、入力(fd/0)は /dev/null、出力(fd/1)はファイルにつながっています。シェルは端末が無くても動きます。ターミナルは、人が対話するために付け足す「窓口」です。 cron や CI でスクリプトを動かすと、この状態になります。
script コマンドで、端末を通った文字を全部残す
script は、疑似端末を1つ作り、その中でシェルを起動して、画面に流れた文字をすべてファイルに記録するコマンドです。この記事の実行例も、script と Python の pty で記録しました。
$ script -q -c 'tty; ps -o pid,ppid,tty,comm -p $$' /dev/null
/dev/pts/0
PID PPID TT COMMAND
26741 26739 pts/0 bash
$ ps -p 26739 -o pid,comm
PID COMMAND
26739 script
端末の無い場所から script を通しただけで、tty は /dev/pts/0 を返し、親プロセスは script になりました。記録ファイルの先頭は次のとおりです。
Script started on 2026-10-29 22:39:20+09:00 [COMMAND="bash --rcfile /srv/s4/r17/t50/rc -i" ...]
手元の Linux では、端末デバイスは次のように見えました。
| デバイス | 何か | 手元の表示 |
|---|---|---|
/dev/pts/0 |
疑似端末。ターミナルアプリ・ssh・script が作る | crw------- 136, 0 |
/dev/tty1 |
仮想コンソール(Ctrl+Alt+F1 などの文字画面) | crw------- 4, 1 |
/dev/ttyS0 |
シリアルポートの端末(サーバーの保守用) | /proc/consoles に ttyS0 |
/dev/console |
OS が起動メッセージなどを出すシステムコンソール | crw------- 5, 1 |
/dev/tty |
「今のプロセスの端末」を指す別名 | crw-rw-rw- 5, 0 |
「コンソール」が「ターミナル」と少し違う言葉として残っているのは、この /dev/console や仮想コンソールのように、OS に直結した端末を指す用法があるからです。
echo $SHELL で分かること・分からないこと(bash と zsh の違い)
この節では、「自分のシェルは何か」を確かめる方法と、echo $SHELL の結果が当てにならない場面が分かります。
echo $SHELL は「ログイン時に使うと登録されたシェル」を表示します。今この瞬間に動いているシェルとは限りません。 bash の中から zsh を起動して、両方を確かめました。
taro@pc:~/work$ echo $SHELL; echo $0; ps -p $$ -o pid,comm
/bin/bash
bash
PID COMMAND
28137 bash
taro@pc:~/work$ zsh -f
vm# echo $SHELL; echo $0; ps -p $$ -o pid,comm
/bin/bash
zsh
PID COMMAND
28140 zsh
vm# echo $ZSH_VERSION
5.9
vm# exit
taro@pc:~/work$
zsh の中でも $SHELL は /bin/bash のままでした。今動いているシェルは echo $0 か ps -p $$ で見ます。プロンプトも bash の $(管理者は #)から、zsh の既定の %(管理者は #)に変わります。
| 確かめ方 | 分かること | 手元の結果 |
|---|---|---|
echo $SHELL |
ログインシェル(登録されているもの) | /bin/bash(zsh の中でも同じ) |
echo $0 |
今動いているシェルの名前 | bash → zsh |
ps -p $$ |
今のシェルのプロセス | bash → zsh |
cat /etc/shells |
この OS で選べるシェルの一覧 | /bin/sh・/bin/bash・/usr/bin/dash ほか |
bash --version |
bash の版 | GNU bash, version 5.2.21 |
bash と zsh は、初心者が打つ範囲ではほぼ同じ
pwd・ls・cd・mkdir などの基本コマンドは、シェルではなくコマンド側の仕事なので、bash でも zsh でも同じ結果になります。違いが出るのは、シェル自身が解釈する部分です。手元で見えた違いの1つが、当てはまるファイルが無いときのワイルドカードです。
vm# echo *.jpg
zsh: no matches found: *.jpg
vm# exit
taro@pc:~/work$ echo *.jpg
*.jpg
zsh は「一致するものが無い」とエラーにし、bash は *.jpg という文字をそのまま渡しました。ほかにも、設定ファイルの名前(bash は ~/.bashrc、zsh は ~/.zshrc)、補完の細かな動き、プロンプトの既定が違います。入門の段階では「Mac は zsh、Linux は bash が多い。基本コマンドはどちらでも同じ」と覚えておくと迷いません。
bash(Linux の多くで既定)
プロンプトの既定は $
設定は ~/.bashrc・~/.bash_profile
一致しないワイルドカードは文字のまま渡す
zsh(macOS 10.15 以降の既定)
プロンプトの既定は %
設定は ~/.zshrc・~/.zprofile
一致しないワイルドカードはエラー(no matches found)
Mac の「ターミナル」の開き方・閉じ方と、既定のシェルが zsh であること
この節では、Mac でターミナルを開く手順と終了の手順、既定のシェルが zsh である根拠が、Apple の公式ドキュメントの範囲で分かります。
Mac のターミナルは「ターミナル.app」という名前のアプリで、「アプリケーション」フォルダの中の「ユーティリティ」に入っています。 Apple サポートの「Macで「ターミナル」を開く/終了する」は、開き方を2通り挙げています。
Launchpad から開く
Dock の Launchpad アイコンをクリックし、検索フィールドに「ターミナル」と入力して、「ターミナル」をクリックする。
Finder から開く
Finder で「/アプリケーション/ユーティリティ」フォルダを開き、「ターミナル」をダブルクリックする。
Spotlight から開く(組み合わせ)
Command+スペースバーを押して Spotlight を開き、「ターミナル」と入力して Return キーを押す。Spotlight の開き方と、結果を Return で開けることは Apple サポート「Macで必要なものをSpotlightで探す」に書かれている。
閉じ方(Apple の説明)
- ターミナルアプリ全体を終了するには、メニューの「ターミナル」>「ターミナルを終了」を選ぶ。
- シェルのセッションだけを終了するには、そのウインドウで
exitと入力して Return キーを押す。 - 実行中の処理が残っているときは、終了してよいかを確かめるダイアログが表示される。
既定のシェルは zsh(macOS 10.15 以降)
Apple サポートの「zshをMacのデフォルトシェルとして使う」は、「macOS 10.15以降では、Macのデフォルトのログインシェルおよびインタラクティブシェルとして、zshが使用されます」と書いています。macOS 10.14 以前の既定は bash でした。同じページによると、シェルは次の方法で変えられます。
- ターミナルで
chsh -s パスと入力する。パスは/etc/shellsに書かれているもの(例:/bin/zsh、/bin/bash)。 - macOS 13 以降は「システム設定」>「ユーザとグループ」で自分のユーザ名を control キーを押しながらクリックし、「詳細オプション」の「ログインシェル」メニューで選ぶ。
zsh が既定の Mac で bash を起動すると、「既定の対話型シェルは zsh になった」という趣旨のメッセージが出ます。Apple は、このメッセージを出さないようにするには ~/.bash_profile か ~/.profile に export BASH_SILENCE_DEPRECATION_WARNING=1 を書く、と案内しています。
Web の入門記事で「ターミナルを開いて $ のあとにコマンドを打つ」と書かれていても、Mac の zsh では % が出ます。記号が違うだけで、打つコマンドは同じです。
Windows のターミナル:Windows Terminal・PowerShell・コマンドプロンプトの関係
この節では、Windows で「ターミナル」「PowerShell」「コマンドプロンプト」という3つの名前がどう関係しているのかが、Microsoft の公式ドキュメントの範囲で分かります。
Windows Terminal が「画面(ターミナル)」で、PowerShell とコマンドプロンプト(cmd.exe)は、その中で動く「シェル」です。 Microsoft Learn の「Windows ターミナルの概要」は、Windows Terminal を「コマンド プロンプト、PowerShell、bash(Windows Subsystem for Linux (WSL) 経由)など、既に好きなコマンド ライン シェル用の最新のホスト アプリケーション」と説明しています。
| 名前 | 役割 | Microsoft の説明 |
|---|---|---|
| Windows Terminal(ターミナル) | ターミナル(画面)。タブで複数のシェルを開ける | コマンドライン シェル用のホスト アプリケーション |
| PowerShell | シェル+スクリプト言語。Windows・Linux・macOS で動く | コマンドライン シェル、スクリプト言語、構成管理フレームワークで構成されるクロスプラットフォームのタスク自動化ソリューション |
| コマンドプロンプト(cmd.exe) | 以前からある Windows のシェル | コマンド インタープリター |
| WSL の bash | Windows の中で動く Linux のシェル | Windows Terminal のプロファイルとして開ける |
Microsoft の Windows Command Line ブログ(2022年10月18日)は、Windows 11 22H2 で Windows Terminal が既定のコマンドライン体験になり、コマンドラインのアプリは自動的に Windows Terminal の中で開くようになった、と書いています(Windows Terminal 1.15 以降が必要)。初回起動時の既定のプロファイルは PowerShell です。Windows 10 では Microsoft Store からインストールします(Microsoft Learn「Windows ターミナルのインストール」。既定のターミナルの設定は Windows 10 22H2 でも、2023年5月の更新プログラム以降で使えます)。
開く
スタートの検索で「ターミナル」を探す。コマンドラインからは wt(Microsoft Learn は「実行エイリアス wt」で新しいインスタンスを開けると説明)。
Win+R に wt でも同じ
シェルを選ぶ
タブの「+」の横の「∨」から PowerShell・コマンド プロンプト・WSL のプロファイルを選ぶ。既定のプロファイルは「設定」>「スタートアップ」で変えられる。
既定は PowerShell
既定のターミナルにする
Windows Terminal の「設定」>「スタートアップ」>「既定のターミナル アプリケーション」で Windows ターミナルを選ぶ。
Microsoft Learn「インストール」
閉じる
シェルに exit と打つとそのタブが閉じる。ウィンドウの「×」でも閉じられる。
cmd の /c は実行後に終了
PowerShell のコマンドは、bash とは名前も考え方も違います(Get-ChildItem が ls に当たる、など)。対応表は関連記事「PowerShellコマンド一覧|用途別50選とbash対応表・実行例付き」で扱っています。Windows の中で Linux のターミナルを使いたいときは、関連記事「WSL2環境構築|Ubuntu開発環境をコマンドだけで整える手順」で扱っています。
Linux(Ubuntu)でターミナルを開く・閉じる
この節では、Ubuntu などの Linux デスクトップでターミナルを開く方法と、画面の無いサーバーではどうなるかが分かります。
Ubuntu のデスクトップでは、Ctrl+Alt+T を押すか、「アクティビティ」の検索に「terminal」「端末」と入力してターミナルを開きます。 Ubuntu の公式チュートリアル「The Linux command line for beginners」は、「ほとんどの Linux では同じ既定のショートカット Ctrl-Alt-T で起動できる」と説明しています。
- 日本語の Ubuntu では、アプリの名前は「端末」と表示されます。中身は GNOME Terminal です。
- 画面の無いサーバーには、ターミナルアプリはありません。手元の PC のターミナルから
sshで接続すると、サーバー側に疑似端末(/dev/pts/0など)が作られ、その中でサーバーのシェルが動きます。 - 閉じるときは
exitか Ctrl+D です。ssh の接続も同じ操作で切れます。
手元の Ubuntu 24.04 で、ターミナルの大きさと種類は次のように見えました。TERM はターミナルの種類(どの制御文字が使えるか)を表す環境変数で、tput は端末の情報を取り出すコマンドです。
$ echo $TERM
linux
$ tput cols; tput lines
80
24
ターミナルの画面の読み方(プロンプト・$ と #・カーソル)
この節では、ターミナルを開いた直後の画面に出ている文字の意味が分かります。
開いた直後に出ている taro@pc:~$ のような文字列が「プロンプト」で、シェルが入力を待っている合図です。 手元の bash で、プロンプトを taro@pc:~/work$ の形にして動かしました。
| 部分 | 意味 | 例 |
|---|---|---|
taro |
今のユーザー名 | ログインしている人 |
pc |
コンピューターの名前(ホスト名) | ssh 先では相手の名前になる |
~/work |
今いるフォルダー(カレントディレクトリ)。~ はホーム |
pwd で全体が見える |
$ |
一般ユーザー。zsh では % |
管理者(root)は # |
| その後ろの四角や線 | カーソル。ここに文字が入る | クリックでは動かない |
- プロンプトの末尾が
#のときは管理者として動いています。打ったコマンドがそのまま OS 全体に効くので、慎重に打ちます。 - 入門記事のコマンド例に付いている先頭の
$はプロンプトの印で、打つ文字には含めません。 - カーソルはマウスでは動かせません。左右の矢印キーで動かし、Ctrl+A で行頭、Ctrl+E で行末に飛びます。
最初に覚える10コマンド(実行結果つき)
この節では、ターミナルを開いたら最初に試すとよい10個のコマンドと、実際に打ったときの結果が分かります。
「今どこにいるか」「何があるか」「移動する」「作る」「見る」「写す・動かす・消す」ができれば、ターミナルの基本は終わりです。 手元の bash で、空のフォルダーから順に打ちました。
taro@pc:~/work$ pwd
/srv/s4/r17/t50/demo/work
taro@pc:~/work$ ls
taro@pc:~/work$ mkdir memo
taro@pc:~/work$ cd memo
taro@pc:~/work/memo$ pwd
/srv/s4/r17/t50/demo/work/memo
taro@pc:~/work/memo$ echo "はじめてのターミナル" > hello.txt
taro@pc:~/work/memo$ ls -l
total 4
-rw-r--r-- 1 root root 31 Oct 29 22:39 hello.txt
taro@pc:~/work/memo$ cat hello.txt
はじめてのターミナル
taro@pc:~/work/memo$ cp hello.txt copy.txt
taro@pc:~/work/memo$ mv copy.txt renamed.txt
taro@pc:~/work/memo$ ls
hello.txt renamed.txt
taro@pc:~/work/memo$ rm renamed.txt
taro@pc:~/work/memo$ ls
hello.txt
taro@pc:~/work/memo$ cd ..
taro@pc:~/work$ history | tail -3
30 ls
31 cd ..
32 history | tail -3
| コマンド | すること | 上の例での結果 |
|---|---|---|
pwd |
今いるフォルダーを表示する | /srv/s4/r17/t50/demo/work |
ls(ls -l) |
フォルダーの中身を一覧する(詳しく) | 空なら何も出ない。-l で大きさと日時 |
cd |
フォルダーを移動する。cd .. で1つ上 |
プロンプトの ~/work が ~/work/memo に |
mkdir |
フォルダーを作る | memo ができた |
echo |
文字を表示する。> でファイルに書く |
31バイトの hello.txt |
cat |
ファイルの中身を表示する | はじめてのターミナル |
cp |
ファイルを写す | copy.txt ができた |
mv |
動かす・名前を変える | renamed.txt に変わった |
rm |
消す(ごみ箱に入らない) | renamed.txt が消えた |
history |
打ったコマンドの履歴を見る | 番号つきで表示 |
日本語の「はじめてのターミナル」が 31 バイトなのは、UTF-8 では全角1文字が3バイトで、10文字=30バイトに改行の1バイトが足されているからです。cd とパスの読み方は関連記事「Linuxのcd・pwdコマンドの使い方|相対パスと絶対パスの違いを図解」で扱っています。
- 1Tab キーで名前を補完するファイル名を途中まで打って Tab を押すと、残りをシェルが埋める。打ち間違いが減る
- 2上矢印で前のコマンドを呼び出す同じコマンドを打ち直さない。Ctrl+R で履歴を検索できる
- 3迷ったら pwd と ls「今どこ」「何がある」が分かれば、次に打つものが決まる
- 4rm は消す前に ls で確かめるターミナルの rm はごみ箱を通らない
10個の先にある100個のコマンドは、関連記事「Linuxコマンド一覧|100個をカテゴリ別に実行結果つきで解説」で扱っています。
怖くない閉じ方(exit・Ctrl+D・ウィンドウを閉じる)
この節では、ターミナルを安全に閉じる方法と、「閉じてよいか」の見分け方が分かります。
シェルに exit と打つか、何も打っていない状態で Ctrl+D を押すと、シェルが終了してターミナルのタブやウィンドウが閉じます。 手元で両方を実行した結果です。
taro@pc:~/work$ exit
exit
(Ctrl+D を押したとき)
taro@pc:~/work$ echo こんにちは
こんにちは
taro@pc:~/work$
exit
Ctrl+D は「入力の終わり」を送るキーです。何も打っていないプロンプトで押すと、シェルは「もう入力は来ない」と判断して、exit と表示して終了します。
- 1プロンプトが出ている → そのまま exit か Ctrl+D何も動いていないので、閉じても失うものは無い
- 2何かが動いている(プロンプトが戻らない) → Ctrl+C で止めてから閉じる開発サーバーや長いコピーを止める。止めてよいか迷うなら、完了を待つ
- 3less・vi・man の画面になっている → q か :q! で抜けてから閉じるこれらは「中でプログラムが動いている」状態。抜けるとプロンプトが戻る
- 4ウィンドウの×で閉じる動いているものは強制終了される。Mac のターミナルは、実行中の処理があれば確認のダイアログを出す(Apple)
Ctrl+C で止めると、直後の $?(終了コード)は 130 になりました。「130 = 128 + 2(SIGINT の番号)」で、「割り込みで止めた」という記録です。
taro@pc:~/work$ sleep 100
^C
taro@pc:~/work$ echo "戻ってきた: $?"
戻ってきた: 130
よくある画面とつまずき(パスワードが出ない・固まった・command not found)
この節では、初めてターミナルを使う人が「壊れた?」と感じる画面の正体と、押すキーが分かります。
画面が止まる・文字が出ない原因のほとんどは、ターミナル側の仕様か、中でプログラムが待っているかのどちらかです。 手元の疑似端末で再現した結果と、出たままの文言です。
| 画面の様子・原文 | 何が起きているか | 押すキー・直し方 |
|---|---|---|
Password: のあと、打っても何も出ない |
パスワードは画面に出さない仕様(端末の echo を切っている) | そのまま打って Enter。手元では6文字が正しく渡った |
| 急に何も表示されなくなった | Ctrl+S を押して画面の出力を止めてしまった | Ctrl+Q で再開。手元では止めた間の出力がまとめて出た |
| プロンプトが戻ってこない | コマンドがまだ動いている(サーバー・長い処理・入力待ち) | Ctrl+C で止める |
bash: sl: command not found |
打ち間違い、またはそのコマンドが入っていない | 綴りを直す。入っていなければインストール |
cd: nothing: No such file or directory |
その名前のフォルダー・ファイルが今の場所に無い | ls で名前を確かめる。pwd で場所を確かめる |
cat: secret.txt: Permission denied |
読む・書く権限が無い | 所有者か管理者に頼む。安易に sudo を付けない |
[1]+ Stopped sleep 100 |
Ctrl+Z で一時停止した(終わっていない) | fg で戻す。jobs で一覧 |
画面いっぱいに文章、下に : や (END) |
less・man の表示画面 |
q で抜ける |
打った文字が入らない、~ や : が出る |
vi・vim が開いている |
Esc を押してから :q! と打って Enter |
再現した原文
taro@pc:~/work$ sl
bash: sl: command not found
taro@pc:~/work$ cd nothing
bash: cd: nothing: No such file or directory
taro@pc:~/work$ cat nothing.txt
cat: nothing.txt: No such file or directory
$ cat secret.txt (別のユーザーで実行)
cat: secret.txt: Permission denied
$ touch x.txt
touch: cannot touch 'x.txt': Permission denied
taro@pc:~/work$ read -s -p "Password: " pw; echo; echo "入力した文字数: ${#pw}"
Password:
入力した文字数: 6
taro@pc:~/work$ sleep 100
^Z
[1]+ Stopped sleep 100
taro@pc:~/work$ jobs
[1]+ Stopped sleep 100
taro@pc:~/work$ fg
sleep 100
^C
パスワードが表示されないのは、端末の「echo(打った文字を画面に戻す)」を切っているからです。手元の端末の設定(stty -a)には echo と ixon が有効と出ていて、ixon が Ctrl+S/Ctrl+Q で出力を止める・再開する機能です。「* すら出ない」のが正常です。
Ctrl+S の再現では、Ctrl+S を送ったあとに echo hello を打って1秒待っても何も表示されず、Ctrl+Q を送った瞬間に echo hello と hello とプロンプトがまとめて出ました。「固まった」ように見えても、中では処理が進んでいます。
Ctrl+R での履歴検索と history の使い方は関連記事「historyコマンドの使い方|Ctrl+R検索・履歴削除・HISTSIZE」で扱っています。
キー操作の早見表(Ctrl+C・Ctrl+D・Ctrl+Z・Ctrl+L)
Ctrl を使うキーは、文字としてではなく「合図」として端末やシェルに届きます。 似ているようで、効く相手が違います。
| キー | すること | 効く相手 |
|---|---|---|
| Ctrl+C | 動いているコマンドを止める(SIGINT) | 端末が前面のプログラムに送る |
| Ctrl+D | 入力の終わり。プロンプトで押すとシェルが終了 | 端末 → シェル |
| Ctrl+Z | 一時停止して後ろに回す。fg で戻す |
端末が前面のプログラムに送る |
Ctrl+L / clear |
画面を消す(履歴は消えない) | シェル・端末の表示 |
| Ctrl+S / Ctrl+Q | 出力を止める / 再開する | 端末(ixon) |
| Ctrl+A / Ctrl+E | 行頭 / 行末へカーソルを動かす | シェルの行編集 |
| Ctrl+R | 履歴を検索する | シェルの行編集 |
| Tab | ファイル名・コマンド名を補完する | シェル |
| Ctrl+Shift+C / V(Linux・Windows)、Command+C / V(Mac) | コピー / 貼り付け | ターミナルアプリ |
Linux や Windows のターミナルで Ctrl+C が「コピー」でないのは、Ctrl+C が先に「止める合図」として決まっていたからです。コピーは Ctrl+Shift+C など、アプリごとの操作になります。Mac は Command キーがあるので、Command+C でコピーでき、Ctrl+C は止める合図のままです。
やってはいけないことと、代わりにすること
この節では、初めてのターミナルで本当に避けるべき操作が、少数に絞って分かります。
ターミナルは、確認のダイアログを出しません。打った瞬間に実行されます。 怖がらなくてよいのですが、次の3つだけは守ります。
rm のオプション
rm -rf 何か を打つ。-r はフォルダーごと、-f は確認なし。ごみ箱に入らないls で消す相手を見る。消すのはファイル1つずつから始める。rm -i で1つずつ確かめる手元の rm renamed.txt は、確認なしで即座に消えた
コピペの実行
curl … | sh や sudo 付きのものを、読まずに貼って Enterman コマンド名 か コマンド名 --help で調べる貼り付けに改行が含まれていると、その場で実行される
sudo の付け方
sudo を付けて通すsudoプロンプトが # のときは、常に管理者で動いている
su と sudo の違いは、関連記事「Linuxのsuとsudoの違い|su -・sudo -i・-sの比較表」で扱っています。
ターミナルでできるようになること(GUI との使い分けの判断表)
この節では、マウスで操作する画面(GUI)があるのに、なぜターミナルを覚えるのかと、使い分けの判断が分かります。
ターミナルが向いているのは「同じことを何度も」「たくさんのファイルに」「画面の無いサーバーで」「手順を文字で残したい」ときです。 1つのファイルを開いて眺めるだけなら、GUI のほうが速いこともあります。
| したいこと | 向いているほう | 理由 |
|---|---|---|
| 写真を1枚見る・文書を1つ編集する | GUI | 見た目の確認はマウスと画面が速い |
| 1,000個のファイル名を一括で変える | ターミナル | 1行のコマンドで終わり、やり直しも同じ1行 |
| サーバーの設定・ログの確認 | ターミナル | サーバーには画面が無く、ssh でつなぐ |
| プログラムの実行・パッケージの導入 | ターミナル | npm・pip・git などの道具はコマンドで動く |
| 手順を同僚に正確に伝える | ターミナル | コマンドは文字なので、そのまま共有・再実行できる |
| 初めての設定画面を探す | GUI | 項目が見えるので迷いにくい |
プログラミングを学ぶと、エディタ(VS Code など)の中にもターミナルの画面があり、そこで git・npm・python を打つことになります。中身は、この記事で見た「疑似端末+シェル」と同じです。
学ぶ順番
開く・閉じる・止める
ターミナルを開き、exit で閉じ、Ctrl+C で止める。これだけで「壊す」心配はほぼ消える。
場所の感覚(pwd・ls・cd)
今どこにいて、何があって、どう移動するか。絶対パスと相対パスの読み方。
ファイルの作成・表示・移動・削除
mkdir・echo・cat・cp・mv・rm。Tab 補完と上矢印を使う癖をつける。
道具のコマンド(git・npm・pip・ssh)
学ぶ言語や仕事に合わせて1つずつ。ターミナルの操作は共通。
よくある質問
Q. ターミナルとは何ですか? A. キーボードで打った文字をプログラム(シェル)に渡し、返ってきた文字を画面に表示するアプリです。もともとは、コンピューター本体につながれたキーボードと画面の装置(端末)を指す言葉で、今のアプリはそれをソフトウェアで再現したものです。
Q. ターミナルとシェルの違いは何ですか?
A. ターミナルは画面と入力の窓口、シェルは打った文字を解釈してコマンドを実行する係です。手元の Linux では、ps で見るとシェル(bash)がターミナル側の用意した端末 pts/0 につながっていて、ターミナル無しで動かすと not a tty になりました。
Q. ターミナルとコマンドプロンプトの違いは何ですか? A. コマンドプロンプトは、Windows のシェル cmd.exe(Microsoft Learn では「コマンド インタープリター」)を開くアプリの名前です。Windows Terminal はその cmd.exe や PowerShell をタブで開くターミナル(画面)で、Windows 11 22H2 以降は既定のターミナルになっています。
Q. Mac でターミナルはどこにありますか? A. 「アプリケーション」フォルダの中の「ユーティリティ」フォルダにある「ターミナル」です。Apple サポートは、Launchpad の検索に「ターミナル」と入力する方法と、Finder で「/アプリケーション/ユーティリティ」を開いてダブルクリックする方法を案内しています。Command+スペースバーの Spotlight からも開けます。
Q. Mac のターミナルで % が出ます。$ ではないのですか?
A. macOS 10.15 以降の既定のシェルは zsh で、zsh のプロンプトの既定は % です(Apple サポート)。bash では $ です。打つコマンドは同じです。
Q. Windows にターミナルはありますか? A. あります。Windows 11 では「ターミナル」(Windows Terminal)が既定のターミナルで、中で PowerShell・コマンドプロンプト・WSL の bash を開けます。Windows 10 では Microsoft Store からインストールします(Microsoft Learn)。
Q. ターミナルの閉じ方は?閉じても問題ないですか?
A. exit と打つか、プロンプトで Ctrl+D を押します。プロンプトが表示されている状態なら、何も動いていないので閉じても失うものはありません。何かが動いているときは Ctrl+C で止めてから閉じます。
Q. パスワードを打っても何も表示されません。
A. 仕様です。端末が、打った文字を画面に戻す機能(echo)を切っています。* も出ません。手元で read -s を使って試したところ、表示されないまま6文字が正しく渡りました。そのまま打って Enter を押します。
Q. 画面が固まりました。
A. まず Ctrl+Q を押します。Ctrl+S を押していると出力が止まり、固まったように見えます。手元では、止めている間に打った echo hello の結果が、Ctrl+Q を押した瞬間にまとめて出ました。それでも戻らなければ Ctrl+C で動いているコマンドを止めます。
Q. command not found と出ます。
A. 打ち間違いか、そのコマンドがインストールされていないかのどちらかです。手元で sl と打つと bash: sl: command not found と出ました。綴りを確かめ、Tab 補完を使います。
Q. 黒い画面は変えられますか? A. 変えられます。ターミナルアプリの設定で、背景色・文字色・フォント・文字の大きさを変えられます。Windows Terminal は配色やテーマ、背景画像を変えられると Microsoft Learn に書かれています。見た目はターミナル側の機能で、シェルやコマンドの動きは変わりません。
Q. ターミナルで打ち間違えると PC が壊れますか?
A. 打ち間違いの大半は command not found や No such file or directory で止まり、何も起きません。気をつけるのは、消す(rm)・管理者で実行する(sudo)・読まずに貼り付ける、の3つです。自分のフォルダーの中で、ファイル1つずつから始めれば、取り返しのつかないことはほぼ起きません。
まとめ
- ターミナルは文字の入出力を担う「画面(アプリ)」で、打った文字を解釈して実行するのは中で動く「シェル」(bash・zsh・PowerShell・cmd.exe)。
- 手元の Linux では、シェルは端末
/dev/pts/0につながり(tty・psの TT 欄)、ターミナル無しで動かすとnot a tty・TT は?になった。シェルは端末が無くても動く。 echo $SHELLはログインシェルの登録で、zsh の中でも/bin/bashのままだった。今のシェルはecho $0かps -p $$で見る。- Mac は「アプリケーション>ユーティリティ>ターミナル」、既定のシェルは macOS 10.15 以降 zsh(Apple)。Windows 11 22H2 以降は Windows Terminal が既定のターミナルで、中身は PowerShell・コマンドプロンプト・WSL(Microsoft)。
- 最初の10コマンドは pwd・ls・cd・mkdir・echo・cat・cp・mv・rm・history。閉じるのは
exitか Ctrl+D、止めるのは Ctrl+C($?は 130)、固まったら Ctrl+Q、パスワードは表示されないのが正常。
参考・出典
確認日はいずれも 2026年10月29日です。
- Apple サポート「Macで「ターミナル」を開く/終了する」(ターミナルユーザガイド):https://support.apple.com/ja-jp/guide/terminal/apd5265185d-f365-44cb-8b09-71a064a42125/mac
- Apple サポート「zshをMacのデフォルトシェルとして使う」:https://support.apple.com/ja-jp/HT208050
- Apple サポート「Macで必要なものをSpotlightで探す」:https://support.apple.com/ja-jp/guide/mac-help/mchlp1008/mac
- Microsoft Learn「Windows ターミナルの概要」:https://learn.microsoft.com/ja-jp/windows/terminal/
- Microsoft Learn「Windows ターミナルのインストール」:https://learn.microsoft.com/ja-jp/windows/terminal/install
- Microsoft Learn「Windows ターミナルでのコマンド ライン引数の使用」:https://learn.microsoft.com/ja-jp/windows/terminal/command-line-arguments
- Microsoft Learn「PowerShell とは」:https://learn.microsoft.com/ja-jp/powershell/scripting/overview
- Microsoft Learn「cmd」(Windows コマンド):https://learn.microsoft.com/ja-jp/windows-server/administration/windows-commands/cmd
- Microsoft Windows Command Line ブログ「Windows Terminal is now the Default in Windows 11」(2022年10月18日):https://devblogs.microsoft.com/commandline/windows-terminal-is-now-the-default-in-windows-11/
- Ubuntu「The Linux command line for beginners」:https://ubuntu.com/tutorials/command-line-for-beginners
- GNU「Bash Reference Manual」:https://www.gnu.org/software/bash/manual/bash.html
- util-linux「script(1)」マニュアル:https://man7.org/linux/man-pages/man1/script.1.html
- Linux man-pages「pty(7)」:https://man7.org/linux/man-pages/man7/pty.7.html
本記事の内容は、ご自由にお使いください。
ご利用の際は、出典として本ページへのリンクを記載いただけますようお願いします。
(記載例)出典:株式会社RJC「ターミナルとは|シェルとの違い・Mac/Windowsの開き方と最初の10コマンド」
株式会社RJC ― SI事業・SES事業・AI駆動開発。RJCは一緒に成長を楽しめる会社です。
WE ARE HIRING
RJCで一緒に開発しながら、
成長を楽しみませんか?
RJCは、Web・モバイル・AIを活用した開発プロジェクトで、テックリードやPM・PMOも活躍するシステム開発会社です。会社を知る、待遇を確かめる、話を聞いてみる。気になるところ見てみてください!
- 127日年間休日
- 12時間平均残業時間
- 毎日ガチャ遊びココロも大切にする福利厚生。アマギフなどの賞品ラインナップ!
ほかにも、チケットレストラン、書籍読み放題、2年ごとの慰労報奨(休暇 or 金一封)、11期連続の黒字決算。