Linuxサーバーの基本操作
Linuxサーバーの概要
企業のITインフラにおいて、Linuxサーバーはファイアウォール、Webサーバー、データベースサーバー、プロキシサーバーなど多くの場面で利用されています。ひとり情シスでも、ネットワーク機器のアップデートやクラウド環境の管理など、Linuxの基本操作スキルが必要になる機会は確実に増えています。
主要ディストリビューションの選定
| ディストリビューション | 系統 | パッケージ管理 | 特徴 | 適している場面 |
|---|---|---|---|---|
| Red Hat Enterprise Linux (RHEL) | Red Hat系 | yum/dnf (RPM) | 商用サポートあり。長期保守(最長10年) | 業務基幹システム、商用サポートが必要な環境 |
| AlmaLinux / Rocky Linux | Red Hat系 | yum/dnf (RPM) | CentOS後継。RHEL互換で無料 | RHEL互換が必要だがコストを抑えたい場合 |
| Ubuntu Server | Debian系 | apt (DEB) | LTS版で5年間サポート。情報が豊富 | クラウド環境、Docker/Kubernetes基盤 |
| Debian | Debian系 | apt (DEB) | 高い安定性。コミュニティ運営 | 安定性重視のサーバー環境 |
| Amazon Linux | Red Hat系 | yum/dnf | AWS環境に最適化 | AWS上のサーバー |
ポイント:中小企業でLinuxを選定する場合、日本語の情報量とサポート体制が重要です。Ubuntu ServerかAlmaLinux/Rocky Linuxが情報量の面で有利です。商用サポートが必要な場合はRHELを検討しましょう。
基本コマンド
| カテゴリ | コマンド | 説明 | 使用例 |
|---|---|---|---|
| ファイル操作 | ls | ディレクトリ内容を表示 | ls -la /var/log/ |
cp | ファイルコピー | cp -r /etc/nginx /etc/nginx.bak | |
mv | ファイル移動/名前変更 | mv old.conf new.conf | |
rm | ファイル削除 | rm -rf /tmp/old_data/ | |
| テキスト操作 | cat | ファイル内容を表示 | cat /etc/hostname |
less | ページ送りで表示 | less /var/log/syslog | |
grep | テキスト検索 | grep "error" /var/log/syslog | |
| システム情報 | df | ディスク使用量 | df -h(人間が読みやすい形式) |
free | メモリ使用量 | free -h | |
uname | カーネル情報 | uname -a | |
| ネットワーク | ip | ネットワーク設定の確認・変更 | ip addr show |
ss | ソケット状態の表示 | ss -tlnp(リスニングポート一覧) | |
ping | 疎通確認 | ping -c 4 192.168.1.1 |
⚠️ 注意
rm -rfコマンドは復元不可能な削除を行います。特にsudo rm -rf /はシステム全体を破壊するため、絶対に実行しないでください。削除コマンドの実行前には必ず対象パスを確認し、重要なファイルは事前にバックアップを取りましょう。
パッケージ管理
| 操作 | apt(Debian/Ubuntu) | dnf/yum(RHEL/AlmaLinux) |
|---|---|---|
| パッケージ一覧の更新 | sudo apt update | sudo dnf check-update |
| パッケージのインストール | sudo apt install nginx | sudo dnf install nginx |
| パッケージのアップグレード | sudo apt upgrade | sudo dnf upgrade |
| パッケージの削除 | sudo apt remove nginx | sudo dnf remove nginx |
| パッケージの検索 | apt search nginx | dnf search nginx |
| インストール済み一覧 | dpkg -l | rpm -qa |
systemctlによるサービス管理
systemctlはsystemdのサービス管理コマンドで、現在の主要ディストリビューションすべてで使用されます。
| コマンド | 説明 |
|---|---|
systemctl start nginx | サービスを起動 |
systemctl stop nginx | サービスを停止 |
systemctl restart nginx | サービスを再起動 |
systemctl reload nginx | 設定を再読み込み(サービスを止めずに) |
systemctl status nginx | サービスの状態を確認 |
systemctl enable nginx | OS起動時に自動起動する設定 |
systemctl disable nginx | 自動起動を無効化 |
systemctl is-active nginx | サービスが稼働中か確認 |
systemctl list-unit-files --type=service | 全サービスの一覧と状態 |
cronによるタスクスケジューリング
cronは定期的なタスク実行を自動化するデーモンです。
📋 具体例
crontab の書式:分 時 日 月 曜日 コマンド
# 毎日午前3時にバックアップスクリプトを実行
0 3 * * * /opt/scripts/backup.sh >> /var/log/backup.log 2>&1
# 毎週月曜日の午前6時にディスク使用率をメール通知
0 6 * * 1 df -h | mail -s "Disk Report" admin@example.co.jp
# 毎月1日の午前0時にログローテーション
0 0 1 * * /usr/sbin/logrotate /etc/logrotate.conf
# 5分ごとに死活監視スクリプトを実行
*/5 * * * * /opt/scripts/healthcheck.sh
crontabの編集:crontab -e
crontabの確認:crontab -l
ユーザーとパーミッション管理
| コマンド | 説明 | 使用例 |
|---|---|---|
useradd | ユーザー作成 | sudo useradd -m -s /bin/bash tanaka |
passwd | パスワード設定 | sudo passwd tanaka |
usermod | ユーザー変更 | sudo usermod -aG sudo tanaka(sudoグループに追加) |
userdel | ユーザー削除 | sudo userdel -r tanaka(ホームディレクトリも削除) |
chmod | パーミッション変更 | chmod 755 script.sh |
chown | 所有者変更 | sudo chown -R www-data:www-data /var/www/ |
Linuxのパーミッションは3桁の数字で表現されます。
| 数値 | 権限 | 記号 |
|---|---|---|
| 4 | 読み取り(Read) | r |
| 2 | 書き込み(Write) | w |
| 1 | 実行(Execute) | x |
例:chmod 755 = 所有者(rwx=7)、グループ(r-x=5)、その他(r-x=5)
ひとり情シスの視点:Linuxの操作に慣れていない場合、まずは仮想マシンやWSL2(Windows Subsystem for Linux)で練習環境を作りましょう。いきなり本番サーバーで操作するのは危険です。基本コマンドの操作に慣れてから、実機の管理に移行してください。
✅ 完了済み