Linuxのバージョン情報を復号化する方法

Linuxのバージョン情報を復号化する方法

Linux バージョンに関する情報を表示および解釈するのは、見た目よりも少し複雑です。

単純なバージョン番号を参照する以外にも、Linux のバージョンを識別する方法は多数あります。 uname コマンドの出力をざっと見るだけでも、何かがわかります。この情報とは何ですか? 何を伝えているのでしょうか?

この記事では、una​​me コマンドの出力と、他のコマンドやファイルによって提供されるバージョンの説明を詳しく見ていきます。

unameの使用

Linux システムのターミナル ウィンドウで uname -a コマンドを実行すると、多くの情報が表示されます。これは、小さな a が uname コマンドに、コマンドが提供できるすべての出力を表示するように指示するためです。結果の表示には、システムに関するさまざまな情報が表示されます。実際、表示される各情報は、システムについて異なる情報を伝えます。

たとえば、uname -a の出力は次のようになります。

$ uname -a
Linux dragonfly 5.4.0-37-generic #41-Ubuntu SMP 水曜日 6月 3日 18:57:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

これは重要ではないかもしれませんが、すべての uname オプションを適切な順序で含むコマンドを使用して同じ情報を表示できます。

$ uname -snmrvpio
Linux dragonfly 5.4.0-37-generic #41-Ubuntu SMP 水曜日 6月 3日 18:57:02 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

この長い情報リストを個別のチャンクに分割するには、次のように for ループを使用して各オプションを反復処理します。

$ snmrvpio のオプション; echo -n "$option: "; uname -$option; 完了
s: Linux
n: トンボ
メートル: x86_64
r: 5.4.0-37-ジェネリック
v: #41-Ubuntu SMP 水曜日 6月3日 18:57:02 UTC 2020
: x86_64 の言語
i: x86_64
o: GNU/Linux

このループは、このオプションが提供する情報を表示します。 uname のマニュアル ページには各オプションの説明が記載されています。リストは次のとおりです:

  • Linux – カーネル名(オプション)
  • dragonfly --ノード名 (オプション n)
  • x86_64 – マシンのハードウェア名 (オプション m)
  • 5.4.0-37-generic – カーネルリリースバージョン(オプション r)
  • #41-Ubuntu SMP Wed Jun 3 18:57:02 UTC 2020 -- カーネル バージョン (オプション v)
  • x86_64 – プロセッサ (オプション p)
  • x86_64 – ハードウェア プラットフォーム (オプション i)
  • GNU/Linux – オペレーティング システム (オプション o)

表示された情報を詳しく調べるには、表示されたカーネル リリース データを詳しく調べます。 4 行目の 5.4.0-37 は単なる任意の数字の文字列ではありません。すべての数字が重要です。

  • 5はカーネルバージョンを示します
  • 4はメジャーバージョンを示します
  • 0はマイナーバージョンを意味します
  • 37は最新のパッチを示します

さらに、上記のループの 5 行目 (カーネル バージョン) の出力の #41 は、このリリースが 41 回コンパイルされたことを示しています。

すべての情報のうち 1 つの項目のみを表示する場合は、単一オプションが便利です。たとえば、コマンド uname -n はシステム名だけを表示しますが、 uname -r はカーネルのリリースだけを表示します。これらおよびその他のオプションは、サーバーのインベントリを作成したり、スクリプトを構築したりするときに役立ちます。

Red Hat システムでは、una​​me -a コマンドで同じ種類の情報が提供されます。次に例を示します。

$ uname -a
Linux fruitfly 4.18.0-107.el8.x86_64 #1 SMP 金曜日 6月14日 13:46:34 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

リリース情報

実行しているディストリビューションを知る必要がある場合、uname の出力はあまり役に立ちません。結局のところ、カーネルのバージョンはディストリビューションのバージョンと同じではありません。この情報については、Ubuntu やその他の Debian ベースのシステムでは lsb_release -r コマンドを使用できます。また、Red Hat では /etc/redhat-release ファイルの内容を表示できます。

Debian システムの場合:

$ lsb_release -r
リリース: 20.04

Red Hat および関連システムの場合:

$ cat /etc/redhat-release
Red Hat Enterprise Linux リリース 8.1 ベータ (Ootpa)

/proc/version の使用

/proc/version ファイルには、Linux バージョンに関する情報も記載されています。このファイルで提供される情報は、una​​me -a の出力と多くの共通点があります。いくつか例を挙げます。

Ubuntuの場合:

$ cat /proc/バージョン
Linux バージョン 5.4.0-37-generic (buildd@lcy01-amd64-001) (gcc バージョン 9.3.0 (Ubuntu 9.3.0-10ubuntu2)) #41-Ubuntu SMP Wed Jun 3 18:57:02 UTC 2020

RedHatの場合:

$ cat /proc/バージョン
Linux バージョン 4.18.0-107.el8.x86_64 ([email protected]) (gcc バージョン 8.3.1 20190507 (Red Hat 8.3.1-4) (GCC)) #1 SMP Fri Jun 14 13:46:34 UTC 2019

要約する

Linux システムは、カーネルとディストリビューションのインストールに関する多くの情報を提供します。どこで、どのように探すかを知って、それが何を意味するかを理解するだけで十分です。

Linux バージョン情報の復号化方法についてはこれで終わりです。Linux バージョン情報の復号化の詳細については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • Linuxでバージョン情報を表示する方法
  • Python で Linux 上のファイルのバージョン情報、会社名、製品名を取得する方法
  • Linux で AES 暗号化アルゴリズムが復号化できない問題の解決策
  • Linux オペレーティングシステムでの AES 復号化の失敗の問題に対する完璧なソリューション

<<:  Vue での keepAlive の使用例の詳細な説明

>>:  MySQL データベースは何をしますか?

推薦する

ファイル共有サーバーを構築するための samba + OPENldap の詳細な説明

ここでは、samba (ファイル共有サービス) v4.9.1 + OPENldap (バックエンド ...

よく使われるnginxの書き換えルールの詳細な説明

この記事では、Web ページのリンクを美しくするためによく使用される書き換えルールをいくつか紹介しま...

Tomcatでcatalina.batがUTF-8に設定されている場合、コンソールに文字化けした文字が表示されます

1. catalina.bat は UTF-8 に設定する必要があります。UTF-8 に設定しないと...

DockerコンテナのライフサイクルアーキテクチャとVMとの違いについて詳しく説明します。

コンテナのライフサイクルコンテナランタイムのライフサイクルコンテナは、分離特性を持つプロセスのセット...

歴史的な Linux 画像処理および修復ソリューション

従来の Linux イメージで作成された ECS クラウド サーバーには、NTP と YUM が設定...

WeChatアプレット学習ノート: ページ構成とルーティング

最近、小さなプログラムの開発を勉強して見直しており、学習結果のいくつかをメモしています。公式の We...

HTML+CSS+JavaScript でシンプルな三目並べゲームを作成する

目次HTMLの実装CSSを追加Javascript部分の実装デモアドレス HTMLの実装まず、hea...

inline-blockプロパティとの互換性

<br />1年前、インターネット上にはinline-blockプロパティに関する記事は...

etcd クラスターをデプロイするための docker-compose の実装手順

目次docker-compose.ymlを書くdocker-composeを実行するビルドステータス...

React はモバイル端末を構築するために antd-mobile+postcss を導入しました

antd-mobileをインストールするグローバル輸入 npm をインストール antd-mobil...

MySQL 5.7.21 解凍版のインストールと設定方法のグラフィックチュートリアル

私は頻繁にシステムをインストールするので、インストールのたびにいくつかのソフトウェアを再インストール...

Docker-compose を使用して GitLab をデプロイする方法

Docker-compose は GitLab をデプロイします1. Dockerをインストールする...

Vue コンポーネントでのアンチシェイクとスロットリングの使用例の分析

入力ボックスへのユーザー入力、ウィンドウのサイズ変更、スクロール、Intersection Obse...

MySQLの自動増分IDについて知っておくべきこと

はじめに: MySQL を使用してテーブルを作成する場合、通常は自動インクリメント フィールド (A...

ファイルをアップロードするための HTML フォームの「参照」ボタンを変更する方法

コードをコピーコードは次のとおりです。 <!DOCTYPE HTML PUBLIC "...