Linux: ターミナルの基礎 — シェルと最初のコマンド

ターミナルは開発者がLinuxと対話する主要な手段です。グラフィカルインターフェースの派手さはありませんが、慣れればマウスのクリックを遥かに凌ぐ効率を発揮します。

📋 前提条件:まず以下を完了していること

1. このレッスンで学ぶこと


2. 初心者の初めてのターミナル体験

(1) 悩み:白い文字の黒い画面が怖い

小明はWSL2ターミナルを開き、点滅するカーソルのある黒い画面を見ました。何をタイプすればいいのか、Enterを押すと何が起きるのか、終了の仕方さえ分かりませんでした。

(2) 最初のコマンド

先輩エンジニアのボブが言いました。「まず挨拶してみよう。echo "Hello Linux"と入力してEnterを押して。」

BASH
echo "Hello Linux"
# Output: Hello Linux

ターミナルが入力した内容をそのまま返しました — 小明は、ターミナルは会話ウィンドウのようなものだと気づきました:コマンドを入力すると、コンピュータが結果を返してくるのです。

(3) 得られるもの:不安から操作へ

最初のコマンドを覚えた後、小明はdatewhoamicalを試しました。わずか5分で「ターミナルに触るのが怖い」から「ターミナルの出力が読める」ようになりました。


3. 知識ポイント

(1) シェルとターミナル

ターミナルエミュレータは目に見えるウィンドウです — LinuxではGNOME Terminal、WindowsではWindows Terminal、macOSではTerminal.appです。

シェルはターミナル内で動作し、入力されたコマンドを解釈するプログラムです。最も一般的なシェルはbash(Bourne Again Shell)です。

TEXT
Terminal window → Shell (bash) → Operating System

(2) コマンドの基本構文

ほぼすべてのLinuxコマンドはこの構造に従います:

TEXT

COMMAND [OPTIONS] [ARGUMENTS]
構成要素 説明
COMMAND 実行するコマンドの名前 ls
OPTIONS コマンドの動作を変更するオプション(通常-で始まる) -l(長形式)、-a(隠しファイル表示)
ARGUMENTS コマンドの操作対象 ファイル名、ディレクトリ名
TEXT
# Syntax example
ls -la /home
# Command: ls
# Options: -l (long format) and -a (hidden files)
# Argument: /home (directory to list)

(3) Tab自動補完

Tabキーはターミナルで最も便利なキーです。 コマンドやファイル名の一部を入力して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 カーソルより前の単語を削除
💡 ヒント:ターミナルのショートカットはEmacsスタイルに従います — Ctrl+Aは行頭に移動(Emacsと同じ)、Ctrl+Eは行末、Ctrl+Uはカーソルより前をクリア、Ctrl+Kはカーソルより後をクリア、Ctrl+Wは前の単語を削除します。これらの組み合わせを覚えれば、長いコマンドの編集がぐっと速くなります。

(5) ▶ サンプル:基本インタラクティブコマンド

BASH
# 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

出力:

TEXT
Tue 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コマンドのさまざまな使い方

TEXT
# 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補完の練習

TEXT
# 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) ▶ サンプル:画面のクリアと終了

TEXT
# Too much on screen? Clear it
clear

# Or use the shortcut Ctrl + L

# Exit the terminal
exit

# Or press Ctrl + D

(9) ▶ サンプル:コマンドのヘルプを取得

TEXT
# 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) ▶ 総合例:小明の初めてのターミナル冒険

BASH
# 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!

出力:

TEXT
Hello 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に保存されています。


📖 まとめ


📝 練習問題

  1. 基本(難易度 ⭐):ターミナルを開き、echo "Hello Linux"と入力して出力を確認し、datecalで現在の日付とカレンダーを表示する
  2. 中級(難易度 ⭐⭐)man lsでlsコマンドのマニュアルを読み(qで終了)、Tab補完を練習 — cd /と入力後Tabを2回押してディレクトリ一覧を確認する
  3. 上級(難易度 ⭐⭐⭐):日付とカレンダーの両方を表示するシェルエイリアスtodayを作成し、Ctrl + Rでコマンド履歴を検索し、自分が最もよく使う5つのターミナルショートカットをリストアップする
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%