Linux初心者の方が最初に戸惑うのが「同じLinuxなのになぜコマンドが違うの?」という疑問です。Ubuntu、CentOS、Arch Linuxなど、ディストリビューションによって使用するコマンドが異なることがあり、これが初心者の学習を困難にしています。
私自身、初めてCentOSサーバーを触った時、Ubuntuで慣れ親しんだapt
コマンドが使えず、「パッケージをインストールできない!」と焦った経験があります。この記事では、そんな初心者の方が迷わないよう、主要なディストリビューション別のコマンドを実用的な観点から解説します。
なぜディストリビューションでコマンドが違うのか
Linuxディストリビューションは、Linuxカーネルを中心に様々なソフトウェアを組み合わせて作られています。各ディストリビューションが独自の哲学や目的を持っているため、以下のような違いが生まれます:
- パッケージ管理システム:ソフトウェアのインストール・管理方法
- システム管理ツール:サービス管理や設定方法
- デフォルト設定:初期状態での動作や配置
理解しておくべき主要な系統は以下の通りです:
- Debian系:Ubuntu、Debian、Linux Mint など
- RHEL系:CentOS、Rocky Linux、Fedora など
- Arch系:Arch Linux、Manjaro など
パッケージ管理コマンドの違い
ソフトウェアのインストール・アップデートは日常的に行う作業です。ディストリビューション別の基本コマンドを押さえましょう。
Ubuntu/Debian系(APTパッケージ管理)
# パッケージ一覧の更新
sudo apt update
# システムのアップグレード
sudo apt upgrade
# パッケージのインストール
sudo apt install nginx
# パッケージの削除
sudo apt remove nginx
# パッケージの検索
apt search nginx
RHEL/CentOS/Rocky/AlmaLinux系(DNF/YUMパッケージ管理)
# システムの更新(RHEL 8以降、CentOS 8以降、Rocky Linux、AlmaLinux)
sudo dnf update
# パッケージのインストール
sudo dnf install nginx
# パッケージの削除
sudo dnf remove nginx
# パッケージの検索
dnf search nginx
# インストール済みパッケージの確認
dnf list installed | grep nginx
# パッケージ情報の表示
dnf info nginx
# 【注意】RHEL 7/CentOS 7以前の場合はyumを使用
# sudo yum update
# sudo yum install nginx

Arch系(Pacmanパッケージ管理)
# システムの更新
sudo pacman -Syu
# パッケージのインストール
sudo pacman -S nginx
# パッケージの削除
sudo pacman -R nginx
# パッケージの検索
pacman -Ss nginx
システム管理コマンド
Webサーバーやデータベースなどのサービス管理は、サーバー運用において必須のスキルです。
サービス管理(systemctl)
現代のLinuxディストリビューションは多くがsystemdを採用しているため、以下のコマンドは共通して使用できます:
# サービスの開始
sudo systemctl start nginx
# サービスの停止
sudo systemctl stop nginx
# サービスの再起動
sudo systemctl restart nginx
# サービスの状態確認
sudo systemctl status nginx
# サービスの自動起動設定
sudo systemctl enable nginx
# サービスの自動起動無効化
sudo systemctl disable nginx
ログの確認
# システムログの確認(systemd環境)
sudo journalctl
# 特定サービスのログ確認
sudo journalctl -u nginx
# リアルタイムでログを表示
sudo journalctl -f
# 従来のログファイル確認
sudo tail -f /var/log/messages
sudo tail -f /var/log/syslog # Debian系
ネットワーク関連コマンド
サーバー運用やトラブルシューティングで頻繁に使用するネットワークコマンドです。
基本的なネットワーク確認
# IPアドレスの確認
ip addr show
# または
ifconfig
# ネットワーク接続の確認
ping google.com
# DNSの確認
nslookup google.com
# または
dig google.com
# ポート接続の確認
telnet example.com 80
# または
nc -zv example.com 80
ファイアウォール設定
# Ubuntu系(ufw)
sudo ufw enable
sudo ufw allow 22
sudo ufw allow 80
sudo ufw status
# CentOS系(firewalld)
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo firewall-cmd --list-all
ファイル・ディレクトリ操作
日常的な作業で使用する基本コマンドは、どのディストリビューションでも共通です。
基本操作
# ディレクトリの移動
cd /var/www/html
# ファイル・ディレクトリの一覧表示
ls -la
# ファイルの内容表示
cat /etc/hostname
less /var/log/messages
# ファイルの検索
find / -name "*.conf" 2>/dev/null
grep -r "error" /var/log/
# 権限の変更
sudo chmod 755 /var/www/html
sudo chown www-data:www-data /var/www/html
トラブルシューティングでよく使うコマンド
問題が発生した時に状況を把握するためのコマンドです。
システム状況の確認
# CPU・メモリ使用状況
top
htop # より見やすい(要インストール)
# ディスク使用量
df -h
du -sh /var/log/*
# プロセスの確認
ps aux | grep nginx
pgrep nginx
# ポートの使用状況
sudo netstat -tulpn
# または
sudo ss -tulpn
ログ分析
# エラーログの確認
sudo grep -i error /var/log/messages
sudo grep -i error /var/log/syslog
# アクセスログの分析
sudo tail -f /var/log/nginx/access.log
sudo grep "404" /var/log/nginx/access.log

じゅんち8の失敗談
あるとき、WordPressサイトが突然表示されなくなりました。焦ってあれこれ設定を変更する前に、まずsudo systemctl status nginx
でサービス状況を確認し、sudo journalctl -u nginx
でログを見ることで、設定ファイルの文法エラーが原因だと素早く特定できました。基本的な確認コマンドを知っていることの重要性を実感した瞬間です。
初心者が覚えるべき優先順位
すべてのコマンドを一度に覚える必要はありません。以下の順序で習得することをおすすめします:
優先度:高
- パッケージ管理:
apt
/dnf
(旧yum
)/pacman
の基本操作 - サービス管理:
systemctl
の start/stop/status - ファイル操作:
ls
、cd
、cat
、chmod
- ログ確認:
journalctl
、tail
優先度:中
- ネットワーク:
ping
、ip addr
、ss
- システム状況:
top
、df
、ps
- 検索・分析:
grep
、find
優先度:低(慣れてから)
- 高度なネットワーク:
tcpdump
、iptables
- システム最適化:
cron
、rsync
- セキュリティ:
fail2ban
、ufw
/firewalld
【補足】CentOS Streamとは?
CentOS StreamはRHELの「アップストリーム」として位置づけられており、次期RHELバージョンの新機能が先行投入される開発プラットフォームです。
- 開発フロー: Fedora → CentOS Stream → RHEL
- 適した用途: 開発・テスト環境、CI/CDパイプライン、新機能の早期評価
- 本番環境: Red Hat公式では非推奨(安定性重視ならRHEL/Rocky Linux/AlmaLinux)
- 例外: Meta(Facebook)のような高度な技術力を持つ組織は採用例あり
まとめ
Linuxディストリビューション別のコマンドの違いは、初心者にとって混乱の元ですが、パッケージ管理システムの違いを理解することで整理できます。最も重要なのは以下の点です:
- 使用しているディストリビューションを把握する(
cat /etc/os-release
で確認) - パッケージ管理コマンドの違いを理解する
- 基本的なシステム管理コマンドから習得する
- トラブル時の確認手順を身につける
実際の運用では、一つのディストリビューションに慣れてから他に移行することが多いため、まずは使用頻度の高いコマンドから確実に習得することをおすすめします。コマンドラインに慣れることで、Linuxサーバーの運用がより安全で効率的になります。
今回紹介したコマンドは、実際のサーバー運用で頻繁に使用するものばかりです。少しずつでも実際に試してみて、Linuxの世界をより深く理解していってください。
じゅんち8の実体験
初めてCentOSを触った時、
apt install
を何度も打ち込んで「コマンドが見つかりません」エラーに遭遇しました。パッケージ管理システムの違いを理解するまで、基本的な作業すら進められず苦労した記憶があります。