আমি বর্তমানে যে রাস্পবেরি পাই ব্যবহার করছি তার ক্রমিক নম্বরটি কোথায় পাওয়া যাবে?
আমি বর্তমানে যে রাস্পবেরি পাই ব্যবহার করছি তার ক্রমিক নম্বরটি কোথায় পাওয়া যাবে?
উত্তর:
ক্রমিক নম্বর পাওয়া যাবে /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
যেহেতু ট্যাবগুলি কোলনের বাম দিকে ব্যবহৃত হয়, তাই স্থানের অক্ষরটি কাটা নির্ভরযোগ্যভাবে কেবল সিরিয়াল নম্বরটি ধরবে।
এই উত্তরের পূর্ববর্তী সংস্করণগুলি কোলন কেটে যায়, যা ভেরিয়েবলের শীর্ষস্থান তৈরি করে। ভেরিয়েবল অ্যাসাইনমেন্ট চলাকালীন যে অগ্রণী স্থানটি আগে প্রস্তাবিত হয়েছিল তা সরানো হয় না।
বাশ-এ, পার্ল ব্যবহার করে উত্তোলন করা খুব সহজ। ব্যবহার
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
রাস্পবেরি স্পাই একটি খুব দরকারী পাইথনের উদাহরণ সরবরাহ করে।
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
কোনও বাহ্যিক ইউটিলিটি ব্যবহার না করে খাঁটি বাশ ব্যবহার:
pattern='^Serial.*([[:xdigit:]]{16})$'
while read -r line
do
if [[ $line =~ $pattern ]]
then
echo "${BASH_REMATCH[1]}"
fi
done < /proc/cpuinfo
উপরের যে কোনওটির আউটপুট একই।
-P
(পার্ল Regex) গনুহ আধুনিক সংস্করণ একটি বিকল্পের grep
।
এখানে আগ্রহীদের জন্য নোডজেএস ব্যবহার করে রাস্পবেরি সিরিয়াল নম্বর পাওয়ার একটি উপায়:
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
হ্যাঁ. আসলে এটি এটি পেতে।
এটা মজার বিষয় যে আমার পাই 0 এর উপরের উদাহরণের মতো একই ডেটা (সিরিয়াল) রয়েছে। আমার পিআই 0 সিরিয়াল এবং অ্যালেক্স চেম্বারলাইনের পোস্ট করা একটির মধ্যে কোনও ডিফ্রেনটিয়েটর নেই
পিআই 3 এর জন্য আপনি 4 টি প্রসেসর পেয়েছেন
#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 -n '/^Serial/{s/.* //;p}' /proc/cpuinfo
অর্থ:
sed -n
- প্রতিটি লাইন মুদ্রণ না করে স্ট্রিম সম্পাদক চালান run/^Serial/
- "সিরিয়াল" শব্দের সাথে শুরু হওয়া কেবল রেখাগুলি মেলেs/.* //;
- শেষ স্থান পর্যন্ত কিছুই না দিয়ে সবকিছু প্রতিস্থাপন করুন (সেড রেজেক্সগুলি লোভী , বিটিডাব্লু )p
- ফলাফল মুদ্রণ।সেড কখনও কখনও কঠোরভাবে ব্যবহার এবং ক্রিপ্টিক হওয়ার জন্য একটি খারাপ নাম পেয়ে যায় তবে এটি উপলব্ধ এবং লিনাক্স এবং ইউনিক্সের অনেক ধরণের ক্ষেত্রে একইভাবে কাজ করে (যতক্ষণ আপনি পসিক্স কনভেনশনগুলিতে অটল থাকেন) works
sed -n 's/^Serial\s*: 0*//p' /proc/cpuinfo