環境
GNUコマンド: GNU core utilities version 8.26
unameコマンド概要
Linuxサーバにログインした時等に使う uname コマンドについて調べてみました。
unameは、”システムについて情報を表示する。"コマンドでGNU Coreutilsのひとつです。
オプションの意味と表示順
複数のオプションや ‘-a’ オプションが指定された場合の表示順別にオプションの意味をまとめました。
|表示順|表示情報|option|意味|備考|
|--:|:-:|:-:|:--|:--|:-:|:-:|
|1|kernel-name|-s|カーネル名を表示する|OSによってOS名とカーネル名が同じものと(FreeBSD, HP-UX など)、 違うものがある (GNU/Linux, Solaris など) |
|2|nodename|-n|ネットワークノードのホスト名を表示する。|現場ではhostnameの代替としてよく使われる(hostnameだとホスト名を変更可能なので、ポカ除けの意)
|3|kernel-release|-r|カーネルのリリース名を表示する。|
|4|kernel-version|-v|カーネルのバージョンを表示する。|
|5|machine|-r|マシンのハードウェア名を表示する。|ハードウェア・クラスとかハードウェア・タイプと呼ばれることもある|
|6|processor|-p|プロセッサ・タイプを表示する|情報が取得できない場合は、‘unknown’ と表示する。GNU/Linux ディストリビューション同士の間ですら可搬性がない。|
|7|hardware-platform|-i|ハードウェア・プラットホームの名前を表示する|情報が取得できない場合は、‘unknown’ と表示する。GNU/Linux ディストリビューション同士の間ですら可搬性がない。|
|8|operating-system|-p|オペレーティング・システムの名前を表示する。||
processorやhardware-platformで表示されるものは、アーキテクチャやプロセッサにより異なるようです。unameのソース(Cで書かれている)としては、processorを返してくれと言っていても其々のプロセッサが違うものを返して来たらどうしようもないですね。
補足
ちなみに、公式マニュアルには下記のように書いてあり、どこかでスペースで区切られたものは見づらいよね。的なことを言っています。
複数のオプションや ‘-a’ オプションが指定された場合、選択された情報は次の順番で表示される。
kernel-name nodename kernel-release kernel-version
machine processor hardware-platform operating-system
[GNU Coreutils 公式マニュアル](https://linuxjm.osdn.jp/info/GNU_coreutils/coreutils-ja.html)より引用
## 参考文献
- [GNU Coreutils 公式マニュアル](https://linuxjm.osdn.jp/info/GNU_coreutils/coreutils-ja.html)
- [MaiZure's Projects(GNU Coreutilsのソースコードを解読しているサイト)](https://www.maizure.org/projects/decoded-gnu-coreutils/uname.html)