少なくとも私たちが話しているブランチをある程度理解するために私が通常行うことは、apt-get
、pacman
、yum
および他のすべての一般的なパッケージマネージャーを実行しようとすることです。頭のてっぺんから思い出すことができますが、もっと良い方法があると確信しています。シェルのみを使用して、ログインしたばかりのLinuxディストリビューションを識別する簡単な方法はありますか?
それはディストリビューションに依存します。
Debianと親戚は
lsb_release -a
cat /etc/lsb-release
どちらでも問題ありません。しかし、これはLSB(Linux Standard Base)に関連しているにもかかわらず、すべてのディストリビューションがそれを持っているわけではありません。上記のコマンドから応答がない場合は、試してみてください
ls /etc/*release
次に、見つけたファイルの内部を調べます。これには注意する必要があります。RedHatには/ etc/redhat-releaseがありますが、Arch Linuxなどの他のファイルにはempty/etc/Arch-releaseファイルがあり、情報が含まれています。あなたが探しているのは/ etc/os-releaseです。
だから、YMMV。
絶対確実ではないかもしれませんが、/proc/version
少なくともあなたに球場を与えるべきです:
Redhat派生物:
# cat /proc/version
Linux version 2.6.18-92cp (builder@Lnx30BccCmp5) (gcc version 4.1.1 20061011 (Red Hat 4.1.1-30)) #1 SMP Wed Apr 8 17:12:19 IDT 2015
Ubuntu:
$ cat /proc/version
Linux version 3.13.0-24-generic (buildd@panlong) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014
Debian:
$ cat /proc/version
Linux version 3.2.0-4-AMD64 ([email protected]) (gcc version 4.6.3 (Debian 4.6.3-14) ) #1 SMP Debian 3.2.65-1+deb7u1
Centos:
# cat /proc/version
Linux version 2.6.18-400.el5xen ([email protected]) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-55)) #1 SMP Thu Dec 4 13:29:23 EST 2014
私はscreenfetchmulti-linux-platformスクリプトユーティリティを使用します:
最新のFedoraおよびDebian(およびArch、CentOS、CoreOS、Mageia、openSUSE、Red Hat Enterprise Linux、SUSE Linux Enterprise Server、Ubuntuなど)では、最も簡単な方法は/etc/os-release
を確認するか、hostnamectl status
を実行することです。
スクリプトでは、簡単に行うことができます
#!/bin/sh
source /etc/os-release
echo $PRETTY_NAME
例えば:
$ source /etc/os-release
$ echo $PRETTY_NAME
Fedora 25 (Workstation Edition)
.。
$ source /etc/os-release
$ echo $PRETTY_NAME
Debian GNU/Linux 8 (jessie)
もちろん、古いバージョンやシステム化されていないディストリビューションも特定する必要がある場合は、/etc/os-release
が存在する場合はこのアプローチから始め、存在しない場合は、lsb_release
、/etc/redhat-release
を探して、それを理解しようとします。 /proc/version
、またはその他のヒューリスティックから。
詳細については、Stack Overflowのドキュメントの Linuxディストリビューションの名前とバージョンの検出 を参照してください。
uname -a
トリックを行う必要があります。ログインしているディストリビューションのシステム情報が表示されます。
cat /etc/lsb-release
ディストリビューションの名前とバージョンも表示する必要があります。