मैं कमांड लाइन पर वितरण के नाम का उपयोग कैसे करूं?


12

मेरे पास कई सारे डिस्ट्रोस हैं जिनके साथ मैं खेल रहा हूं। मैं एसडी कार्ड लेबल करता हूं, लेकिन:

  1. वे उलटे हैं
  2. मैं आमतौर पर आरपीआई के दूसरे कमरे में हूं

मैंने init.d में एक सेवा स्थापित की है, जो मुझे पुशओवर के माध्यम से बताती है कि मेरा पाई बंद हो रहा है या शुरू हो रहा है (कर्ल के माध्यम से एपीआई का उपयोग करके)।

मैं इसमें शामिल करना चाहता हूं कि वर्तमान में मैं कौन से डिस्ट्रो का उपयोग कर रहा हूं।

मैं अपने नवीनतम बूट पर देख सकता हूं (राफ्टबियन के साथ खेल रहा हूं):

Linux raspberrypi 3.1.9adafruit+ #8 PREEMPT Wed Aug 1 18:02:42 EDT 2012 armv6l

मुझे अपनी स्क्रिप्ट में शामिल करने के लिए वह जानकारी कैसे मिल सकती है?

मैंने lsb- रिलीज़ स्थापित किया, लेकिन यह केवल मुझे यह देता है:

pi@raspberrypi / $ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux testing/unstable
Release:    testing/unstable
Codename:   n/a

जो मेरे नियमित रास्पियन के समान होगा।

इसके अलावा, मैं शायद खुद को एसडी कार्ड पर विशेष उदाहरण के बारे में कुछ बताना चाहूंगा (क्योंकि मेरे पास शायद एक ही आधार डिस्ट्रॉ के कई होंगे)। जाहिर है, मैं प्रत्येक एसडी-कार्ड पर एक ही स्थान पर एक फ़ाइल छोड़ सकता हूं, लेकिन क्या उस तरह की जानकारी कहाँ रखी जानी चाहिए?


वाऊ मज़ेदार। क्या आप बता सकते हैं कि आपने उस पुशओवर / init.d चीज़ को एक साथ कैसे रखा? यदि आप इसका उत्तर देंगे तो मैं एक प्रश्न पूछूंगा :)
Zlatko

@zladuric एक खाते के लिए pushover.net पर साइन अप करें। कर्ल एपीआई बहुत सरल है। मैंने init.d में एक सरल स्क्रिप्ट को "सेवा" के रूप में सेट किया है और यह बस स्टार्ट / स्टॉप पर विभिन्न सूचनाएं भेजता है। तकनीकी रूप से यह एक स्टार्ट स्टॉप नोटिफिकेशन है, इसलिए यदि यह कभी "स्टार्ट" हो जाता है तो यह एक नोटिफिकेशन भेजेगा। व्यवहार में, बूट और शटडाउन के अलावा कुछ भी उन्हें शुरू या बंद नहीं करता है। यदि आप पूर्ण कोड चाहते हैं, तो आगे बढ़ें और एक प्रश्न पोस्ट करें।
कैड रूक्स

यहाँ सवाल है: raspberrypi.stackexchange.com/questions/1531/… :)
Zlatko

जवाबों:



7

प्रयत्न

cat /etc/*-release

मेरे डेस्कटॉप पर, यह देता है

NAME="Arch Linux"
ID=arch
PRETTY_NAME="Arch Linux"
ANSI_COLOR="0;36"
HOME_URL="https://www.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"

आधिकारिक रास्पबेरी पाई छवियों (रास्पबियन और आर्क) की जाँच करने के बाद, /etc/os-releaseदोनों पर उपलब्ध है और इसमें कम से कम NAME और PRETTY_NAME गुण हैं।

मैं वितरण का नाम कैसे निकालूं?

यह काफी सरल है, कोशिश करें

$ cat /etc/os-release | perl -n -e '/^NAME=\"([a-zA-Z ]*)\"$/ && print "$1\n"'
Arch Linux

संदर्भ

  1. HowTo: मेरे लिनक्स वितरण नाम और संस्करण का पता लगाएं

अछा लगता है। अंततः यह मायने नहीं रखता कि यह वास्तव में सार्वभौमिक है, जब तक कि यह प्रश्न में डिस्ट्रो के लिए काम करता है। और अगर यह डिफ़ॉल्ट रूप से एक के साथ प्रयोग नहीं करता है, तो फ़ाइल सिस्टम पर किसी की अपनी फ़ाइल डालना आसान होगा।
क्रिस स्ट्रैटन

4

जैसा कि बताया गया है, आप उपयोग कर सकते हैं uname, लेकिन यह केवल कर्नेल संस्करण दिखाएगा। यदि आपके पास अलग-अलग वितरणों / कार्डों की एक जोड़ी पर एक ही कर्नेल संस्करण है (जो बहुत संभावना है कि उनमें से कुछ एक ही आधार कर्नेल का उपयोग कर रहे हैं), तो आपको उनमें से प्रत्येक के लिए एक ही परिणाम मिलेगा। तो डिस्ट्रोस के बीच अंतर करने का सबसे अच्छा तरीका कर्नेल के अलावा कुछ और का उपयोग करना है। हालांकि कोई सार्वभौमिक तरीका नहीं है। एक आसान तरीका यह होगा कि hostname का उपयोग करें (और इसे हर डिस्ट्रो के लिए बदलें)।

cat / proc / version / proc / sys / कर्नेल / होस्टनाम

या

hostname और& uname -a


cat / proc / version / proc / sys / कर्नेल / होस्टनाम
Krzysztof Adamski

hostname && uname -a (होस्टनाम काम करता है - इस समय जांच के लिए पीआई बूट नहीं किया गया है)
क्रिस स्ट्रैटन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.