क्या यह निर्धारित करने का एक तरीका है कि लिनक्स का कौन सा संस्करण (वितरण और कर्नेल संस्करण, मुझे लगता है) चल रहा है (कमांड-लाइन से), जो किसी भी लिनक्स सिस्टम पर काम करता है?
क्या यह निर्धारित करने का एक तरीका है कि लिनक्स का कौन सा संस्करण (वितरण और कर्नेल संस्करण, मुझे लगता है) चल रहा है (कमांड-लाइन से), जो किसी भी लिनक्स सिस्टम पर काम करता है?
जवाबों:
कर्नेल का सार्वभौमिक रूप से पता लगाया जाता है 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
, लेकिन कुछ सुरक्षा नीतियों और सर्वोत्तम प्रथाओं से संकेत मिलता है कि इन फ़ाइलों में एक्सेस नोटिफिकेशन बैनर होना चाहिए।
संबंधित: नोड पर स्थापित सॉफ़्टवेयर पैकेज का संस्करण कैसे पता करें? , कठपुतली ।
आप भी कोशिश कर सकते हैं:
$ cat /etc/issue
यह आमतौर पर (हमेशा नहीं, हालांकि) आपको बताएगा कि आप किस वितरण का उपयोग कर रहे हैं। /etc/issue
लॉगिन स्क्रीन के लिए प्रयोग की जाने वाली फाइल है।
\S[newline]Kernel \r on an \m
कर्नेल: uname -a
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 है
cat /proc/version
मुझे एक साझा VPS पर Red Hat मिला।
कर्नेल: uname -r
distro: lsb_release -a
ये अधिकांश लिनक्स सिस्टम पर चलेंगे
lsb_release -a && uname -r
इस मुद्दे को 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 में हटा दिया जाएगा ।