Linux: ターミナルの基礎 — シェルと最初のコマンド
ターミナルは開発者がLinuxと対話する主要な手段です。グラフィカルインターフェースの派手さはありませんが、慣れればマウスのクリックを遥かに凌ぐ効率を発揮します。
📋 前提条件:まず以下を完了していること
- レッスン2:Linuxのインストール
1. このレッスンで学ぶこと
- シェルとターミナルエミュレータの違い
- コマンドの基本構文(コマンド + オプション + 引数)
- Tab自動補完とコマンド履歴
- ターミナルキーボードショートカット
- コマンドのヘルプの取得方法
2. 初心者の初めてのターミナル体験
(1) 悩み:白い文字の黒い画面が怖い
小明はWSL2ターミナルを開き、点滅するカーソルのある黒い画面を見ました。何をタイプすればいいのか、Enterを押すと何が起きるのか、終了の仕方さえ分かりませんでした。
(2) 最初のコマンド
先輩エンジニアのボブが言いました。「まず挨拶してみよう。echo "Hello Linux"と入力してEnterを押して。」
echo "Hello Linux"
# Output: Hello Linux
ターミナルが入力した内容をそのまま返しました — 小明は、ターミナルは会話ウィンドウのようなものだと気づきました:コマンドを入力すると、コンピュータが結果を返してくるのです。
(3) 得られるもの:不安から操作へ
最初のコマンドを覚えた後、小明はdate、whoami、calを試しました。わずか5分で「ターミナルに触るのが怖い」から「ターミナルの出力が読める」ようになりました。
3. 知識ポイント
(1) シェルとターミナル
ターミナルエミュレータは目に見えるウィンドウです — LinuxではGNOME Terminal、WindowsではWindows Terminal、macOSではTerminal.appです。
シェルはターミナル内で動作し、入力されたコマンドを解釈するプログラムです。最も一般的なシェルはbash(Bourne Again Shell)です。
Terminal window → Shell (bash) → Operating System
(2) コマンドの基本構文
ほぼすべてのLinuxコマンドはこの構造に従います:
COMMAND [OPTIONS] [ARGUMENTS]
| 構成要素 | 説明 | 例 |
|---|---|---|
| COMMAND | 実行するコマンドの名前 | ls |
| OPTIONS | コマンドの動作を変更するオプション(通常-で始まる) |
-l(長形式)、-a(隠しファイル表示) |
| ARGUMENTS | コマンドの操作対象 | ファイル名、ディレクトリ名 |
# Syntax example
ls -la /home
# Command: ls
# Options: -l (long format) and -a (hidden files)
# Argument: /home (directory to list)
(3) Tab自動補完
Tabキーはターミナルで最も便利なキーです。 コマンドやファイル名の一部を入力してTabを押すと、自動的に補完されます。
Ctrl+Rの逆順履歴検索と組み合わせれば、効率は何倍にも上がります。
| Tabの効果 | 説明 |
|---|---|
| 自動補完 | 一意に決まる場合、完全な名前に自動補完 |
| 全候補表示 | 複数候補がある場合、1回目は無反応、2回目で全候補を表示 |
| コマンド補完 | ec + Tab → echoに自動補完 |
| ファイル補完 | cd /ho + Tab → cd /homeに自動補完 |
| パス補完 | ls ~/Doc + Tab → ls ~/Documents/ |
(4) ターミナルキーボードショートカット
| ショートカット | 動作 |
|---|---|
Ctrl + C |
現在実行中のプログラムを終了(コピーではない!) |
Ctrl + D |
現在のシェルを終了、または入力を終了(EOF) |
Ctrl + L |
画面をクリア(clearコマンドと同じ) |
Ctrl + R |
コマンド履歴を逆順検索 |
↑ / ↓ |
コマンド履歴を閲覧 |
Ctrl + A |
カーソルを行の先頭に移動 |
Ctrl + E |
カーソルを行の末尾に移動 |
Ctrl + U |
カーソルより前の文字をすべて削除 |
Ctrl + K |
カーソルより後の文字をすべて削除 |
Ctrl + W |
カーソルより前の単語を削除 |
Ctrl+Aは行頭に移動(Emacsと同じ)、Ctrl+Eは行末、Ctrl+Uはカーソルより前をクリア、Ctrl+Kはカーソルより後をクリア、Ctrl+Wは前の単語を削除します。これらの組み合わせを覚えれば、長いコマンドの編集がぐっと速くなります。
(5) ▶ サンプル:基本インタラクティブコマンド
# View current date and time
date
# Output: Tue Jul 7 10:23:45 CST 2026
# Print current username
whoami
# Output: alice
# View calendar
cal
# July 2026
# Su Mo Tu We Th Fr Sa
# 1 2 3 4
# 5 6 7 8 9 10 11
# ...
# View system uptime
uptime
# Output: 10:23 up 2 days, 2 users
出力:
TEXTTue Jul 7 10:23:45 CST 2026 alice July 2026 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 10:23 up 2 days, 2 users
(6) ▶ サンプル:echoコマンドのさまざまな使い方
# Print a string
echo "Hello Linux"
# Print a variable
echo "Current user is: $USER"
# Print command output
echo "Today is $(date +%A)"
# Write to a file
echo "Hello World" > welcome.txt
(7) ▶ サンプル:Tab補完の練習
# Type cd /h then press Tab → auto-completes /home
cd /home
# Type ls -l /e then press Tab → auto-completes /etc
ls -l /etc
# Press Tab twice to show matches (type cd /e + Tab + Tab)
# Lists all paths starting with /e
(8) ▶ サンプル:画面のクリアと終了
# Too much on screen? Clear it
clear
# Or use the shortcut Ctrl + L
# Exit the terminal
exit
# Or press Ctrl + D
(9) ▶ サンプル:コマンドのヘルプを取得
# Method 1: --help option (supported by most commands)
ls --help | head -20
# Method 2: man pages (most detailed)
man ls
# Press q to exit the man page
# Method 3: whatis one-line description
whatis ls
# Output: ls (1) - list directory contents
(10) ▶ 総合例:小明の初めてのターミナル冒険
# After opening the terminal, Xiao Ming tried the following
echo "Hello Linux" # Say hello to the computer
date # What's today's date?
whoami # Who am I?
uptime # How long has the server been running?
cal # Show this month's calendar
ls -la # What files are in my home directory?
echo $SHELL # What Shell am I using?
exit # Goodbye, terminal!
出力:
TEXTHello Linux Tue Jul 8 10:23:45 CST 2026 alice 10:23:45 up 3 days, 2:10, 1 user, load average: 0.00, 0.01, 0.05 July 2026 Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 total 28 drwxr-xr-x 1 alice alice 4096 Jul 8 10:23 . drwxr-xr-x 1 alice alice 4096 Jul 8 10:23 .. -rw-r--r-- 1 alice alice 220 Jul 8 10:23 .bash_logout -rw-r--r-- 1 alice alice 3771 Jul 8 10:23 .bashrc -rw-r--r-- 1 alice alice 807 Jul 8 10:23 .profile /bin/bash💡 小明は最も基本的なターミナルコマンドを学びました — これからはこれらを基礎として応用していきます!
❓ よくある質問
Q: ターミナルとシェルの違いは何ですか? A: ターミナルはウィンドウプログラム(例:GNOME Terminal、Windows Terminal)で、シェルはターミナル内で動作するコマンドインタープリタ(例:bash、zsh)です。ターミナルが「窓口」で、シェルが「話相手」です。
Q: Tabで何を補完できますか? A: コマンド名、ファイル名、ディレクトリ名、コマンドのオプション(一部のプログラムが対応)、環境変数名(
$で始まる場合)。Linuxでは、Ctrl + IとTabは同じものです。
Q: Ctrl + Cを押してもプログラムが止まらない場合は? A: まず
Ctrl + Cを試し、次にCtrl + Zでプログラムを一時停止し、kill %1で終了します。それでもだめな場合は、ps aux | grep program_nameでPIDを見つけてkill -9 PIDを実行します。
Q:
clearとCtrl + Lの違いは? A: 同じ効果です — どちらも画面をクリアします。ただしclearはコマンド(ターミナルとスクロールバッファをクリア)、Ctrl + Lはショートカット(可視部分のみクリア)です。実用上はどちらでも構いません。
Q: 以前に入力したコマンドを確認するには? A:
↑で1つずつ閲覧。Ctrl + Rで逆順検索モードに入り、キーワードで履歴を検索。すべての履歴は~/.bash_historyに保存されています。
📖 まとめ
- ターミナルは窓口、シェルはコマンドインタープリタ、デフォルトのシェルはbash
- コマンド構造:
COMMAND [OPTIONS] [ARGUMENTS] - Tab自動補完はターミナル最強の機能 — 積極的にTabを押そう
- ターミナルショートカットで効率大幅アップ:
Ctrl + Cで終了、↑で履歴、Ctrl + Rで検索 - ヘルプは
--help(簡易)またはman(詳細)で取得
📝 練習問題
- 基本(難易度 ⭐):ターミナルを開き、
echo "Hello Linux"と入力して出力を確認し、dateとcalで現在の日付とカレンダーを表示する - 中級(難易度 ⭐⭐):
man lsでlsコマンドのマニュアルを読み(qで終了)、Tab補完を練習 —cd /と入力後Tabを2回押してディレクトリ一覧を確認する - 上級(難易度 ⭐⭐⭐):日付とカレンダーの両方を表示するシェルエイリアス
todayを作成し、Ctrl + Rでコマンド履歴を検索し、自分が最もよく使う5つのターミナルショートカットをリストアップする