1. 👋 はじめに
「ターミナルの黒い画面が怖い…」
「コマンドって何を打てばいいの?」
そんな方に向けて、Linuxコマンドの基礎をやさしく解説します!
エンジニアとして働くうえで、Linuxコマンドは避けて通れない必須スキルです。DockerやAWS・GitのCLI操作も、Linuxの基礎があってこそスムーズに使えます。
この記事を読めば:
- ✅ ターミナルの基本操作ができる
- ✅ ファイル・ディレクトリの操作ができる
- ✅ よく使うコマンドが身につく
一緒にLinuxをマスターしましょう💪
2. 🐧 Linuxってなに?
LinuxはオープンソースのOSです。サーバーの世界では圧倒的なシェアを誇ります。
🖥️ パソコンのOS
└─ Windows(Microsoft)
└─ macOS(Apple)
└─ Linux(オープンソース)← サーバーの世界はほぼコレ!
☁️ クラウドサーバーのほとんどはLinux
└─ AWS EC2
└─ Google Cloud
└─ DockerコンテナもLinuxベース
macOSはLinuxと同じUnix系なので、macのターミナルでも同じコマンドが使えます!
ターミナルとシェルの違い
🖥️ ターミナル = コマンドを入力する「画面」
🐚 シェル = コマンドを解釈して実行する「プログラム」
よく使うシェル:
└─ bash → Linux・昔のmacの標準
└─ zsh → 最近のmacの標準
└─ sh → 最もシンプルな基本シェル
3. 🗺️ ファイルシステムの構造
Linuxのファイルシステムはツリー構造になっています。
/(ルートディレクトリ・最上位)
├── 🏠 home/ ← ユーザーのホームディレクトリ
│ └── username/
│ ├── Desktop/
│ └── Documents/
├── ⚙️ etc/ ← 設定ファイル
├── 📦 usr/ ← アプリケーション
├── 🔧 bin/ ← 基本コマンド
├── 📋 var/ ← ログファイルなど
└── 🏃 tmp/ ← 一時ファイル
知っておくべきパスの書き方
# memo.txtのパス
# 絶対パス(ルートから始まる完全なパス)
/home/username/Documents/memo.txt
# 相対パス(今いる場所からの相対的なパス)
Documents/memo.txt # 今 /home/username にいる場合
# 特殊なパスの表記
~ → ホームディレクトリ(/home/username と同じ)
. → 現在のディレクトリ
.. → 1つ上のディレクトリ
4. 📍 今どこにいる?:pwd
ターミナルで作業しているときは、「今どこにいるか」をこまめに確認する癖をつけましょう。
pwd
# /home/username
# Print Working Directory の略
5. 📂 ディレクトリを移動する:cd
cd(Change Directory)でディレクトリを移動します。
# ホームディレクトリに移動
cd ~
cd # ~ は省略できる
# 絶対パスで移動
cd /home/username/Documents
# 相対パスで移動
cd Documents
# 1つ上のディレクトリに移動
cd ..
# 2つ上に移動
cd ../..
# 直前にいたディレクトリに戻る(便利!)
# 最初にパスが表示されてから移動します
cd -
よくあるミス🙃
# ❌ スペースを含むフォルダ名はそのまま書けない
cd My Documents # エラー!
# ✅ クォートで囲む
cd "My Documents"
# ✅ またはバックスラッシュでエスケープ
cd My\ Documents
🔓 エスケープとは?
「エスケープ」とは、特別な意味を持つ文字を、ただの文字として扱うための仕組みです。
Linuxのコマンドでは、スペース・!・$・*・& などの記号は特殊文字として扱われます。これらをそのまま入力すると、シェルが「コマンドの区切り」や「特別な操作」と誤解してしまいます。
# スペースはコマンドの「区切り文字」として解釈される
cd My Documents
# → cd "My" というコマンドに "Documents" という引数が渡されたと解釈
# → "My" というディレクトリが見つからずエラー!
# ! はコマンド履歴の展開に使われる特殊文字
echo "Hello!"
# → 環境によってはエラーになることがある
エスケープの3つの方法
① バックスラッシュ(\):直後の1文字だけをエスケープ
cd My\ Documents # スペースをエスケープ
echo Hello\! # ! をエスケープ
② ダブルクォート("):囲んだ範囲をエスケープ
# ただし $ や ` は特殊文字のまま(変数展開される)
cd "My Documents"
echo "Hello!"
③ シングルクォート('):囲んだ範囲を完全にエスケープ
# $ や ` も含めてすべてただの文字として扱う
cd 'My Documents'
echo 'Hello! $USER' # → Hello! $USER(変数展開されない)
3つの使い分け
🔵 バックスラッシュ(\)
└─ 1文字だけエスケープしたいとき
🟡 ダブルクォート(")
└─ スペースを含む文字列を渡したいとき
└─ 変数($USER など)は展開したい場合
🟢 シングルクォート(')
└─ すべての特殊文字を無効にしたいとき
└─ 変数も展開させたくない場合
💡 迷ったらシングルクォートが一番安全!
6. 📋 ファイル・ディレクトリ一覧を見る:ls
ls(List)でファイルとディレクトリの一覧を表示します。
# 基本の使い方
ls
# Desktop Documents Downloads Pictures
# 詳細表示(よく使う!)
ls -l
# drwxr-xr-x 2 user user 4096 Mar 17 10:00 Desktop
# drwxr-xr-x 3 user user 4096 Mar 17 09:00 Documents
# 隠しファイルも表示(.gitignore など)
ls -a
# . .. .gitignore .bashrc Desktop Documents
# 詳細 + 隠しファイルを同時に表示(最もよく使う!)
ls -la
# 人間が読みやすいサイズ表示(K・M・Gで表示)
ls -lh
ls -l の見方
drwxr-xr-x 2 user user 4096 Mar 17 10:00 Desktop
│ │ │ │ │ │ └─ ファイル名
│ │ │ │ │ └─ 更新日時
│ │ │ │ └─ サイズ(バイト)
│ │ │ └─ グループ名
│ │ └─ オーナー(所有者)名
│ └─ ハードリンク数
└─ 種類 + パーミッション(第二回で詳しく解説!)
7. 📁 ディレクトリを作る:mkdir
mkdir(Make Directory)でディレクトリを作成します。
# ディレクトリを作成
mkdir my-project
# 複数まとめて作成
mkdir dir1 dir2 dir3
# 階層ごと一気に作成(-p オプション)
mkdir -p project/src/components
# project/ → src/ → components/ が一気に作られる!
# 確認
ls project/src/
# components
8. 📄 ファイルを作る・タイムスタンプを更新する:touch
touch には2つの役割があります。
① 空のファイルを作成する
# 空のファイルを作成
touch memo.txt
touch index.html style.css app.js
# 確認
ls -l
# -rw-r--r-- 1 user user 0 Mar 17 10:00 memo.txt
② タイムスタンプを更新する
ファイルがすでに存在する場合、touch は中身を変えずに更新日時だけ現在時刻に更新します。
# 現在のタイムスタンプを確認
ls -l memo.txt
# -rw-r--r-- 1 user user 42 Mar 17 09:00 memo.txt
# ↑ 更新日時
# touchでタイムスタンプを更新
touch memo.txt
# 更新後を確認
ls -l memo.txt
# -rw-r--r-- 1 user user 42 Mar 17 10:30 memo.txt
# ↑ 現在時刻に更新された!
タイムスタンプを任意の日時に指定する
# -t オプションで日時を指定(形式:YYYYMMDDhhmm)
touch -t 202603011200 memo.txt
# → 2026年3月1日 12:00 に設定
# 確認
ls -l memo.txt
# -rw-r--r-- 1 user user 42 Mar 1 12:00 memo.txt
💡 touchのユースケース
✅ 空ファイルの作成
→ 設定ファイルやログファイルの雛形を作るとき
✅ タイムスタンプの更新
→ Makefileでビルドの依存関係を管理するとき
(ファイルが「更新された」とみなされ再ビルドが走る)
✅ ファイルの存在確認・保証
→ スクリプト内で「ファイルがなければ作成、あれば何もしない」
という使い方ができる
9. 📖 ファイルの中身を見る:cat・less・head・tail
cat:全内容を表示
# ファイルの中身を表示
cat memo.txt
# 複数ファイルを連結して表示
cat file1.txt file2.txt
# 行番号付きで表示
cat -n memo.txt
less:スクロールしながら表示
大きなファイルを見るときに便利!
less /var/log/syslog
# lessの操作方法
# スペース or f → 次のページ
# b → 前のページ
# /検索語 → 検索
# n → 次の検索結果
# q → 終了
head・tail:先頭・末尾だけ表示
# 先頭10行を表示
head memo.txt
# 先頭5行を表示
head -n 5 memo.txt
# 末尾10行を表示
tail memo.txt
# 末尾をリアルタイムで追跡(ログ監視に便利!)
tail -f /var/log/nginx/access.log
# 追跡を終了するには Ctrl + C を押す!
10. 📋 ファイル・ディレクトリをコピー:cp
cp(Copy)でファイルやディレクトリをコピーします。
# ファイルをコピー
cp memo.txt memo_backup.txt
# 別のディレクトリにコピー
cp memo.txt Documents/
# ディレクトリをコピー(-r オプションが必要!)
cp -r my-project my-project-backup
# コピー前に確認を求める(上書き防止)
cp -i memo.txt Documents/memo.txt
# overwrite Documents/memo.txt? (y/n)
11. 🚚 ファイル・ディレクトリを移動・名前変更:mv
mv(Move)は移動と名前変更を兼ねています。
# ファイルを移動
mv memo.txt Documents/
# ファイル名を変更
mv old_name.txt new_name.txt
# ディレクトリを移動
mv my-project /home/username/projects/
# ディレクトリ名を変更
mv old-folder new-folder
# 上書き前に確認
mv -i source.txt destination.txt
12. 🗑️ ファイル・ディレクトリを削除:rm
rm(Remove)は削除します。⚠️ゴミ箱がなく、即完全削除なので注意!
# ファイルを削除
rm memo.txt
# 複数ファイルを削除
rm file1.txt file2.txt
# ディレクトリを削除(-r オプションが必要)
rm -r my-folder
# 確認なしで強制削除(⚠️ 取り消し不可!)
rm -rf my-folder
# 削除前に確認を求める(おすすめ!)
rm -i memo.txt
# remove memo.txt? (y/n)
⚠️ rm -rf の危険性
# 💀 絶対にやってはいけない
rm -rf / # ルートディレクトリ以下を全削除 → OS破壊
rm -rf /* # 同様に危険
rm -rf ~/ # ホームディレクトリを全削除
# ✅ 削除前は必ず ls で確認する習慣を!
ls my-folder # 中身を確認してから
rm -r my-folder # 削除する
13. 🔍 ファイルを検索する:find・grep
find:ファイルを探す
# カレントディレクトリ以下で名前で検索
find . -name "memo.txt"
# 拡張子で検索
find . -name "*.py"
# ディレクトリだけ検索
find . -type d -name "src"
# ファイルだけ検索
find . -type f -name "*.log"
# 更新日時で検索(3日以内に更新されたファイル)
find . -mtime -3
grep:ファイルの中身を検索
# ファイル内で文字列を検索
grep "エラー" memo.txt
# 大文字・小文字を区別しない
grep -i "error" memo.txt
# 再帰的に検索(ディレクトリ以下全部)
grep -r "TODO" ./src/
# 行番号も表示
grep -n "def " main.py
# 検索結果の前後3行も表示(コンテキスト確認に便利)
grep -C 3 "エラー" app.log
14. ✏️ テキストエディタ:vim・nano
ターミナル上でファイルを編集するエディタです。
nano:初心者向け・シンプル
nano memo.txt
# nanoの操作
# Ctrl + O → 保存
# Ctrl + X → 終了
# Ctrl + W → 検索
vim:高機能・慣れると速い
vim memo.txt
# vimの操作(モードがある!)
# i → 挿入モード(文字を入力できる)
# Esc → ノーマルモードに戻る
# :w → 保存
# :q → 終了
# :wq → 保存して終了
# :q! → 保存せずに強制終了(⬅️ 覚えておくと脱出できる!)
💡 vimのコツ
最初は「i で入力モード → Esc でノーマルモード → :wq で保存終了」
この3つだけ覚えれば最低限使えます!
🚪 コマンドの終了方法まとめ
「抜け方がわからなくてパニックに!」という初心者あるあるを防ぐために、よく使うコマンドの終了方法をまとめておきます。
| コマンド | 終了方法 | 備考 |
|---|---|---|
tail -f |
Ctrl + C |
リアルタイム追跡を終了 |
less |
q |
quit の q |
vim |
:q! |
保存せず終了。保存するなら :wq
|
nano |
Ctrl + X |
変更があれば保存確認あり |
| 実行中のコマンド全般 | Ctrl + C |
強制終了(割り込みシグナル) |
| フリーズしたとき | Ctrl + Z |
一時停止してバックグラウンドへ |
💡 覚え方
止めたいときはまず Ctrl + C を試す!
それで抜けられないときは q や :q! を試す
15. 🔗 便利な機能
パイプ(|):コマンドをつなげる
コマンドの出力を次のコマンドの入力に渡せます。
# ls の結果を grep でフィルタリング
ls -la | grep ".py"
# ログファイルから「ERROR」を含む行だけ表示
cat app.log | grep "ERROR"
# ファイル数を数える
ls | wc -l
リダイレクト(>・>>):出力をファイルに保存
# コマンドの結果をファイルに保存(上書き)
ls -la > file_list.txt
# ファイルに追記(上書きしない)
echo "ログ追記" >> app.log
# エラー出力もファイルに保存
command 2> error.log
# 標準出力とエラー出力を両方保存
command > output.log 2>&1
Tab補完:コマンドを楽に入力
# Tabキーでコマンドやファイル名を補完できる!
cd Doc[Tab] → cd Documents/ に補完される
git com[Tab] → git commit に補完される
# 候補が複数あるときはTabを2回押すと一覧表示
ls D[Tab][Tab]
# Desktop/ Documents/ Downloads/
コマンド履歴:history
# 過去のコマンド一覧を表示
history
# 上矢印キー(↑)で過去のコマンドを遡れる
# Ctrl + R で履歴をインクリメンタル検索
# (よく使うコマンドをすぐに呼び出せる!)
16. 📋 コマンド早見表
場所の確認・移動
pwd # 現在地を表示
cd <パス> # ディレクトリを移動
cd ~ # ホームへ移動
cd .. # 1つ上へ移動
cd - # 直前の場所に戻る
ファイル・ディレクトリ操作
ls # 一覧表示
ls -la # 詳細 + 隠しファイルも表示
mkdir <名前> # ディレクトリ作成
mkdir -p <階層パス> # 階層ごと作成
touch <ファイル名> # 空ファイル作成
cp <元> <先> # コピー
cp -r <元dir> <先> # ディレクトリをコピー
mv <元> <先> # 移動・名前変更
rm <ファイル> # ファイル削除
rm -r <ディレクトリ> # ディレクトリ削除
中身を見る
cat <ファイル> # 全内容を表示
less <ファイル> # スクロールして表示
head -n 10 <ファイル> # 先頭10行
tail -f <ファイル> # 末尾をリアルタイム表示
検索
find . -name "*.py" # ファイルを探す
grep "文字列" <ファイル> # 中身を検索
grep -r "文字列" <ディレクトリ> # 再帰検索
便利機能
<コマンド> | <コマンド> # パイプでつなげる
<コマンド> > ファイル # 結果をファイルに保存
history # コマンド履歴
17. 🎯 まとめ
| コマンド | 覚え方 |
|---|---|
pwd |
Print Working Directory |
cd |
Change Directory |
ls |
List |
mkdir |
Make Directory |
touch |
ファイルに「触る」→作成 |
cat |
concatenate(連結) |
cp |
Copy |
mv |
Move |
rm |
Remove |
grep |
文字列を検索 |
find |
ファイルを探す |
Linuxコマンドは最初は覚えることが多く感じますが、毎日使ううちに自然と身につきます。まずは pwd → ls → cd の3つから始めてみましょう🌟
次回はパーミッション・ユーザー管理・テキスト処理を解説します!
💬 質問や感想があれば、コメント欄でお気軽にどうぞ!
👍 役に立ったら、いいね&ストックをお願いします!
🎓 ここまで読んでくださって、本当にありがとうございました!
🔗 シリーズ記事
- 【第一回】基本操作(この記事)
- 【第二回】パーミッション・ユーザー管理・テキスト処理(近日公開)
- 【第三回】シェルスクリプト入門(近日公開)