it-swarm-id.com

Bagaimana cara mengetahui versi Linux yang saya jalankan?

Apakah ada cara untuk menentukan versi apa (Linux & versi kernel, saya kira) yang dijalankan (dari command-line), yang bekerja pada sistem Linux?

207
Daryl Spitzer

Kernel terdeteksi secara universal dengan uname:

$ uname -or
2.6.18-128.el5 GNU/Linux

Sebenarnya tidak ada cara distribusi silang untuk menentukan distribusi dan versi apa yang Anda gunakan. Ada upaya untuk membuat ini konsisten, tetapi pada akhirnya itu bervariasi, sayangnya. Alat LSB memberikan informasi ini, tetapi ironisnya tidak diinstal secara default di mana-mana. Contoh pada sistem Ubuntu 9.04 dengan paket lsb-release terinstal:

$ lsb_release -irc
Distributor ID: Ubuntu
Release:        9.04
Codename:       jaunty

Jika tidak, metode terdekat yang tersedia luas adalah memeriksa file /etc/something-release. Ini ada di sebagian besar platform umum, dan turunannya (mis., Red Hat dan CentOS).

Berikut ini beberapa contohnya.

Ubuntu memiliki /etc/lsb-release:

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=9.04
DISTRIB_CODENAME=jaunty
DISTRIB_DESCRIPTION="Ubuntu 9.04"

Tetapi Debian memiliki /etc/debian_version:

$ cat /etc/debian_version
5.0.2

Fedora, Red Hat dan CentOS memiliki:

Fedora: $ cat /etc/Fedora-release
Fedora release 10 (Cambridge)

Red Hat/older CentOS: $ cat /etc/redhat-release
CentOS release 5.3 (Final)

newer CentOS: $ cat /etc/centos-release
CentOS Linux release 7.1.1503 (Core)

Gentoo:

$ cat /etc/gentoo-release
Gentoo Base System release 1.12.11.1

Saya tidak memiliki sistem SUSE yang tersedia saat ini, tetapi saya yakin itu adalah /etc/SuSE-release.

Slackware memiliki /etc/slackware-release dan/atau /etc/slackware-version.

Mandriva memiliki /etc/mandriva-release.

Untuk sebagian besar distribusi populer,

$ cat /etc/*{release,version}

akan paling sering bekerja. Instalasi stripped down dan barebones "server" mungkin tidak memiliki paket 'rilis' untuk distribusi yang diinstal.

Selain itu, dua program pihak ke-3 yang dapat Anda gunakan untuk mendapatkan informasi ini secara otomatis adalah Ohai dan Facter .

Perhatikan bahwa banyak distribusi memiliki jenis informasi ini dalam /etc/issue atau /etc/motd, tetapi beberapa kebijakan keamanan dan praktik terbaik menunjukkan bahwa file-file ini harus berisi spanduk pemberitahuan akses.

Terkait: Bagaimana mengetahui versi paket perangkat lunak yang diinstal pada node? , wayang .

265
jtimberman

Anda juga dapat mencoba:

$ cat /etc/issue

Biasanya (tidak selalu, akan memberi tahu Anda distribusi apa yang Anda gunakan. /etc/issue adalah file yang digunakan untuk layar login.

40
Pablo Santa Cruz

Kernel: uname -a

20
raspi
cat /etc/os-release

minimal untuk Ubuntu, Fedora dan OpenSUSE.

Tidak bekerja untuk OS X setidaknya hingga 10.9 (Mavericks). Gunakan sw_vers sebagai gantinya.

OpenSUSE memiliki cat/etc/SuSE-release hingga 13.1 tetapi tidak digunakan lagi karena mendukung os- melepaskan.

Redhat 6.1 memiliki cat/etc/redhat-release

15
sweetfa

lsb_release -a, bila tersedia, berguna.

14
CesarB

cat /proc/version menemukan saya Red Hat di VPS bersama.

12
iono

Kernel: uname -r

Distro: lsb_release -a

Ini akan berjalan di sebagian besar sistem Linux

6
Albert Z.

Satu garis

lsb_release -a && uname -r
5
Serge Stroobandt

Masalah ini juga dapat diselesaikan menggunakan Python dengan modul platform:

Menggunakan fungsi platform():

python -c 'import platform; print platform.platform()'
# Linux-4.9.0-8-AMD64-x86_64-with-debian-9.6

Perintah di atas mengembalikan string tunggal yang mengidentifikasi platform yang mendasari dengan sebanyak mungkin informasi bermanfaat.

Atau menggunakan fungsi uname():

python -c 'import platform; print platform.uname()'
# ('Linux', 'debian', '4.9.0-8-AMD64', '#1 SMP Debian 4.9.130-2 (2018-10-27)', 'x86_64', '')

Perintah di atas mengembalikan namedtuple() berisi enam atribut: system, node, release, version, machine, dan processor.

Atau menggunakan fungsi dist():

python -c 'import platform; print platform.dist()'
# ('debian', '9.6', '')

Perintah terakhir mencoba menentukan nama nama distribusi OS Linux , tetapi tidak digunakan lagi karena Python 3.5 dan akan dihapus dengan Python 3.8 .

1
simhumileco