「このサーバーの OS とバージョンは?」と聞かれたときに使うコマンドをまとめます。まず cat /etc/os-release を打てば、ディストリビューションの名前とバージョンが分かります。
この記事で分かること
- OS のバージョンを確かめるコマンドと、出力のどの行を見ればよいか
- OS の版とカーネルの版(
uname -r)の違いと、報告に書く行 - シェルスクリプトで OS を判定する書き方
検証環境
- OS: AlmaLinux 9.8 (Olive Jaguar)(VirtualBox 7.2.20 上の仮想マシン。ホスト名 web01 は検証用の名前。作り方はAlmaLinux 9インストール手順|VirtualBoxで練習機を作る)
- カーネル: 5.14.0-687.53.1.el9_8.x86_64
- コマンドの版: systemd 252(hostnamectl)/GNU coreutils 8.32(uname)/RPM 4.16.1.3/GNU bash 5.1.8
- 取得日: 2026年10月5日(記事中の出力はすべてこの環境で実行したもの。Machine ID と Boot ID は伏せ字)
結論|まず cat /etc/os-release を打つ
systemd のマニュアル os-release(5) は、/etc/os-release と /usr/lib/os-release に「OS を識別するデータ」が入ると定めています。
[opuser@web01 ~]$ cat /etc/os-release
NAME="AlmaLinux"
VERSION="9.8 (Olive Jaguar)"
ID="almalinux"
ID_LIKE="rhel centos fedora"
VERSION_ID="9.8"
PLATFORM_ID="platform:el9"
PRETTY_NAME="AlmaLinux 9.8 (Olive Jaguar)"
ANSI_COLOR="0;34"
LOGO="fedora-logo-icon"
CPE_NAME="cpe:/o:almalinux:almalinux:9::baseos"
HOME_URL="https://almalinux.org/"
DOCUMENTATION_URL="https://wiki.almalinux.org/"
BUG_REPORT_URL="https://bugs.almalinux.org/"
ALMALINUX_MANTISBT_PROJECT="AlmaLinux-9"
ALMALINUX_MANTISBT_PROJECT_VERSION="9.8"
REDHAT_SUPPORT_PRODUCT="AlmaLinux"
REDHAT_SUPPORT_PRODUCT_VERSION="9.8"
SUPPORT_END=2032-06-01
報告に書くなら、os-release(5) で「利用者に見せる名前」とされる PRETTY_NAME の1行で伝わります。数字だけ欲しいときは VERSION_ID(9.8)です。
OS のバージョン確認が要る3つの場面
- 作業前に、手順書の対象 OS と合っているかを見る: 「AlmaLinux 9 で確認済み」の手順書なら、目の前のサーバーが 9 系かを先に確かめます(手順書で新人が見落としがちな5つのポイント)。
- 報告書やチケットに書く: 作業記録や問い合わせに OS 名と版を添えると、読む人が環境を取り違えにくくなります。
- ソフトの入れ方を選ぶ: AlmaLinux の公式リリースノートは
dnf、Ubuntu Server の公式ドキュメントはaptを使います。
OS 確認コマンドの早見表
AlmaLinux 9.8 での結果つきです。
| コマンド | 分かること | この環境での結果 |
|---|---|---|
cat /etc/os-release | OS 名・版・系統(ID_LIKE) | 表示された |
hostnamectl | ホスト名・OS 名・カーネル・仮想化の有無 | 表示された |
cat /etc/redhat-release | OS 名と版の1行 | AlmaLinux release 9.8 (Olive Jaguar) |
rpm -q almalinux-release | os-release などを入れているパッケージの版 | almalinux-release-9.8-1.el9.x86_64 |
uname -r | 動いているカーネルの版(OS の版ではない) | 5.14.0-687.53.1.el9_8.x86_64 |
lsb_release -a | ディストリビューションの情報 | command not found(入っていなかった) |
実行例と出力の読み方
/etc/os-release は /usr/lib/os-release への近道
[opuser@web01 ~]$ ls -l /etc/os-release
lrwxrwxrwx. 1 root root 21 May 19 16:33 /etc/os-release -> ../usr/lib/os-release
実体は /usr/lib/os-release でした。os-release(5) も、/etc 側を /usr/lib 側への相対リンクにし、読むときは /etc 側を優先して、無いときだけ /usr/lib 側を見る、と定めています。
hostnamectl は Operating System と Kernel の2行を見る
[opuser@web01 ~]$ hostnamectl
Static hostname: web01
Icon name: computer-vm
Chassis: vm 🖴
Machine ID: xxxxxxxx…
Boot ID: xxxxxxxx…
Virtualization: oracle
Operating System: AlmaLinux 9.8 (Olive Jaguar)
CPE OS Name: cpe:/o:almalinux:almalinux:9::baseos
Kernel: Linux 5.14.0-687.53.1.el9_8.x86_64
Architecture: x86-64
Hardware Vendor: innotek GmbH
Hardware Model: VirtualBox
Firmware Version: VirtualBox
Operating System は PRETTY_NAME と、Kernel は uname -r と同じ値でした。2行だけなら grep で絞ります。
[opuser@web01 ~]$ hostnamectl | grep -E "Operating System|Kernel"
Operating System: AlmaLinux 9.8 (Olive Jaguar)
Kernel: Linux 5.14.0-687.53.1.el9_8.x86_64
/etc/redhat-release と rpm -q で RHEL 系の版を見る
[opuser@web01 ~]$ cat /etc/redhat-release
AlmaLinux release 9.8 (Olive Jaguar)
/etc/almalinux-release と /etc/system-release も同じ1行でした。どのパッケージのファイルかは rpm -qf で分かります。
[opuser@web01 ~]$ rpm -q almalinux-release
almalinux-release-9.8-1.el9.x86_64
[opuser@web01 ~]$ rpm -qf /etc/os-release /etc/redhat-release
almalinux-release-9.8-1.el9.x86_64
almalinux-release-9.8-1.el9.x86_64
どちらも almalinux-release パッケージのファイルです。AlmaLinux の公式リリースノートは、このパッケージを RHEL の redhat-release の代わりと説明しています。
uname -r と uname -a はカーネルの版
[opuser@web01 ~]$ uname -r
5.14.0-687.53.1.el9_8.x86_64
[opuser@web01 ~]$ uname -a
Linux web01 5.14.0-687.53.1.el9_8.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Sep 30 11:17:58 EDT 2026 x86_64 x86_64 x86_64 GNU/Linux
uname(1) では -r は kernel release(カーネルの版)です。uname -a には AlmaLinux という OS 名は出てきません。
| オプション | uname(1) での意味 | この環境での出力 |
|---|---|---|
-s | カーネルの名前 | Linux |
-n | ネットワーク上のホスト名 | web01 |
-r | カーネルのリリース(版) | 5.14.0-687.53.1.el9_8.x86_64 |
-v | カーネルのバージョン(この環境ではビルド番号と日時) | #1 SMP PREEMPT_DYNAMIC Wed Sep 30 11:17:58 EDT 2026 |
-m | マシンのハードウェア名 | x86_64 |
os-release の項目の意味と、報告に書く行
意味の欄は os-release(5) の要約、右端は使い分けの目安です。
| 項目 | os-release(5) での意味 | この環境の値 | 報告に書くか |
|---|---|---|---|
| PRETTY_NAME | 利用者に見せる形の OS 名。版やコードネームを含むことがある | AlmaLinux 9.8 (Olive Jaguar) | 書く(1行で伝わる) |
| NAME | 版を含まない OS 名 | AlmaLinux | PRETTY_NAME を書けば不要 |
| VERSION_ID | 名前やコードネームを除いた版。スクリプトでの処理向け | 9.8 | 数字だけ求められたとき |
| ID | 小文字の OS 識別子。スクリプト向け | almalinux | スクリプトの判定に使う |
| ID_LIKE | パッケージなどが近い OS の ID を、近い順に空白区切りで並べたもの | rhel centos fedora | 系統(RHEL 系か)を伝えるとき |
| SUPPORT_END | この版のサポートが終わる日(その日からサポートなし) | 2032-06-01 | 更新の計画を話すとき |
OS の版とカーネルの版は別物

「9.8」は OS の版、「5.14.0-687.53.1」はカーネルの版です。入っているカーネルを rpm -q kernel で見ると2つありました。
[opuser@web01 ~]$ rpm -q kernel
kernel-5.14.0-687.5.3.el9_8.x86_64
kernel-5.14.0-687.53.1.el9_8.x86_64
AlmaLinux Wiki の 9.8 リリースノートでは、9.8 の配布時のカーネルは 5.14.0-687.5.3 です。この環境は更新後の 687.53.1 で起動し、OS の表示は 9.8 のままでした。いま動いている版は uname -r で見ます。proc_version(5) が「現在動いているカーネルの版」とする /proc/version も、同じ 5.14.0-687.53.1.el9_8.x86_64 でした。
やりがちな失敗と確かめ方
カーネルの版を「OS のバージョン」として書く
uname -r の「5.14.0」を OS のバージョンとして書くと、AlmaLinux の何版か伝わりません。OS は PRETTY_NAME か VERSION_ID、カーネルは uname -r と分けて書きます。
lsb_release が入っていない
[opuser@web01 ~]$ lsb_release -a
-bash: lsb_release: command not found
この環境には入っていませんでした。Ubuntu 24.04 の lsb_release の man ページは、os-release の情報を使う実装だと説明しています。確認のためにパッケージを入れるより、/etc/os-release を直接読むほうが早く済みます。
別の系統のファイルを探して「無い」と慌てる
[opuser@web01 ~]$ cat /etc/debian_version
cat: /etc/debian_version: No such file or directory
見つけた手順のファイルが、目の前の OS には無いことがあります。系統が分からないうちは、共通の /etc/os-release から見ます。
hostnamectl に名前を付けて実行する
hostnamectl(1) によると、hostnamectl hostname 名前 のように名前を渡すとホスト名が変わります。確認だけなら引数なし(status と同じ扱い)で実行します。
シェルスクリプトで OS を判定する書き方
os-release(5) には「Bourne シェルのスクリプトから source できる」とあり、. で読み込むと項目名がそのまま変数になります。
[opuser@web01 ~]$ . /etc/os-release; echo "$NAME $VERSION_ID"
AlmaLinux 9.8
[opuser@web01 ~]$ echo "$ID $VERSION_ID ${VERSION_ID%%.*}"
almalinux 9.8 9
対話中のシェルで読み込むと、変数はそのシェルに残ります。${VERSION_ID%%.*} は最初の点から後ろを削る書き方で、9 だけを取り出せます。
系統で分けるときは ID_LIKE も見ます。os-release(5) は、ID の値を知らないときは ID_LIKE を確かめるよう勧めています。
[opuser@web01 ~]$ cat /tmp/os-check.sh
#!/bin/bash
# /etc/os-release を読み込んで OS の系統を判定する
. /etc/os-release
echo "OS: $PRETTY_NAME (ID=$ID, VERSION_ID=$VERSION_ID)"
case " $ID $ID_LIKE " in
*" rhel "*|*" fedora "*) echo "RHEL系: パッケージは dnf で入れる" ;;
*" debian "*) echo "Debian系: パッケージは apt で入れる" ;;
*) echo "未対応のOS: $ID" ;;
esac
if [ "${VERSION_ID%%.*}" -ge 9 ]; then echo "メジャーバージョン9以上"; fi
[opuser@web01 ~]$ bash /tmp/os-check.sh
OS: AlmaLinux 9.8 (Olive Jaguar) (ID=almalinux, VERSION_ID=9.8)
RHEL系: パッケージは dnf で入れる
メジャーバージョン9以上
ID は almalinux でも、ID_LIKE に rhel があるので RHEL 系に分岐しました。前後に空白を足すのは、別の語の一部に一致させないためです。VERSION_ID は省略できる項目(os-release(5))なので、多くの OS で使うなら空のときの扱いも足します。
よくある質問
Q. 報告には OS とカーネル、どちらの版を書けばいい?
A. 「OS のバージョン」なら PRETTY_NAME、カーネルの話なら uname -r です。迷ったら hostnamectl の Operating System と Kernel の2行を両方書いておくと、読む人が取り違えにくくなります。
Q. 「9.8」の数字は更新で変わる?
A. AlmaLinux Wiki の 9.8 リリースノートには、AlmaLinux OS 9 を 9.8 に上げる手順として dnf upgrade -y が書かれています。更新で小数点以下が上がるので、報告には作業直前に確かめた値を書きます。
Q. Ubuntu でも /etc/os-release で確認できる?
A. /etc/os-release は特定のディストリビューションのものではなく、systemd のマニュアル os-release(5) で決められたファイルです。仕様の例にも「ID=ubuntu なら ID_LIKE=debian が適切」とあります。なお、この記事の実行結果はすべて AlmaLinux 9.8 のものです。
次に読む
参考にした一次資料
- os-release(systemd 公式マニュアル・freedesktop.org) — 各項目の意味・読む順番・シェルからの読み込み
- hostnamectl(1)(man7.org) — 引数の有無による動作
- uname(1)(man7.org) — オプションの意味
- proc_version(5)(man7.org) — /proc/version の意味
- AlmaLinux 9.8 Release Notes(AlmaLinux Wiki) — 配布時のカーネル・更新手順
- lsb_release(1)(Ubuntu Manpages・24.04) — os-release を使う実装
- Install and manage packages(Ubuntu Server documentation) — apt によるパッケージ管理

コメント
コメント一覧 (1件)
[…] 手順書の前提条件に書く「対象サーバーのOSとバージョン」は、作業の前にコマンドで確かめておくと安心です。確かめ方はLinux OS確認コマンド|バージョンとカーネルの見分け方でまとめています。 […]