はじめに:なぜLinuxなのか?

世界のサーバーの約96%以上がLinuxオペレーティングシステムを使用しています。AWS、Google Cloud、Azureなどの主要クラウドサービスからNetflix、Facebook、Googleのような巨大サービスまで、すべてLinux上で動作しています。サーバー管理者、DevOpsエンジニア、バックエンド開発者にとって、Linuxは必須のスキルです。

1. Linuxとは何か?

1.1 定義と歴史

Linuxは1991年にフィンランドの大学生リーナス・トーバルズ(Linus Torvalds)が開発したオープンソースOSカーネルです。Unixの哲学を基盤に作られ、誰でも無料で使用・修正できます。

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

  • Ubuntu Server:使いやすく、コミュニティが活発。初心者におすすめ。
  • CentOS / Rocky Linux / AlmaLinux:RHEL基盤で安定性に優れる。企業環境で多用。
  • Debian:安定性とセキュリティ重視。Ubuntuの基盤。
  • RHEL:企業向け有料ディストリビューション。プロフェッショナルサポート付き。

1.3 コアコンポーネント

  • カーネル:ハードウェアとソフトウェアの仲介役。プロセス管理、メモリ管理を担当。
  • シェル:ユーザーとカーネル間のインターフェース。Bash、Zshなど。
  • ファイルシステム:データの保存と整理方法。
  • システムユーティリティ:システム管理に必要な基本プログラム。

2. Linuxファイルシステム階層構造(FHS)

2.1 FHSとは?

LinuxはFHS(Filesystem Hierarchy Standard)という標準に従ってディレクトリ構造が決まっています。すべてはルートディレクトリ/から始まります。

2.2 主要ディレクトリ

ディレクトリ用途主な内容
/ルートディレクトリすべてのディレクトリの起点
/bin必須バイナリls, cp, mvなど基本コマンド
/etc設定ファイルシステム・アプリケーション設定
/homeユーザーホーム一般ユーザーの個人ディレクトリ
/var可変データログ、キャッシュ、メールスプール
/tmp一時ファイル再起動時に削除される一時保存領域
/usrユーザープログラムインストールされたソフトウェア
/devデバイスファイルハードウェアデバイスをファイルで表現
/procプロセス情報実行中のプロセスとシステム情報

3. ファイルシステムタイプ

  • ext4:最も広く使われるLinuxファイルシステム。安定で成熟した技術。
  • XFS:大容量ファイルと高いパフォーマンスが必要な環境に最適。
  • Btrfs:スナップショット、圧縮、サブボリュームなど高度な機能を提供。

4. 基本ファイル/ディレクトリコマンド

4.1 ナビゲーションコマンド

# 現在のディレクトリ確認
pwd

# ディレクトリ移動
cd /var/log          # 絶対パスで移動
cd ..                # 親ディレクトリへ
cd ~                 # ホームディレクトリへ

# ディレクトリ内容表示
ls -la               # 隠しファイル含む詳細表示
ls -lh               # 人間が読みやすいサイズ表示

4.2 ファイル/ディレクトリ操作

# ディレクトリ作成
mkdir -p parent/child/grand

# ファイル操作
touch newfile.txt              # 空ファイル作成
cat file.txt                   # ファイル内容表示
tail -f /var/log/syslog        # リアルタイムログ監視

# コピー、移動、削除
cp -r srcdir destdir           # ディレクトリコピー
mv oldname newname             # 名前変更または移動
rm -r directory                # ディレクトリ削除

4.3 ファイル検索

# find - ファイル名で検索
find /var -name "*.log"

# grep - ファイル内容検索
grep -r "pattern" /etc/

5. ファイル権限の基礎

-rw-r--r-- 1 user group 1024 Jan 21 10:00 file.txt

最初の文字:ファイルタイプ(-ファイル、dディレクトリ)

次の9文字:権限(所有者/グループ/その他、各3文字)

  • r(read):読み取り権限(値:4)
  • w(write):書き込み権限(値:2)
  • x(execute):実行権限(値:1)
chmod 755 script.sh    # rwxr-xr-x
chmod 644 file.txt     # rw-r--r--

6. 実習:基本サーバー環境の探索

# システム情報確認
uname -a
cat /etc/os-release

# リソース状態確認
free -h
df -h
uptime

# ネットワーク情報
ip addr
ss -tuln

まとめ

今回はLinuxの基本概念とファイルシステム構造を学びました。次の第2編ではユーザーと権限管理を扱います。