Est-ce que quelqu'un connaît une commande de terminal qui me donne le modèle de mon Mac?
Par exemple, «MacBook Pro, Retina, 13 pouces, mi-2013» ou «MacBook Pro, fin 2009» ou «Mac Mini, début 2010».
Ces informations n'existent pas dans SystemProfiler ( /usr/sbin/system_profiler SPHardwareDataType
), mais sous OS X 10.7 et OS X 10.8, vous pouvez voir ces informations lorsque vous cliquez sur "Plus d'infos ..." dans la fenêtre "À propos de ce Mac".
But in OS X 10.7 and 10.8...
phrase? Lorsque je regarde dans la fenêtre À propos de ce Mac, je ne vois rien qui indique Late 2009 ou quelque chose de similaire.About This Mac
puis surMore Info...
. Je ne sais pas comment obtenir cette information dans votre terminal.Réponses:
Vous pouvez obtenir indirectement ces informations à partir d’une page Web et de la commande curl. Dans le passé, cette URL a été supprimée, son taux est limité et une sorte de captcha a été mis en place pour empêcher cette utilisation. Vous devrez donc peut-être recourir à d’autres voies telles que https://checkcoverage.apple.com/ .
Selon que votre numéro de série comporte 11 ou 12 caractères, prenez les 3 ou 4 derniers caractères, respectivement, et transmettez-les à l'URL suivante après la partie ? Cc = XXXX . Si votre numéro de série était composé de 12 caractères et s’était terminé par DJWR, vous devez émettre cette commande:
Pour obtenir votre numéro de série, utilisez la commande suivante:
Ainsi, vous pourriez avoir une commande compliquée pour interroger Internet si vous avez besoin d'une seule commande:
puis exécutez la sortie de cela à travers sed pour couper à la partie clé
Il existait un fichier de bibliothèque privée avec ces mappages pour pouvoir le consulter hors ligne, mais j’ai remarqué qu’il n’était plus disponible à partir de 10.8.3 (et peut-être plus tôt), l’astuce ci-dessus est donc la seule que je connaisse qui fonctionne avec le système d’exploitation actuel sans bibliothèques tierces.
Quelques belles librairies tierces fournissent un aperçu de ceci:
Notez que depuis novembre 2017, Apple a forcé l'utilisation de
https
overhttp
pour ce service.la source
sysctl -n hw.model
mentionné ci-dessous,ioreg -c IOPlatformExpertDevice -d 2 | awk -F\" '/IOPlatformSerialNumber/{print $(NF-1)}'
travaillera plus rapidement pour obtenir le numéro de série.Vous pouvez utiliser la commande
dans Terminal pour obtenir l’ID de modèle de votre machine.
Vous pouvez ensuite entrer cet identifiant sur ce site, qui indiquera le mois et l'année de lancement du modèle.
Comme mentionné dans les commentaires ci-dessous, la commande suivante est beaucoup plus rapide:
la source
system_profiler SPHardwareDataType | grep "Model Identifier"
s'exécute beaucoup plus rapidement que le profileur complet, mais ne renvoie toujours pas le nom marketing tel que demandé par l'OP. Voir ma réponse pour une commande qui fonctionne autour de la partie "recherche" de votre réponse d'une manière conviviale pour les terminaux.sysctl hw.model
est plus rapide que la commande ci-dessus.Sur El Capitan et Sierra, il existe un fichier plist dans un framework privé avec un dict of info pour chaque identifiant de modèle; ce dict comprend le nom marketing (qui contient l'année modèle). Je ne sais pas quelle version du système d’exploitation ce fichier est arrivé, mais ce n’est PAS sur Snow Leopard (la seule chose que j’ai est plus ancienne que El Capitan).
Donc, vous pouvez utiliser cela (ou d'autres astuces similaires pour d'autres versions de système d'exploitation après avoir vérifié la version du système d'exploitation, si vous connaissez ces astuces, ce que je ne connais pas), et si cela ne s'appliquait pas, vous pouvez toujours revenir à l'approche. cela nécessite un accès Internet.
Ce n’est pas exactement la même chose que ce que nous montre About This Mac, qui dans mon cas est
MacBook Pro (Retina, 13 pouces, début 2015),
alors que cela montre un
MacBook Pro 13 pouces avec écran Retina (début 2015),
mais en termes lisibles par l’homme. , Je pense que c'est assez proche.
la source
MacBookPro12,1
), ce qui signifie qu'il prétend toujours que vous êtes sur un début de mpb 13 "./usr/libexec/PlistBuddy -c "print :$(sysctl hw.model | cut -f 2 -d ' '):_LOCALIZABLE_:marketingModel" /System/Library/PrivateFrameworks/ServerInformation.framework/Versions/A/Resources/English.lproj/SIMachineAttributes.plist
En retard au jeu, mais voici une approche:
.
Cette fonction lit un fichier plist, cherche
CPU Names
dans ce fichier:, puis l’utilisation du délimiteur
"
analyse le quatrième champ:Testé pour fonctionner sur les versions actuellement prises en charge de OS X.
la source
defaults read ~/Library/Preferences/com.apple.SystemProfiler.plist 'CPU Names' | cut -sd '"' -f 4 | uniq
Voici un one-liner utilisant PlistBuddy, sans grep, sed ou awk-wardness.
cela retourne quelque chose comme:
15" MacBook Pro with Thunderbolt 3 and Touch ID (Mid 2017)
-
Une autre doublure qui produit une chaîne légèrement différente, utilisant également PlistBuddy (avec un tout petit peu de awk):
MacBook Pro (15-inch, 2017)
Crédit à plusieurs des réponses ci-dessus pour cela.
la source
En combinant la réponse de Saaru avec une version mise au point de Richard Hamilton , je reçois le texte suivant, qui fonctionne de 10,6 à 10,12 (bien que la taille de l’échantillon sur 10.6 ne soit qu’une machine) et éventuellement antérieure / ultérieure, et ne dépende pas d’une connexion à Internet et les serveurs d'Apple ne changent pas
Quelques notes sur ce que j'ai découvert pour arriver ici:
defaults
pouvoir fonctionner en 10.6, et donc l'ajouter à nouveau manuellement aux-f
tests du shell-n
drapeau àsysctl
signifie qu'il n'imprime que la valeur, ce qui nous en épargne un peused
ouawk
fonctionnela source
Nous avons quelques 2019 MBP qui renvoient des modèles d' année différents pour les deux one-liners publiés par tabrindle .
Son premier one-liner (using
sysctl -n hw.model
) revient en 2018 pour un modèle 2019:Mauvais: MacBook Pro 15 "avec Thunderbolt 3 et Touch ID (mi-2018)
Mais son deuxième one-liner (using
system_profiler SPHardwareDataType
) renvoie le nom correct:Droite: MacBook Pro (15 pouces, 2019)
la source
Cela devrait le faire:
la source