実行しているLinuxのバージョンを確認するにはどうすればよいですか?


209

どのLinuxシステムでも動作するLinuxのどのバージョン(ディストリビューションとカーネルバージョン、私が推測する)を実行している(コマンドラインから)を判断する方法はありますか?

回答:


267

カーネルは次のもので広く検出されunameます:

$ uname -or
2.6.18-128.el5 GNU/Linux

実際に、どのディストリビューションとバージョンを使用しているかを判断するためのクロスディストリビューションの方法はありません。これを一貫させる試みがありましたが、最終的には、残念ながら変化します。LSBツールはこの情報を提供しますが、皮肉なことにデフォルトではどこにもインストールされていません。lsb-releaseパッケージがインストールされたUbuntu 9.04システムの例:

$ lsb_release -irc
Distributor ID: Ubuntu
Release:        9.04
Codename:       jaunty

それ以外の場合、最も広く利用されている方法はファイルのチェックです。これらは、ほとんどの一般的なプラットフォームとその派生物(つまり、Red HatとCentOS)に存在します。/etc/something-release

下記は用例です。

Ubuntuには/etc/lsb-release次のものがあります。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

しかし、Debianには以下があります/etc/debian_version

$ cat /etc/debian_version
5.0.2

Fedora、Red Hat、CentOSには次のものがあります。

Fedora: $ cat /etc/fedora-release
Fedora release 10 (Cambridge)

Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)

newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)

Gentoo:

$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1

現時点ではSUSEシステムを利用できませんが、そうだと思います/etc/SuSE-release

Slackwareには/etc/slackware-releaseおよび/またはがあり/etc/slackware-versionます。

マンドリバは持ってい/etc/mandriva-releaseます。

その後、ほとんどの一般的なディストリビューションでは、

$ cat /etc/*{release,version}

ほとんどの場合動作します。削除されたベアボーン「サーバー」インストールには、ディストリビューションの「リリース」パッケージがインストールされていない場合があります。

また、あなたがこの情報を自動的に取得するために使用できる2つのサードパーティ製のプログラムがありOhaiFacter

多くのディストリビューションでは、/etc/issueまたはにこの種の情報があります/etc/motdが、一部のセキュリティポリシーとベストプラクティスでは、これらのファイルにアクセス通知バナーを含める必要があることに注意してください。

関連: ノードにインストールされているソフトウェアパッケージのバージョンを確認する方法は?


3
笑ここで私は提案しようと考えていました。
イボフリップ

2
Slackwareのは、持っているの/ etc / Slackwareのバージョン
ケン・キーナン

ケンのおかげで、私もスラックウェアシステムを持っていません。
jtimberman

4
IOW:lsのは/ etc / * {リリース、バージョン}と戻ってくるものは何でも調べる...
freiheit

1
ほとんどには/ etc / issueもあります
Drew Stephens

41

また試すことができます:

$ cat /etc/issue

通常は(常にではありませんが)使用しているディストリビューションを教えてくれます。/etc/issueログイン画面に使用されるファイルです。


2
これは、共有Media Templeサーバー上でそれを打ち立てた唯一のものです。ありがとう!!
TryTryAgain

2
ハ、RedHatの上で、それはちょうどだ\S[newline]Kernel \r on an \m
ラフィン

20

カーネル: uname -a


+1。MinGWなどの同様のシステムでは、バージョン情報を取得するために「-a」が必要です(例:「MINGW32_NT-5.1 LAP065 1.0.17(0.48 / 3/2)2011-04-24 23:39 i686 Msys」)。
ピーターモーテンセン

15
cat /etc/os-release

Ubuntu、Fedora、およびOpenSUSEの場合は少なくとも。

少なくとも10.9(Mavericks)まではOS Xで機能しません。代わりにsw_versを使用してください。

OpenSUSEには、13.1まではcat / etc / SuSE-releaseがありましたが、os-releaseを支持して廃止されました。

Redhat 6.1にはcat / etc / redhat-releaseがあります





6

カーネル: uname -r

ディストリビューション: lsb_release -a

これらはほとんどのLinuxシステムで実行されます


5

一発ギャグ

lsb_release -a && uname -r

1
これは、Albert Zの答えに対するコメントとしてより適切かもしれません。
fixer1234

1
すべての答えを締めくくる強力な答え!私は努力に
賛成し

1

この問題は、Python platformモジュールを使用して解決することもできます

platform()機能を使用して:

python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-amd64-x86_64-with-debian-9.6

上記のコマンドは、基になるプラットフォームを識別する単一の文字列を、できるだけ多くの有用な情報とともに返します。

またはuname()機能を使用して:

python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-amd64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')

上記のコマンドは、返すnamedtuple()含む6つの属性を:systemnodereleaseversionmachine、とprocessor

またはdist()機能を使用して:

python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')

最後のコマンドは、LinuxのOSディストリビューション名の名前を決定しようとしますが、それはされてはPython 3.5から非推奨されるのPython 3.8で削除します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.