¿Alguien sabe un comando de terminal que me da el modelo de mi Mac?
Por ejemplo: "MacBook Pro, Retina, 13 pulgadas, mediados de 2013" o "MacBook Pro, finales de 2009" o "Mac Mini, principios de 2010".
Esa información no existe en SystemProfiler ( /usr/sbin/system_profiler SPHardwareDataType
), pero en OS X 10.7 y OS X 10.8 puede ver esa información cuando hace clic en "Más información ..." en la ventana "Acerca de esta Mac".
But in OS X 10.7 and 10.8...
oración? Cuando miro en la ventana Acerca de esta Mac, no veo nada que indique Finales de 2009 o algo similar.About This Mac
y luego enMore Info...
. No tengo idea de cómo obtener esa información en su terminal.Respuestas:
Puede obtener indirectamente esta información desde una página web y el comando curl. En el pasado, esta URL se eliminó y se limitó su velocidad y se colocó detrás de algún tipo de captcha para evitar este uso, por lo que es posible que deba recurrir a otras vías como https://checkcoverage.apple.com/ en ese caso.
Dependiendo de si su número de serie tiene 11 o 12 caracteres, tome los últimos 3 o 4 caracteres, respectivamente, y alimente eso a la siguiente URL después de la parte ? Cc = XXXX . Si su número de serie tenía 12 caracteres y terminaba en DJWR, emitiría este comando:
Para obtener su número de serie, use el siguiente comando:
Por lo tanto, podría tener un comando complicado para consultar Internet si necesita un solo comando:
y luego ejecute la salida de eso a través de sed para cortar a la parte clave
Solía haber un archivo de biblioteca privada con estas asignaciones para que pudiera consultarlo sin conexión, pero noté que desapareció a partir de 10.8.3 (y tal vez antes), por lo que el truco anterior es el único que sé que funciona en el sistema operativo actual sin bibliotecas de terceros.
Algunas buenas bibliotecas de terceros proporcionan un vistazo de esto:
Tenga en cuenta que a partir de noviembre de 2017, Apple ha forzado el uso de
https
overhttp
para este servicio.fuente
sysctl -n hw.model
mencionado a continuación,ioreg -c IOPlatformExpertDevice -d 2 | awk -F\" '/IOPlatformSerialNumber/{print $(NF-1)}'
funcionará más rápido para obtener el número de serie.Puedes usar el comando
en la Terminal para obtener la identificación del modelo de su máquina.
Luego, puede ingresar esa ID en este sitio que enumerará el mes y el año en que se lanzó el modelo en particular.
Como se menciona en los comentarios a continuación, el siguiente comando es mucho más rápido:
fuente
system_profiler SPHardwareDataType | grep "Model Identifier"
funciona mucho más rápido que el generador de perfiles completo, pero aún no devuelve el nombre de marketing como lo solicitó el OP. Vea mi respuesta para un comando que funciona alrededor de la parte "buscar" de su respuesta de una manera amigable.sysctl hw.model
es más rápido que el comando anterior.En El Capitán y Sierra, hay un archivo plist en un marco privado con un resumen de información para cada identificador de modelo; ese dict incluye el nombre comercial (que tiene el año modelo). No sé con qué versión del sistema operativo vino ese archivo en particular, pero NO está en Snow Leopard (lo único que tengo es más antiguo que El Capitan).
Entonces, podría usar eso (u otros trucos similares para otras versiones del sistema operativo después de verificar la versión del sistema operativo, si conoce esos trucos, que yo no conozco), y si eso no fuera aplicable, siempre podría recurrir al enfoque eso requiere acceso a Internet.
Esto no es exactamente lo mismo que muestra About This Mac, que en mi caso es
MacBook Pro (Retina, 13 pulgadas, principios de 2015),
mientras que muestra
13 "MacBook Pro con pantalla Retina (Early 2015)
pero en términos legibles por humanos Creo que está lo suficientemente cerca.
fuente
MacBookPro12,1
) lo que significa que siempre afirma que está en un 2015 13" MBP temprano./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
Tarde al juego, pero aquí hay un enfoque:
.
Esta función lee un archivo plist, busca
CPU Names
dentro de ese archivo:, luego, usando el delimitador
"
analiza el cuarto campo:Probado para funcionar en las versiones actualmente compatibles de OS X.
fuente
defaults read ~/Library/Preferences/com.apple.SystemProfiler.plist 'CPU Names' | cut -sd '"' -f 4 | uniq
Aquí hay una línea usando PlistBuddy, sin grep, sed o awk-wardness.
esto devuelve algo como:
15" MacBook Pro with Thunderbolt 3 and Touch ID (Mid 2017)
-
Otro revestimiento que produce una cadena ligeramente diferente, también usando PlistBuddy (con un poco de awk):
MacBook Pro (15-inch, 2017)
Acredite a varias de las respuestas anteriores por esto.
fuente
Combinando la respuesta de Saaru con una versión depurada de Richard Hamilton , obtengo lo siguiente, que funciona 10.6 a 10.12 (aunque el tamaño de la muestra en 10.6 es solo una máquina) y posiblemente antes / después, y no depende de una conexión a Internet y los servidores de Apple no cambian
Algunas notas sobre lo que descubrí para llegar aquí:
defaults
trabajar en 10.6 y, por lo tanto, volver a agregarlo manualmente a las-f
pruebas de shell-n
banderasysctl
significa que solo imprime el valor, ahorrándonos algosed
oawk
trabajandofuente
Tenemos algunos MBP de 2019 que devuelven modelos de diferentes años para las dos frases publicadas por tabrindle .
Su primer one-liner (usando
sysctl -n hw.model
) regresa 2018 para un modelo 2019:Incorrecto: MacBook Pro de 15 "con Thunderbolt 3 y Touch ID (mediados de 2018)
Pero su segundo one-liner (usando
system_profiler SPHardwareDataType
) devuelve el nombre correcto:Derecha: MacBook Pro (15 pulgadas, 2019)
fuente
Esto debería hacerlo:
fuente