मुझे कैसे पता चलेगा कि मैं लिनक्स का कौन सा संस्करण चला रहा हूं?


209

क्या यह निर्धारित करने का एक तरीका है कि लिनक्स का कौन सा संस्करण (वितरण और कर्नेल संस्करण, मुझे लगता है) चल रहा है (कमांड-लाइन से), जो किसी भी लिनक्स सिस्टम पर काम करता है?

जवाबों:


267

कर्नेल का सार्वभौमिक रूप से पता लगाया जाता है uname:

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

वास्तव में यह निर्धारित करने के लिए कोई क्रॉस-वितरण तरीका नहीं है कि आप किस वितरण और संस्करण पर हैं। इसे लगातार बनाने के प्रयास किए गए हैं, लेकिन अंततः यह दुर्भाग्य से बदलता रहता है। एलएसबी उपकरण यह जानकारी प्रदान करते हैं, लेकिन विडंबना यह है कि हर जगह डिफ़ॉल्ट रूप से स्थापित नहीं किया जाता है। lsb-releaseस्थापित किए गए पैकेज के साथ Ubuntu 9.04 सिस्टम पर उदाहरण :

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

अन्यथा, निकटतम व्यापक रूप से उपलब्ध विधि फ़ाइलों की जाँच कर रही है। ये अधिकांश सामान्य प्लेटफार्मों पर मौजूद हैं, और उनके डेरिवेटिव (यानी, Red Hat और CentOS) पर।/etc/something-release

यहाँ कुछ उदाहरण हैं।

उबंटू में है /etc/lsb-release:

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

लेकिन डेबियन है /etc/debian_version:

$ cat /etc/debian_version
5.0.2

फेडोरा, रेड हैट और सेंटोस हैं:

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

मेरे पास इस समय SUSE प्रणाली उपलब्ध नहीं है, लेकिन मेरा मानना ​​है कि यह है /etc/SuSE-release

स्लैकवेयर के पास /etc/slackware-releaseऔर / या है /etc/slackware-version

मांडवीरा के पास है /etc/mandriva-release

अधिकांश लोकप्रिय वितरणों के लिए तब,

$ cat /etc/*{release,version}

सबसे अधिक बार काम करेंगे। स्ट्रिप्ड डाउन और बेयरबोंस "सर्वर" इंस्टॉलेशन में स्थापित वितरण के लिए 'रिलीज' पैकेज नहीं हो सकता है।

साथ ही, दो 3 पार्टी कार्यक्रमों आप स्वचालित रूप से यह जानकारी प्राप्त करने का उपयोग कर सकते हैं Ohai और Facter

ध्यान दें कि कई वितरणों में इस तरह की जानकारी है /etc/issueया नहीं /etc/motd, लेकिन कुछ सुरक्षा नीतियों और सर्वोत्तम प्रथाओं से संकेत मिलता है कि इन फ़ाइलों में एक्सेस नोटिफिकेशन बैनर होना चाहिए।

संबंधित: नोड पर स्थापित सॉफ़्टवेयर पैकेज का संस्करण कैसे पता करें? ,


3
योग्य यहाँ मैं सुझाव देने के लिए सोच रहा था: के बारे में देखो!
Ivo फ्लिप जूल 22'09

2
स्लैकवेयर में / etc / स्लैकवेयर-संस्करण है
केन कीनन

धन्यवाद केन, मेरे पास स्लैकवेयर सिस्टम भी नहीं है।
jtimberman

4
IOW: ls / etc / * {release, version} और जो कुछ भी वापस आता है उसकी जांच करें ...
freiheit

1
अधिकांश में भी / आदि / मुद्दा है
ड्रू स्टीफेंस

41

आप भी कोशिश कर सकते हैं:

$ cat /etc/issue

यह आमतौर पर (हमेशा नहीं, हालांकि) आपको बताएगा कि आप किस वितरण का उपयोग कर रहे हैं। /etc/issueलॉगिन स्क्रीन के लिए प्रयोग की जाने वाली फाइल है।


2
यह केवल एक ही है जिसने इसे साझा मीडिया टेम्पल सर्वर पर मेरे लिए बनाया है। धन्यवाद!!
18

2
हा, रेडहैट पर, यह सिर्फ\S[newline]Kernel \r on an \m
रफिन

20

कर्नेल: uname -a


+1। इसी तरह की प्रणालियों के लिए, की तरह MinGW , "एक" उदाहरण के लिए, "MINGW32_NT-5.1 LAP065 1.0.17 (0,48 / 3/2) 2011-04-24 23:39 i686 Msys" के लिए, संस्करण जानकारी प्राप्त करने के लिए आवश्यक है।
पीटर मोर्टेंसन

15
cat /etc/os-release

Ubuntu, Fedora और OpenSUSE के लिए कम से कम।

कम से कम 10.9 (Mavericks) तक OS X के लिए काम नहीं करता है। इसके बजाय sw_vers का उपयोग करें ।

OpenSUSE ने 13.1 तक कैट / etc / SuSE- रिलीज़ किया था, लेकिन ओएस-रिलीज़ के पक्ष में पदावनत किया गया है।

Redhat 6.1 में कैट / etc / redhat-release है






5

एक लाइन

lsb_release -a && uname -r

1
यह अल्बर्ट जेड के उत्तर पर एक टिप्पणी के रूप में अधिक उपयुक्त हो सकता है।
फिक्सर 1234

1
सभी जवाबों को समाप्त करने के लिए शक्तिशाली जवाब! मुझे प्रयास के लिए
उत्थान

1

इस मुद्दे को platformमॉड्यूल के साथ पायथन का उपयोग करके भी हल किया जा सकता है :

platform()समारोह का उपयोग :

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

उपरोक्त कमांड एक सिंगल स्ट्रिंग देता है जो अंतर्निहित प्लेटफ़ॉर्म को यथासंभव उपयोगी जानकारी के साथ पहचानता है।

या 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', '')

उपरोक्त आदेश एक रिटर्न namedtuple()युक्त छह गुण: system, node, release, version, machine, और processor

या dist()फ़ंक्शन का उपयोग कर:

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

अंतिम कमांड लिनक्स ओएस वितरण नाम के नाम को निर्धारित करने की कोशिश करता है , लेकिन यह पायथन 3.5 से हटा दिया गया है और इसे पायथन 3.8 में हटा दिया जाएगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.