「このサーバー、何のLinuxだっけ?」 「カーネルバージョンは?」 「CentOSの何番?Ubuntu何?」 「32ビット?64ビット?」
システム管理者なら誰もが一度は直面する疑問です。
特に、複数のサーバーを管理していたり、引き継いだシステムだったりすると、正確なOS情報の把握は必須です。
この記事では、LinuxのOS情報を確認するすべてのコマンドを、初心者にも分かりやすく、実例付きで解説します。コピペですぐ使える実用的な内容になっています!
クイックリファレンス:目的別コマンド一覧

今すぐ知りたい人のための早見表
# ディストリビューション名とバージョン
cat /etc/os-release
# カーネルバージョン
uname -r
# すべての基本情報
uname -a
# より詳細な情報
hostnamectl
# CentOS/RHEL専用
cat /etc/redhat-release
# Ubuntu/Debian専用
lsb_release -a
これだけ覚えておけば、ほとんどの場面で対応できます!
基本コマンド:これだけは覚えておこう
1. uname コマンド – 最も基本的な確認方法
すべての情報を表示
uname -a
出力例:
Linux server01 5.15.0-91-generic #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
読み方:
Linux → カーネル名
server01 → ホスト名
5.15.0-91-generic → カーネルバージョン
#101-Ubuntu → ビルド情報
x86_64 → ハードウェアアーキテクチャ
GNU/Linux → OS名
オプション別の使い方
# カーネル名のみ
uname -s
# 出力: Linux
# ホスト名のみ
uname -n
# 出力: server01
# カーネルリリース(バージョン)
uname -r
# 出力: 5.15.0-91-generic
# カーネルバージョン(ビルド日時)
uname -v
# 出力: #101-Ubuntu SMP Tue Nov 14 13:30:08 UTC 2023
# マシンアーキテクチャ
uname -m
# 出力: x86_64
# プロセッサタイプ
uname -p
# 出力: x86_64
# ハードウェアプラットフォーム
uname -i
# 出力: x86_64
# OS名
uname -o
# 出力: GNU/Linux
2. /etc/os-release – ディストリビューション情報の決定版
cat /etc/os-release
Ubuntu 22.04 の出力例:
PRETTY_NAME="Ubuntu 22.04.3 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.3 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
CentOS 7 の出力例:
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
特定の値だけ取得:
# ディストリビューション名
grep "^NAME=" /etc/os-release | cut -d'"' -f2
# 出力: Ubuntu
# バージョン
grep "^VERSION_ID=" /etc/os-release | cut -d'"' -f2
# 出力: 22.04
# コードネーム
grep "^VERSION_CODENAME=" /etc/os-release | cut -d'=' -f2
# 出力: jammy
3. hostnamectl – システム情報の統合確認
hostnamectl
出力例:
Static hostname: server01
Icon name: computer-vm
Chassis: vm
Machine ID: 3c4a2b1d8e9f7a6b5c4d3e2f1a0b9c8d
Boot ID: 9f8e7d6c5b4a3291807f6e5d4c3b2a19
Virtualization: kvm
Operating System: Ubuntu 22.04.3 LTS
Kernel: Linux 5.15.0-91-generic
Architecture: x86-64
Hardware Vendor: QEMU
Hardware Model: Standard PC (Q35 + ICH9, 2009)
JSON形式で出力:
hostnamectl --json=pretty
ディストリビューション別の確認方法
Ubuntu/Debian系
lsb_release コマンド
lsb_release -a
出力例:
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 22.04.3 LTS
Release: 22.04
Codename: jammy
オプション:
# ディストリビューターIDのみ
lsb_release -i
# Distributor ID: Ubuntu
# 説明のみ
lsb_release -d
# Description: Ubuntu 22.04.3 LTS
# リリース番号のみ
lsb_release -r
# Release: 22.04
# コードネームのみ
lsb_release -c
# Codename: jammy
# 短縮形式
lsb_release -s -r
# 22.04
古いバージョンの確認
# Debian系の古い方法
cat /etc/debian_version
# 出力例: 11.8
# Ubuntuの場合
cat /etc/lsb-release
RedHat/CentOS/Rocky/AlmaLinux系
専用ファイルの確認
# RedHat系全般
cat /etc/redhat-release
# 出力例: CentOS Linux release 7.9.2009 (Core)
# CentOS専用
cat /etc/centos-release
# 出力例: CentOS Linux release 7.9.2009 (Core)
# Rocky Linux
cat /etc/rocky-release
# 出力例: Rocky Linux release 8.9 (Green Obsidian)
# AlmaLinux
cat /etc/almalinux-release
# 出力例: AlmaLinux release 8.9 (Midnight Oncilla)
システムリリース情報
cat /etc/system-release
# RedHat系のシンボリックリンク
SUSE系
# SUSE Linux
cat /etc/SuSE-release
# openSUSE
cat /etc/os-release | grep PRETTY_NAME
# 出力例: PRETTY_NAME="openSUSE Leap 15.5"
Arch Linux
# Arch Linux
cat /etc/arch-release
# 通常は空ファイル(存在確認のみ)
# バージョン詳細
cat /etc/os-release | grep "PRETTY_NAME"
# 出力例: PRETTY_NAME="Arch Linux"
Alpine Linux
# Alpine Linux
cat /etc/alpine-release
# 出力例: 3.19.0
カーネル情報の詳細確認

カーネルバージョンの確認
# 基本的な確認
uname -r
# 出力例: 5.15.0-91-generic
# より詳細な情報
cat /proc/version
# 出力例: Linux version 5.15.0-91-generic (buildd@lcy02-amd64-046) (gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0, GNU ld (GNU Binutils for Ubuntu) 2.38)
カーネルパラメータの確認
# 起動時のカーネルパラメータ
cat /proc/cmdline
# 出力例: BOOT_IMAGE=/boot/vmlinuz-5.15.0-91-generic root=UUID=1234-5678 ro quiet splash
# 現在のカーネル設定
sysctl -a | head -20
カーネルモジュールの確認
# ロード済みモジュール一覧
lsmod | head -10
# 特定モジュールの情報
modinfo ext4
アーキテクチャとビット数の確認
CPUアーキテクチャ
# アーキテクチャ確認
arch
# 出力例: x86_64
# または
uname -m
# 出力例: x86_64
# 詳細なCPU情報
lscpu
lscpu の出力例:
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Vendor ID: GenuineIntel
Model name: Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz
32ビット or 64ビットの判定
# 方法1: getconf
getconf LONG_BIT
# 出力: 64
# 方法2: file コマンド
file /bin/bash
# 出力例: /bin/bash: ELF 64-bit LSB pie executable, x86-64
# 方法3: dpkg(Debian系のみ)
dpkg --print-architecture
# 出力: amd64
システム情報の総合確認
/proc/version の活用
cat /proc/version
情報の解析:
Linux version 5.15.0-91-generic # カーネルバージョン
(buildd@lcy02-amd64-046) # ビルドホスト
(gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0) # コンパイラ
#101-Ubuntu SMP # ビルド番号とタイプ
Tue Nov 14 13:30:08 UTC 2023 # ビルド日時
systemd を使った確認
# systemdのバージョン
systemctl --version
# システムの起動時間
systemd-analyze
# ブート時間の詳細
systemd-analyze blame | head -10
より詳細なハードウェア情報
# DMIデータ(要root権限)
sudo dmidecode -s system-product-name
# PCIデバイス
lspci | head -5
# USBデバイス
lsusb
# ブロックデバイス
lsblk
スクリプト化:便利な確認スクリプト
OS情報を一括取得するスクリプト
#!/bin/bash
# os_info.sh - システム情報一括取得スクリプト
echo "================================================"
echo " システム情報サマリー"
echo "================================================"
# ホスト名
echo -n "ホスト名: "
hostname
# OS情報
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "OS: $PRETTY_NAME"
echo "ディストリビューション: $ID"
echo "バージョン: $VERSION_ID"
fi
# カーネル
echo -n "カーネル: "
uname -r
# アーキテクチャ
echo -n "アーキテクチャ: "
uname -m
# ビット数
echo -n "ビット数: "
getconf LONG_BIT
# CPU情報
echo -n "CPU: "
lscpu | grep "Model name" | cut -d':' -f2 | xargs
# メモリ
echo -n "メモリ: "
free -h | awk '/^Mem:/ {print $2}'
# ディスク
echo "ディスク使用状況:"
df -h / | tail -1 | awk '{print " / : " $3 " / " $2 " (" $5 " 使用)"}'
# 起動時間
echo -n "起動時間: "
uptime -p
echo "================================================"
特定の情報だけを取得する関数
# .bashrc に追加して使える便利関数
# OS名とバージョンを取得
function osinfo() {
if [ -f /etc/os-release ]; then
. /etc/os-release
echo "$NAME $VERSION"
else
echo "Unknown OS"
fi
}
# カーネルバージョンを簡潔に表示
function kernel() {
uname -r | cut -d'-' -f1
}
# ディストリビューションの判定
function distro() {
if [ -f /etc/os-release ]; then
. /etc/os-release
echo $ID
elif [ -f /etc/redhat-release ]; then
echo "redhat"
elif [ -f /etc/debian_version ]; then
echo "debian"
else
echo "unknown"
fi
}
トラブルシューティング

コマンドが見つからない場合
lsb_release がない
# Ubuntu/Debian
sudo apt-get install lsb-release
# CentOS/RHEL
sudo yum install redhat-lsb-core
# Fedora
sudo dnf install redhat-lsb-core
hostnamectl がない
# systemdがない古いシステムの場合
# 代替コマンドを使用
hostname
cat /etc/hostname
ファイルが存在しない場合
# /etc/os-release がない場合の代替確認
for file in /etc/*-release /etc/*_version; do
[ -f "$file" ] && echo "$file:" && cat "$file"
done
権限エラーの対処
# dmidecode などroot権限が必要なコマンド
sudo dmidecode -s system-product-name
# または一般ユーザーで確認可能な代替
cat /sys/class/dmi/id/product_name 2>/dev/null || echo "権限不足"
Docker/コンテナ環境での確認
コンテナ内からの確認
# コンテナ環境の検出
if [ -f /.dockerenv ]; then
echo "Docker コンテナ内です"
fi
# または
if grep -q docker /proc/1/cgroup 2>/dev/null; then
echo "Docker コンテナ内です"
fi
# コンテナのOS確認
cat /etc/os-release
ホストOSの確認(コンテナから)
# 通常はコンテナからホストOSは確認できません
# セキュリティ上の理由から隔離されています
WSL(Windows Subsystem for Linux)での確認
# WSLバージョンの確認
cat /proc/version | grep -i microsoft
# WSL2かどうかの判定
if grep -qi microsoft /proc/version; then
if grep -qi "WSL2" /proc/version; then
echo "WSL2 環境です"
else
echo "WSL1 環境です"
fi
fi
リモートサーバーの確認
SSH経由でのワンライナー確認
# 基本情報を一行で取得
ssh user@server 'cat /etc/os-release | grep PRETTY_NAME'
# 複数サーバーの一括確認
for server in server1 server2 server3; do
echo -n "$server: "
ssh $server 'grep PRETTY_NAME /etc/os-release 2>/dev/null | cut -d= -f2'
done
Ansible での確認
# OS情報を収集するPlaybook
---
- hosts: all
tasks:
- name: OS情報を収集
debug:
msg: "{{ ansible_distribution }} {{ ansible_distribution_version }}"
まとめ:状況に応じた最適なコマンドの選択
Linux のOS情報確認は、用途に応じて適切なコマンドを選ぶことが重要です。
覚えておくべき基本コマンド:
✅ 万能型
cat /etc/os-release
– 最も汎用的uname -a
– カーネル中心の情報hostnamectl
– systemd環境での統合情報
✅ ディストリビューション別
- Ubuntu/Debian:
lsb_release -a
- RHEL系:
cat /etc/redhat-release
- 共通:
/etc/os-release
✅ 詳細情報
- カーネル:
uname -r
- アーキテクチャ:
arch
またはuname -m
- ビット数:
getconf LONG_BIT
✅ スクリプト化
- 複数の確認を自動化
- 定期的な情報収集
- 障害時の迅速な確認
これらのコマンドをマスターすれば、どんなLinux環境でも迅速に情報を把握できます。
日々の運用に、ぜひ活用してください!
Master Your Linux! 🐧
チートシート(印刷用):
# ===== 基本確認 =====
cat /etc/os-release # OS情報
uname -a # システム全般
hostnamectl # 統合情報
# ===== ディストリビューション =====
lsb_release -a # Ubuntu/Debian
cat /etc/redhat-release # RHEL/CentOS
cat /etc/alpine-release # Alpine
# ===== カーネル =====
uname -r # バージョン
cat /proc/version # 詳細情報
# ===== アーキテクチャ =====
arch # CPU種別
getconf LONG_BIT # 32/64ビット
lscpu # CPU詳細
コメント