1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🐧 Linuxコマンド基礎講座【第一回】これだけ覚えれば大丈夫!基本操作完全ガイド

1
Posted at

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つから始めてみましょう🌟

次回はパーミッション・ユーザー管理・テキスト処理を解説します!

💬 質問や感想があれば、コメント欄でお気軽にどうぞ!
👍 役に立ったら、いいね&ストックをお願いします!
🎓 ここまで読んでくださって、本当にありがとうございました!


🔗 シリーズ記事

  • 【第一回】基本操作(この記事)
  • 【第二回】パーミッション・ユーザー管理・テキスト処理(近日公開)
  • 【第三回】シェルスクリプト入門(近日公開)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?