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 データベースは何をしますか?

推薦する

Tomcat ソースコード起動コンソールの中国語文字化けのデバッグプロセス記録

問題を見つける今日はTomcatのソースコードを勉強するつもりなので、公式サイトからTomcatのソ...

Vueインスタンスで$refsを使用する際の注意点

開発の過程では、インスタンスの vm.$refs(this.$refs) を使用して、ref で登録...

MySQL バッチ SQL 挿入パフォーマンス最適化の詳細な説明

大量のデータを扱うシステムの中には、クエリ効率の低さやデータの保存時間の長さといったデータベースの問...

Linux nslookup コマンドの使用方法の詳細な説明

[nslookup とは?] 】 nslookup コマンドは、Linux で非常によく使用されるネ...

入力[type=file]の起動が遅くて動かなくなる問題を素早く解決します

入力タグタイプがファイルで、タグ内にaccpet="image/*"属性が設定さ...

Docker Compose の実践とまとめ

Docker Compose は、Docker コンテナ クラスターのオーケストレーションを実現しま...

MySQLの論理アーキテクチャに関する深い理解

MySQL は現在、ほとんどの企業や事業体で使用されているデータベースです。MySQL が使用される...

LinuxベースのSelenium環境を構成し、操作を実装する

1. Linux で Selenium を使用する1. Chromeをインストールする次のコマンドを...

VueのkeepAliveコンポーネントの機能と使い方の詳細な説明

序文面接中、多くの面接官は「keep-alive が何をするのか知っていますか?」と質問する際に V...

表のセルの内容が超過した場合に省略記号効果を表示する(実装コード)

例示するフロントエンド開発では、セルの幅を制限し、コンテンツが制限を超える部分に省略記号を表示する必...

MySQL パフォーマンスの最適化: インデックスを効率的かつ正しく使用する方法

実践こそが真実をテストする唯一の方法です。この記事では、インデックスの全体的な使用法についてのみ説明...

React.FCとReact.Componentの使用に関する簡単な説明

目次1. React.FC<> 2. クラスxxはReact.Componentを拡張し...

Selenium+testng を使用して Docker で Web 自動化を実現する方法

序文長い間さまざまな資料を読んで、ついに selenium+testng のパラメータ化の問題を解決...

Jenkins の Docker のデプロイとインストール手順

まず、Docker がインストールされたサーバーが必要です。 (私はすでにこれをサーバーにインストー...

エレガントなJSコードの書き方

目次変数意味があり発音しやすい変数名を使用する同じ型の変数には同じ語彙を使用する検索可能な名前を使用...