ฉันจะเข้าถึงชื่อของการแจกจ่ายในบรรทัดคำสั่งได้อย่างไร


12

ฉันมีจำนวน distros ที่ฉันเล่นด้วย ฉันติดป้ายกำกับการ์ด SD แต่:

  1. พวกเขากลับหัวกลับหาง
  2. ฉันมักจะอยู่ในห้องอื่นจาก RPi

ฉันตั้งค่าบริการใน init.d ซึ่งแจ้งให้ฉันทราบผ่านทาง Pushover เมื่อ Pi ของฉันปิดตัวเองหรือเริ่มทำงาน (ใช้ API ผ่าน curl)

ฉันต้องการสิ่งนี้เพื่อรวม distro ที่ฉันใช้อยู่

ฉันสามารถดูการบูตล่าสุดของฉัน (เล่นกับ adafruit Raspbian):

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

ฉันจะรับข้อมูลนั้นเพื่อรวมไว้ในสคริปต์ของฉันได้อย่างไร

ฉันติดตั้ง lsb-release แต่นั่นให้สิ่งนี้กับฉันเท่านั้น:

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

ซึ่งจะดูเหมือน Raspbian ปกติของฉัน

นอกจากนี้ฉันอาจต้องการระบุบางอย่างเกี่ยวกับอินสแตนซ์เฉพาะบนการ์ด SD (เนื่องจากฉันอาจมี distro ฐานเดียวกันหลายชุด) เห็นได้ชัดว่าฉันสามารถวางไฟล์ไว้ในที่เดียวกันบนการ์ด SD แต่ละอันได้ แต่มีวิธีการที่จะวางข้อมูลประเภทนั้นหรือไม่?


ว้าวเท่ห์ คุณช่วยชี้ให้เห็นว่าคุณรวบรวมสิ่งที่ pushover / init.d รวมกันได้อย่างไร? ฉันจะถามคำถามว่าคุณจะตอบมันไหม :)
Zlatko

@zladuric ลงทะเบียนที่ pushover.net สำหรับบัญชี Curl API นั้นค่อนข้างง่าย ฉันตั้งค่าสคริปต์อย่างง่ายใน init.d เป็น "บริการ" และมันก็ส่งการแจ้งเตือนที่แตกต่างกันเมื่อเริ่ม / หยุด ในทางเทคนิคมันเป็นการแจ้งเตือนเมื่อเริ่มต้นดังนั้นหากได้รับ "เริ่มต้น" มันจะส่งการแจ้งเตือน ในทางปฏิบัติไม่มีอะไรเริ่มหรือหยุดยกเว้นการบู๊ตและปิดเครื่อง หากคุณต้องการรหัสเต็มไปข้างหน้าและโพสต์คำถาม
Cade Roux

นี่คือคำถาม: 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/"

หลังจากตรวจสอบรูปภาพ Raspberry Pi อย่างเป็นทางการ (Raspbian และ Arch) แล้ว/etc/os-releaseมีให้ทั้งสองอย่างและมีคุณสมบัติ NAME และ PRETTY_NAME เป็นอย่างน้อย

ฉันจะแยกชื่อการแจกจ่ายได้อย่างไร

ค่อนข้างง่ายลอง

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

อ้างอิง

  1. HowTo: ค้นหาชื่อและเวอร์ชันการแจกจ่าย Linux ของฉัน

ดูดี. ในท้ายที่สุดมันไม่สำคัญว่ามันจะเป็นสากลอย่างแท้จริงหรือไม่ และมันจะเป็นการง่ายที่จะวางไฟล์ของตัวเองลงในระบบไฟล์ถ้าทำการทดลองกับไฟล์ที่ไม่มีตามค่าเริ่มต้น
Chris Stratton

4

คุณสามารถใช้งานunameได้ แต่สิ่งนี้จะแสดงเฉพาะรุ่นเคอร์เนลเท่านั้น หากคุณมีเคอร์เนลรุ่นเดียวกันในการแจกแจง / การ์ดที่แตกต่างกันสองสามอัน (ซึ่งมีแนวโน้มมากเนื่องจากมีสองรุ่นที่ใช้เคอร์เนลพื้นฐานเดียวกัน) คุณจะได้รับผลลัพธ์เหมือนกันสำหรับแต่ละการ์ด ดังนั้นวิธีที่ดีที่สุดในการแยกความแตกต่างระหว่าง distros คือการใช้สิ่งอื่นนอกเหนือจากเคอร์เนล อย่างไรก็ตามไม่มีวิธีสากล วิธีง่าย ๆ อย่างหนึ่งก็คือใช้ชื่อโฮสต์ (และเปลี่ยนเป็นทุก distro)

cat / proc / version / proc / sys / kernel / hostname

หรือ

ชื่อโฮสต์ && uname -a


cat / proc / version / proc / sys / kernel / hostname
Krzysztof Adamski

ชื่อโฮสต์ && uname -a (สมมติว่าชื่อโฮสต์ทำงาน - pi ไม่ได้ถูกบูทเพื่อตรวจสอบในขณะนี้)
Chris Stratton
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.