この内容は古いバージョンです。最新バージョンを表示するには、戻るボタンを押してください。
バージョン:10
ページ更新者:ぼうず
更新日時:2026-06-11 07:12:00

タイトル: Linux
SEOタイトル: Linux 入門 — カーネル / ディストリビューション・ファイルシステム・シェル・基本コマンド

この記事の要点
  • Linux は 1991 年に Linus Torvalds が開発したオープンソースの Unix 系 OS カーネル。GPL ライセンス
  • ディストリビューション: Ubuntu / Debian / CentOS / RHEL / Rocky / Alma / Arch / Alpine 等。カーネル + ツール群 + パッケージマネージャをまとめたもの
  • ファイルシステム階層: /etc(設定)/ /var(可変データ・ログ)/ /home(ユーザー)/ /usr(ユーザープログラム)/ /tmp(一時)
  • シェル: bash(デフォルト)/ zsh(macOS デフォルト)/ fish(モダン)。SSH でリモート接続
  • パッケージマネージャ: apt(Debian/Ubuntu)/ dnf / yum(RHEL系)/ pacman(Arch)/ zypper(SUSE)

Linux とは

Linux は、1991 年にフィンランドの大学生 Linus Torvalds が個人プロジェクトとして開発を始めた、Unix 系のオープンソース OS カーネルです。GPL ライセンスのもと世界中の開発者が貢献し、現在は最もよく使われるサーバー OS となっています。

厳密には「Linux」はカーネル(OS の中核部分)の名前で、利用者が触る OS はLinux カーネル + GNU ツール + 各種ソフトウェアをまとめたディストリビューションです。GNU/Linux と呼ばれることもあります。

主要ディストリビューション

系統ディストリビューション特徴・用途
Debian 系Debian / Ubuntu / Linux Mintapt パッケージ、デスクトップ・サーバー両方で普及
RHEL 系RHEL / CentOS / Rocky Linux / Alma Linux / Fedoradnf/yum、エンタープライズサーバー定番
Arch 系Arch Linux / Manjaropacman、ローリングリリース、上級者向け
SUSE 系openSUSE / SLESzypper、ドイツ・欧州で多い
軽量AlpineDocker イメージで定番、apk、5MB 程度
その他Gentoo、Slackware、NixOS特殊用途・思想的なもの

ファイルシステム階層 (FHS)

ディレクトリ意味
/ルートディレクトリ全ての起点
/bin基本コマンド(ls、cp 等)/usr/bin に統合される傾向
/sbin管理者用コマンドfdisk、mkfs
/etcシステム設定ファイル/etc/passwd、/etc/nginx/
/var可変データ(ログ、メール、DB)/var/log、/var/lib
/homeユーザーのホームディレクトリ/home/alice
/rootroot のホーム
/usrユーザープログラム・ライブラリ/usr/local/bin
/tmp一時ファイル(再起動で消える)
/procカーネル情報(仮想 FS)/proc/cpuinfo
/sysカーネル・デバイス情報/sys/class/
/devデバイスファイル/dev/sda、/dev/null
/optサードパーティアプリ/opt/google

基本コマンド

# 移動・閲覧
pwd                    # 現在地表示
ls                     # 一覧
ls -la                 # 詳細・隠しファイル含む
cd /var/log            # 移動
cd ~                   # ホームへ
cd -                   # 直前のディレクトリへ

# ファイル操作
cp file.txt copy.txt              # コピー
cp -r dir1 dir2                   # ディレクトリコピー
mv old.txt new.txt                # 名前変更・移動
rm file.txt                       # 削除
rm -rf dir                        # ディレクトリ削除(注意!)
touch newfile.txt                 # 空ファイル作成
mkdir -p path/to/dir              # ディレクトリ作成

# 表示
cat file.txt                      # 全内容
less file.txt                     # ページ送りで閲覧
head -n 20 file.txt               # 先頭 20 行
tail -n 50 file.txt               # 末尾 50 行
tail -f /var/log/syslog           # リアルタイム監視

# 検索
grep "error" /var/log/syslog      # 文字列検索
grep -r "TODO" .                  # ディレクトリ再帰検索
find / -name "*.conf" 2>/dev/null # ファイル名検索
find . -mtime -7                  # 7 日以内更新

# パイプとリダイレクト
ls -la | grep "^d"                # ディレクトリだけ
ps aux | grep nginx               # nginx プロセス
cat file.txt | wc -l              # 行数
echo "hello" > out.txt            # 上書き
echo "world" >> out.txt           # 追記

ファイル権限と所有者

# 権限表示の意味
# -rwxr-xr-- 1 alice users 1234 May 17 10:00 file.txt
#  ↑↑↑↑↑↑↑↑↑     所有者:alice グループ:users
# タイプ(-/d/l)
#  所有者: rwx (読/書/実行)
#     グループ: r-x
#        その他: r--

# 権限変更
chmod 755 script.sh               # 数値指定 (rwx=7, rx=5)
chmod +x script.sh                # 実行権限追加
chmod -R 644 *.txt                # 再帰

# 所有者変更
chown alice:users file.txt
chown -R alice:users /home/alice

# 数値の意味
# 4 = r (読)
# 2 = w (書)
# 1 = x (実行)
# 7 = rwx, 6 = rw-, 5 = r-x, 4 = r--

# 特殊権限
# 4xxx = SUID(実行時に所有者権限)
# 2xxx = SGID(実行時にグループ権限)
# 1xxx = Sticky bit(/tmp 等)

パッケージ管理

# Debian / Ubuntu (apt)
sudo apt update                   # パッケージリスト更新
sudo apt upgrade                  # 全パッケージ更新
sudo apt install nginx            # インストール
sudo apt remove nginx             # アンインストール
sudo apt search keyword           # 検索
apt list --installed              # インストール済一覧

# RHEL / CentOS / Rocky (dnf, 旧 yum)
sudo dnf update
sudo dnf install nginx
sudo dnf remove nginx
sudo dnf search keyword
sudo dnf info nginx

# Arch (pacman)
sudo pacman -Syu                  # 更新
sudo pacman -S nginx              # インストール
sudo pacman -R nginx              # 削除
sudo pacman -Ss keyword           # 検索

# Alpine (apk)
sudo apk update
sudo apk add nginx
sudo apk del nginx

systemd(サービス管理)

# サービス操作
sudo systemctl start nginx        # 起動
sudo systemctl stop nginx         # 停止
sudo systemctl restart nginx      # 再起動
sudo systemctl reload nginx       # 設定再読込
sudo systemctl status nginx       # 状態確認

# 自動起動
sudo systemctl enable nginx       # 起動時に自動起動 ON
sudo systemctl disable nginx      # OFF
systemctl is-enabled nginx        # 確認

# 一覧
systemctl list-units --type=service
systemctl list-unit-files

# ログ (journald)
sudo journalctl -u nginx          # nginx のログ
sudo journalctl -u nginx -f       # リアルタイム
sudo journalctl --since "1 hour ago"

SSH(リモート接続)

# 接続
ssh user@server.example.com
ssh -p 2222 user@server           # ポート指定
ssh -i ~/.ssh/key.pem user@host   # 鍵指定

# 公開鍵認証セットアップ
ssh-keygen -t ed25519              # 鍵ペア生成
ssh-copy-id user@server            # 公開鍵を送る

# ~/.ssh/config に登録すると楽
cat >> ~/.ssh/config <<EOF
Host prod
    HostName server.example.com
    User alice
    Port 2222
    IdentityFile ~/.ssh/id_ed25519
EOF
ssh prod

# ファイル転送
scp file.txt user@server:/home/user/
scp -r dir user@server:/home/user/
rsync -avz dir/ user@server:/home/user/dir/

シェル比較

シェル特徴
bashLinux 標準、POSIX 互換、最も普及
zshmacOS 標準、補完強力、Oh My Zsh で拡張
fishシンタックスハイライト・補完がデフォルトで強力
sh / dash軽量、POSIX 純正、スクリプト用

FAQ

Q: Linux と Unix の違いは?
A: Unix は 1969 年 AT&T で開発された OS(商用、System V、BSD 系)。Linux は Unix の動作を真似た無料のクローン。macOS は BSD 系 Unix の派生。

Q: どのディストリビューションを学ぶべき?
A: 初心者は Ubuntu(情報量多い)。サーバー実務は Rocky / RHEL。Docker 内では Alpine。最初の 1 つに慣れれば他もすぐ移行できます。

Q: WSL とは?
A: Windows Subsystem for Linux。Windows 上で Linux カーネルを動かす仕組み。WSL2 は実 Linux カーネルを軽量 VM で動かすので、ほぼ実機と同じ。

Q: vi / vim が分からない
A: i で挿入モード、Esc でコマンドモード、:wq で保存終了、:q! で破棄終了。これだけ覚えれば最低限なんとかなります。

📸 参考画像

※ 旧バージョンから引き継いだ参考画像です。手順・図解の補助としてご覧ください。

参考画像