「cat /etc/os-release」でLinuxのOS情報を確認しよう!コマンドの意味と使い方を徹底解説

Linuxを扱う中で、「このシステムはどのOS?」「どのディストリビューションの何バージョン?」と確認したくなる場面は多くあります。特に複数のサーバーを管理していたり、アプリの対応OSを調べるときには、正確なOS情報が不可欠です。

そんなときに便利なのが、cat /etc/os-releaseというシンプルなコマンドです。このコマンドを使えば、インストールされているLinuxディストリビューションの詳細な情報を一目で確認することができます。この記事では、「cat /etc/os-release」の使い方や表示される情報の意味、他の類似コマンドとの違いなどをわかりやすく解説します。


cat /etc/os-releaseとは?

cat /etc/os-releaseは、Linuxディストリビューションの種類やバージョンなど、OSに関する基本的な情報を表示するためのコマンドです。

このコマンドはLinuxの多くのディストリビューション(Ubuntu、Debian、CentOS、Rocky Linuxなど)で標準的に利用できます。

/etc/os-releaseファイルは、Linux Standard Base(LSB)に準拠した形式で記述されており、OSのIDやバージョン、名前などが定義されています。

cat /etc/os-release

上記のコマンドを実行すると、次のような出力が得られます。

NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"

各項目の意味を詳しく解説

出力される情報は、様々なスクリプトやアプリケーションがシステムを判別する際にも使われています。それぞれの項目を見てみましょう。

NAME

OSの正式名称です。たとえば UbuntuCentOS Stream などが表示されます。

VERSION

OSのバージョンを示します。LTS(Long Term Support)などの記述も含まれます。

ID

OSの識別子です。小文字で短く書かれていることが多く、スクリプトなどで機械的に使われます。

ID_LIKE

ベースになっているディストリビューションの系統を示します。たとえば ubuntudebian ベースのため ID_LIKE=debian と表示されます。

PRETTY_NAME

読みやすいよう整えられたOS名とバージョン。ユーザー向け表示に使われることが多いです。

VERSION_ID

バージョン番号のみを示します。スクリプトで特定のバージョンかどうかをチェックするときに便利です。

HOME_URL、SUPPORT_URL、BUG_REPORT_URL

公式サイトやサポート情報、バグ報告用のURLです。バージョンごとに異なるリンク先となることもあります。


なぜ /etc/os-release を使うのか?

LinuxにはOS情報を表示するための方法がいくつかありますが、その中でも/etc/os-releaseが使われる理由は以下の通りです。

  • ほとんどのディストリビューションで利用可能(互換性が高い)
  • 構造化された形式で解析しやすい
  • スクリプトや自動化のツールと相性がよい
  • 他の方法に比べて簡潔で確実

たとえば、uname -alsb_release -aなどもありますが、unameではカーネル情報しか出ず、lsb_releaseは一部の環境にしか存在しないこともあります。


実行例:ディストリビューションの種類を自動で判別するシェルスクリプト

以下は、/etc/os-releaseを読み取って、実行中のOSに応じた処理を行う簡単なシェルスクリプトの例です。

#!/bin/bash

source /etc/os-release

echo "現在のOSは $PRETTY_NAME です"

if [[ "$ID" == "ubuntu" ]]; then
echo "Ubuntu用の処理を実行します"
elif [[ "$ID" == "centos" || "$ID" == "rhel" ]]; then
echo "RedHat系の処理を実行します"
else
echo "その他のLinuxディストリビューションです"
fi

このように、OSの識別情報をスクリプト内で活用することも可能です。


/etc/os-releaseがない場合は?

一部の古いLinux環境や特殊なミニマル環境では、/etc/os-releaseファイルが存在しない場合もあります。そういった場合には、次のような代替手段があります。

  • lsb_release -a(Debian系でよく使われます)
  • cat /etc/issue
  • uname -a

ただし、これらの方法では正確なバージョンやディストリビューション名が取得できないこともあるため、/etc/os-releaseが最も信頼できる情報源と言えます。


よくあるトラブルと注意点

  • ファイルが存在しない場合:環境によってはos-releaseが存在しないため、lsb-releaseパッケージをインストールして代替することも検討しましょう。
  • 内容がカスタマイズされている場合:一部のディストリビューションでは独自にこのファイルの内容を書き換えているケースがあります。
  • Dockerなどのコンテナ内ではベースイメージの情報しか出ない:実際のホストOSとは異なる情報になることもあります。

まとめ

cat /etc/os-releaseは、Linuxのディストリビューションやバージョンを確認するための非常に便利なコマンドです。システム管理やスクリプト開発の現場では、OSの種類を判断する場面が多くありますが、この1コマンドで多くの情報が得られるのは大きなメリットです。

特にクロスディストリビューション対応のスクリプトを書くときや、環境情報をログとして記録する際には必須と言ってよいでしょう。今後のLinux操作において、ぜひ活用してみてください。

タイトルとURLをコピーしました