unameコマンドでシステムやカーネル情報をサクッと確認

ASPのクラウドサービスを利用したり、サーバーが別の場所にあってリモートアクセスする場合など、自分が操作しているマシンのシステムやカーネル情報を知りたい場合に便利なコマンドをご紹介します。

LinuCレベル2の「主題2.01:システムの起動とLinuxカーネル」で出題範囲に含まれていますが、カーネルを含むシステム情報の確認はとても重要なのでレベルに関係なく覚えておきましょう。

uname

unameコマンドはシステムやカーネルの情報を表示する代表的なコマンドです。

$ uname 

オプションなしでシステムのカーネル名を表示してくれますが、Linuxマシンの場合、ほとんどがLinuxとしか表示されないので、一般的には以下のようなオプションを付けて実行します。

オプション説明
-a, –all全ての情報を表示
-n, nodenameネットワークノードとしてのホスト名を表示
-r, –kernel-releaseカーネルのリリース番号を表示
-s, –kernel-nameカーネル名を表示(標準)
-v, –kernel-versionカーネルのバージョンを表示
-m, –machineマシンのハードウェア名を表示
-p, –processorプロセッサの種類を表示
-i, –hardware-platformハードウェアプラットフォームを表示
-oOS名を表示

参考までにCentOS7導入済み実機での実行例です。

$ uname -a
Linux ymizu_tpx220 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
$ uname -n
ymizu_tpx220
$ uname -r
3.10.0-1160.11.1.el7.x86_64
$ uname -s
Linux
$ uname -v
#1 SMP Fri Dec 18 16:34:56 UTC 2020
$ uname -m
x86_64
$ uname -p
x86_64
$ uname -i
x86_64
$ uname -o
GNU/Linux

オプション-aの実行結果が、-a以外のオプションの実行結果の列記になっていることがお分かりいただけると思います。

情報オプション
Linuxなし=-s
ymizu_tpx220-n
3.10.0-1160.11.1.el7.x86_64-r
#1 SMP Fri Dec 18 16:34:56 UTC 2020-v
x86_64-m
x86_64-p
x86_64-i
GNU/Linux-o

uname -a

おそらく、最も利用されるのがオプション「-a」でしょう。unameコマンドで取得できるすべての情報をまとめて表示してくれます。

$ uname -a

以下、複数のマシンでの実行した結果です。それぞれの違いを確認してみてください。

(Katacodaのubuntuの場合)

$ uname -a
Linux host01 4.4.0-193-generic #224-Ubuntu SMP Tue Oct 6 17:15:28 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

(ubuntuサーバー導入済み実機の場合)

ubuntu@ubuntu:~$ uname -a
Linux ubuntu 5.8.0-1011-raspi #14-Ubuntu SMP PREEMPT Tue Dec 15 08:58:13 UTC 2020 armv7l armv7l armv7l GNU/Linux

(KatacodaのCentOSの場合)

[root@159e16f1654c ~]$ uname -a
Linux 159e16f1654c 3.10.0-693.5.2.el7.x86_64 #1 SMP Fri Oct 20 20:32:50 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

(CentOS7導入済み実機の場合)

[ymizusawa@ymizu_tpx220 ~]$ uname -a
Linux ymizu_tpx220 3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

uname -r

オプション -rでカーネルのリリース番号を表示してくれます。

仮想化やコンテナ技術を使っている場合など、サクッとカーネル情報を知りたいときに便利です。

$ uname -r
[ymizusawa@ymizu_tpx220 ~]$ uname -r
3.10.0-1160.11.1.el7.x86_64

オプションを組み合わせて使う

-aでは余計な情報が多く感じる場合は-a以外のオプションを組み合わせて利用します。

[ymizusawa@ymizu_tpx220 ~]$ uname -rv
3.10.0-1160.11.1.el7.x86_64 #1 SMP Fri Dec 18 16:34:56 UTC 2020

システム情報をサクッと確認するだけであれば、個人的には-aと-rを覚えておけば十分と思います。

hostnamectl

hostnamectlコマンドは引数無しでホスト名以外にOSの情報などを表示してくれます。

$ hostnamectl [status]
[ymizusawa@hogehoge ~]$ hostnamectl Static hostname: hogehoge Icon name: computer Machine ID: 376941db552b4fe0b6350fd690d5895b Boot ID: 6ce2d5cff60c401c8b72480c8eaf7799 Operating System: CentOS Linux 7 (AltArch) CPE OS Name: cpe:/o:centos:centos:7 Kernel: Linux 5.4.72-v7.1.el7 Architecture: arm

上からホスト名、アイコン名、マシンID、ブートID、OS、CPE OS名、カーネル、アーキテクチャの詳細が表示されています。

hostnamectlについては、別の投稿で詳しく解説していますので、興味のある方はそちらもご覧ください。

cat /proc/version

上記のコマンド以外に、catでシステムやカーネルのファイル情報を参照することで確認できます。

$ cat /proc/version

(CentOSの場合)

[ymizusawa@ymizu_tpx220 ~]$ cat /proc/version
Linux version 3.10.0-1160.11.1.el7.x86_64 (mockbuild@kbuilder.bsys.centos.org) (gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC) ) #1 SMP Fri Dec 18 16:34:56 UTC 2020

(Ubuntuの場合)

ubuntu@ubuntu:~$ cat /proc/version
Linux version 5.8.0-1011-raspi (buildd@bos02-arm64-067) (gcc (Ubuntu 10.2.0-13ubuntu1) 10.2.0, GNU ld (GNU Binutils for Ubuntu) 2.35.1) #14-Ubuntu SMP PREEMPT Tue Dec 15 08:58:13 UTC 2020

ディストリビューション問わず確認可能。

参考

OS情報だけ知りたい場合は以下のコマンドが便利です。

cat /etc/os-release

(CentOSの場合)

[ymizusawa@ymizu_tpx220 ~]$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

(Ubuntuの場合)

ubuntu@ubuntu:~$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.10 (Groovy Gorilla)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.10"
VERSION_ID="20.10"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=groovy
UBUNTU_CODENAME=groovy

cat/etc/os-releaseはディストリビューション問わず確認が可能ですので覚えておいて損はないです。

cat /etc/centos-release

こちらはCentOSだけで有効。

[ymizusawa@ymizu_tpx220 ~]$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)

cat /etc/issue

こちらはUbuntuだけで有効。

ubuntu@ubuntu:~$ cat /etc/issue
Ubuntu 20.10 \n \l

lsb_release -a

こちらはUbuntuだけで有効。

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 16.04.7 LTS
Release: 16.04
Codename: xenial
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 20.04.1 LTS
Release: 20.04
Codename: focal