ฉันจะหาหมายเลขซีเรียลของ Raspberry Pi ที่ฉันกำลังใช้อยู่ได้ที่ไหน
ฉันจะหาหมายเลขซีเรียลของ Raspberry Pi ที่ฉันกำลังใช้อยู่ได้ที่ไหน
คำตอบ:
หมายเลขซีเรียลสามารถพบได้ใน/proc/cpuinfo
; ตัวอย่างเช่น,
pi@raspberrypi:~$ cat /proc/cpuinfo
Processor : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS : 697.95
Features : swp half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xb76
CPU revision : 7
Hardware : BCM2708
Revision : 1000002
Serial : 000000000000000d
คุณสามารถใช้การทุบตีระบบพื้นฐานได้
cat /proc/cpuinfo | grep Serial | cut -d ' ' -f 2
เนื่องจากมีการใช้แท็บทางด้านซ้ายของโคลอนการตัดอักขระช่องว่างจะจับได้เฉพาะหมายเลขซีเรียลเท่านั้น
เวอร์ชันก่อนหน้าของคำตอบนี้ตัดกับเครื่องหมายจุดคู่ซึ่งสร้างพื้นที่ส่วนนำในตัวแปร พื้นที่ส่วนนำนั้นจะไม่ถูกลบระหว่างการกำหนดตัวแปรตามที่แนะนำไว้ก่อนหน้านี้
ใน Bash มันง่ายมากในการแยก ... โดยใช้ Perl ใช้
cat /proc/cpuinfo | perl -n -e '/^Serial\s*:\s([0-9a-f]{16})$/ && print "$1\n"'
ตัวอย่างเช่น,
$ cat /proc/cpuinfo | perl -n -e '/^Serial\s*:\s([0-9a-f]{16})$/ && print "$1\n"'
000000000000000d
Raspberry Spyให้ตัวอย่างที่มีประโยชน์มากกับงูหลาม
def getserial():
# Extract serial from cpuinfo file
cpuserial = "0000000000000000"
try:
f = open('/proc/cpuinfo','r')
for line in f:
if line[0:6]=='Serial':
cpuserial = line[10:26]
f.close()
except:
cpuserial = "ERROR000000000"
return cpuserial
cat
ก็ไม่จำเป็นที่จะใช้
การใช้grep
:
grep -Po '^Serial\s*:\s*\K[[:xdigit:]]{16}' /proc/cpuinfo
การใช้ pure Bash โดยไม่ต้องใช้ยูทิลิตี้ภายนอก:
pattern='^Serial.*([[:xdigit:]]{16})$'
while read -r line
do
if [[ $line =~ $pattern ]]
then
echo "${BASH_REMATCH[1]}"
fi
done < /proc/cpuinfo
ผลลัพธ์ของทั้งสองข้างต้นเหมือนกัน
-P
(Perl regex) เป็นตัวเลือกในรุ่นที่ทันสมัยของ grep
GNU
ตั้งแต่นี้กลายเป็นชนิด "กี่วิธีที่คุณสามารถรับอนุกรม" นี่คือรุ่น awk
awk '/ ^ Serial \ s *: \ s / {พิมพ์ $ 3}' / proc / cpuinfo
สำหรับผู้ที่สนใจที่นี่เป็นวิธีรับหมายเลข Raspberry โดยใช้ NodeJS:
function getserial(){
var fs = require('fs');
var content = fs.readFileSync('/proc/cpuinfo', 'utf8');
var cont_array = content.split("\n");
var serial_line = cont_array[cont_array.length-2];
var serial = serial_line.split(":");
return serial[1].slice(1);
}
grep -i serial /proc/cpuinfo | cut -d : -f2
ใช่. อันที่จริงวิธีการที่จะได้รับมัน
มันตลกที่ Pi0 ของฉันมีข้อมูลเดียวกัน (อนุกรม) ดังตัวอย่างข้างต้น ไม่มีความแตกต่างระหว่างซีเรียล PI0 ของฉันกับโพสต์โดย Alex Chamberlain
สำหรับ PI3 yo มี 4 procesors
#cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 1
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 2
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
processor : 3
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 38.40
Features : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xd03
CPU revision : 4
Hardware : BCM2709
Revision : a02082
Serial : 000000003d1d1c36
คำตอบที่สั้นและง่ายที่สุดยังไม่ได้ให้คำตอบ นี่ใน sed:
sed -n '/^Serial/{s/.* //;p}' /proc/cpuinfo
ความหมาย:
sed -n
- รันโปรแกรมแก้ไขสตรีมโดยไม่ต้องพิมพ์ทุกบรรทัด/^Serial/
- จับคู่เฉพาะบรรทัดที่ขึ้นต้นด้วยคำว่า "อนุกรม"s/.* //;
- แทนที่ทุกอย่างจนถึงพื้นที่สุดท้ายด้วยไม่มีอะไร (sed regexes โลภ btw)p
- พิมพ์ผลลัพธ์sed บางครั้งได้รับชื่อที่ไม่ดีสำหรับการใช้งานยากและเป็นความลับ แต่ก็มีให้และทำงานในลักษณะเดียวกัน (ตราบใดที่คุณติดกับ POSIX Convention) ใน Linux และ Unix
sed -n 's/^Serial\s*: 0*//p' /proc/cpuinfo