টার্মিনাল থেকে কোনও ম্যাক প্রোগ্রামে আমি সিরিয়াল নম্বরটি কীভাবে খুঁজে পাব?


37

ইউনিক্স কমান্ড লাইন থেকে সিস্টেমের ক্রমিক নম্বরটি পুনরুদ্ধার করতে আমি কোন আদেশ ব্যবহার করতে পারি? unameসফ্টওয়্যার এবং হার্ডওয়্যার সম্পর্কে কিছু তথ্য আউটপুট হিসাবে , আমি স্ক্রিপ্টে ব্যবহার করার জন্য একটি আদেশ থেকে সিরিয়াল নম্বরটি পুনরুদ্ধার করতে চাই।

উত্তর:


55

System_profiler কমান্ড (অভিমানী আপনি 10.3 অথবা ঊর্ধ্বতন সংস্করণ রয়েছে) সরাসরি উত্তর সহজে মানুষের পাঠযোগ্য যে প্রদান করে, কিন্তু আপনি ব্যবহার করতে পারেন ioreg যেমন সাধারণত দ্রুত সমাপ্ত কাজের জন্য।

system_profiler SPHardwareDataType মূল হার্ডওয়্যার সম্পর্কিত তথ্য রয়েছে এমন ডেটা টাইপ এবং আপনি প্রয়োজন অনুযায়ী গ্রেপ বা অ্যাডকে জিনিসগুলি আরও কম ব্যবহার করতে পারেন:

system_profiler SPHardwareDataType | awk '/Serial/ {print $4}'

অথবা

ioreg -l | awk '/IOPlatformSerialNumber/ { print $4;}'

এই দুটি কমান্ডই আধুনিক এসএসডি ম্যাকগুলিতে চালাতে 0.5 থেকে 0.2 সেকেন্ডের মধ্যে সময় নেয়, সুতরাং আপনি যদি কমান্ডটি অনুকূল করতে চান এবং "অপসারণ করতে চান তবে আপনার উত্তরটি 0.005 বা আপনার মধ্যে থাকতে পারে:

ioreg -c IOPlatformExpertDevice -d 2 | awk -F\" '/IOPlatformSerialNumber/{print $(NF-1)}'

2
ioregএক আমার MBPR তাত্ক্ষণিক কাছে। system_profilerযদিও এই ম্যাকটিতে আমার বয়স্কদের চেয়ে দ্রুত গতিতে ধীর।
মার্খুন্তে

system_profile এত ধীর, ioreg সুপার দ্রুত।
ব্যবহারকারী 1735921

14

এটিও কাজ করে ...

ioreg -l | grep IOPlatformSerialNumber

আমরা দেখতে চাই না awkযে 600 টি ioregআউটপুট আউটপুট বের করতে সংস্করণটির চেয়ে এটি টাইপ করা অবশ্যই সহজ । (এছাড়াও - নীচের ভোটারদের কিছু মনে করবেন না - কিছু লোক সত্যিই সংক্ষিপ্ত উত্তর পছন্দ করেন না বা ভুলে যান যে
গ্রেপ

ঠিক আছে, ধন্যবাদ বিমিক, এটি আমার কাছে সহজ বলে মনে হচ্ছে, তবে সঠিক উত্তরের জন্য ভোট প্রত্যাশা করেনি। জানা ভাল.
মিঃপুল

1
@ এমআরপুল যখন এটি পূর্বের উত্তরে যা পুনরাবৃত্তি করে এবং পূর্বের উত্তরটির উন্নতি করে না
ব্যবহারকারী 151019

1
তারা প্রতি সেফ ভুল ভোট নয়। এমনকি ডাউন ভোটগুলিও ভাল কারণ এগুলি নির্দেশ করে যে কেউ পদক্ষেপ নিতে যথেষ্ট যত্নশীল s এছাড়াও, আমি যখন ভোটগুলি দেখি যা পুরোপুরি আমার পক্ষে মোটামুটিভাবে নিখুঁত হয় না এমন মন্তব্য করতে বা চ্যাট করতে পোস্ট করার চেষ্টা করি। সুসংবাদটি হ'ল ভোটগুলি +১০ এবং ডাউন ভোটগুলি কেবল -২ তাই আপনি যদি বিতর্কিত কিছু পোস্ট করেন (+২ এবং -২ সহ এই শূন্য ভারসাম্যটি এখনও +১ rep রেপ।) ইন্টারনেটে আপনাকে স্বাগতম ;-)
বিমিকে

1
এবং চিহ্নটি সঠিক, যদি সমস্ত ব্যবহারকারী না করে নির্দিষ্ট করে দেরী, সংক্ষিপ্ত, ছোটখাটো পরিবর্তনগুলি পোস্ট না করে ব্যাখ্যা করে থাকে (আমি যদি আপনার পয়েন্টটি অনুমান করি - টাইপিং গ্রেপ উভয়ই আরও স্পষ্ট, খাটো এবং অনেকের পক্ষে যথেষ্ট) আমি সেই ব্যবহারকারীকে পিং করে জিজ্ঞাসা করতে পারি তারা এটি ছিটকে। বেশিরভাগ উচ্চ খ্যাতিমান ব্যবহারকারীরা আমার উত্তরে মন্তব্য করবেন, তবে আমরা 1 জন প্রতিনিধি এমন নতুন ব্যবহারকারী এটি করার আশা করতে পারি না, এখন আমরা করতে পারি :-)
বিমিকে

2

এটি মনে রাখা সহজ করার জন্য, কেস সংবেদনশীল অনুসন্ধান ব্যবহার করুন:

ioreg -l | grep -i serialnumber | grep -i platform

সতর্কতা: এটি একটি লাইন দেয় | "আইওপ্ল্যাটফর্মসায়ার্নিম্বার" = "আপনারসরিয়াল নাম্বার" এটি দৃশ্যত ঠিক আছে তবে আপনি যদি এটি কোনও স্ক্রিপ্টে ব্যবহার করেন তবে আপনাকে এটি খালি করার জন্য পাইপ লাগাতে হবে।
জেসনোলজি

1

সি ++ উদাহরণ:

#include <CoreFoundation/CoreFoundation.h>
#include <IOKit/IOKitLib.h>

std::string 

getSerialNumber()

{

   CFStringRef serial;
    char buffer[32] = {0};
    std::string seriaNumber;

io_service_t platformExpert = IOServiceGetMatchingService(kIOMasterPortDefault,
                                                          IOServiceMatching("IOPlatformExpertDevice"));
if (platformExpert)
{
    CFTypeRef serialNumberAsCFString = IORegistryEntryCreateCFProperty(platformExpert,
                                                                       CFSTR(kIOPlatformSerialNumberKey),
                                                                       kCFAllocatorDefault, 0);
    if (serialNumberAsCFString) {
        serial = (CFStringRef)serialNumberAsCFString;
    }
    if (CFStringGetCString(serial, buffer, 32, kCFStringEncodingUTF8)) {
        seriaNumber = buffer;
    }

    IOObjectRelease(platformExpert);
}
return seriaNumber;
}

ভিন্ন জিজ্ঞাসা স্বাগতম। দয়া করে বুঝতে পারেন যে একটি উত্তর পোস্ট করা যাতে মূলত কোনও কোড থাকে যার সাথে কোনও দিকনির্দেশনা থাকে সেটির সাথে কীভাবে করা যায় বা কীভাবে এটি ব্যবহার করতে হয় তার কোনও মানের উত্তর নেই। দয়া করে পড়ার জন্য সময় দিন আমি কীভাবে একটি ভাল উত্তর লিখব? এবং তারপরে কোডটি সংকলন এবং এটি কীভাবে ব্যবহার করবেন সে সম্পর্কে নির্দেশাবলী অন্তর্ভুক্ত করার জন্য আপনার উত্তরটি সম্পাদনা করুন। এছাড়াও নেওয়া ট্যুর
ব্যবহারকারী 3439894

এটি লক্ষণীয় যে এটি অ্যাপল টেকনিক্যাল ডক্স থেকে নেওয়া হয়েছিল, যেখানে একটি ব্যাখ্যা উপস্থিত রয়েছে: developer.apple.com/library/archive/technotes/tn1103/…
সিন্ডার বিস্কুট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.