Alguém conhece um comando do terminal que me dê o modelo do meu Mac?
Por exemplo - "MacBook Pro, Retina, 13 polegadas, meados de 2013" ou "MacBook Pro, final de 2009" ou "Mac Mini, início de 2010".
Essas informações não existem no SystemProfiler ( /usr/sbin/system_profiler SPHardwareDataType
), mas no OS X 10.7 e OS X 10.8 você pode vê-las ao clicar em "Mais informações ..." na janela "Sobre este Mac".
But in OS X 10.7 and 10.8...
frase? Quando olho na janela Sobre este Mac, não vejo nada que indique o final de 2009 ou algo semelhante.About This Mac
e depois ligaMore Info...
. Não tenho idéia de como obter essas informações no seu terminal.Respostas:
Você pode obter indiretamente essas informações de uma página da web e do comando curl. No passado, esse URL era reduzido e com taxa limitada e colocado atrás de algum tipo de captcha para impedir esse uso; portanto, talvez você precise recorrer a outros caminhos como https://checkcoverage.apple.com/ nesse caso.
Dependendo se o número de série tiver 11 ou 12 caracteres, use os últimos 3 ou 4 caracteres, respectivamente, e alimente-os no seguinte URL após a parte ? Cc = XXXX . Se o seu número de série tivesse 12 caracteres e terminasse em DJWR, você emiteria este comando:
Para obter seu número de série, use o seguinte comando:
Portanto, você pode ter um comando complicado para consultar a Internet se precisar de um único comando:
e, em seguida, execute a saída disso através do sed para cortar a parte principal
Costumava haver um arquivo de biblioteca privada com esses mapeamentos para que você pudesse consultá-lo offline, mas notei que ele havia desaparecido a partir da 10.8.3 (e talvez mais cedo), portanto o truque acima é o único que eu sei que funciona no sistema operacional atual sem bibliotecas de terceiros.
Algumas boas bibliotecas de terceiros fornecem uma olhada nisso:
Observe que, a partir de novembro de 2017, a Apple forçou o uso de
https
maishttp
deste serviço.fonte
sysctl -n hw.model
mencionado abaixo,ioreg -c IOPlatformExpertDevice -d 2 | awk -F\" '/IOPlatformSerialNumber/{print $(NF-1)}'
funcionará mais rápido para obter o número de série.Você pode usar o comando
no Terminal para obter o ID do modelo da sua máquina.
Em seguida, você pode inserir esse ID neste site, que listará o mês e o ano em que o modelo específico foi lançado.
Conforme mencionado nos comentários abaixo, o seguinte comando é muito mais rápido:
fonte
system_profiler SPHardwareDataType | grep "Model Identifier"
executa muito mais rápido que o criador de perfil completo, mas ainda não retorna o nome de marketing conforme solicitado pelo OP. Veja minha resposta para um comando que contorna a parte "pesquisar" de sua resposta de maneira amigável ao terminal.sysctl hw.model
é mais rápido que o comando acima.Em El Capitan e Sierra, há um arquivo plist em uma estrutura privada com um ditado de informações para cada identificador de modelo; esse ditado inclui o nome de marketing (que possui o ano do modelo). Não sei com qual versão do SO esse arquivo específico veio, mas NÃO está no Snow Leopard (a única coisa que tenho que é mais antiga que El Capitan).
Portanto, você pode usar isso (ou outros truques semelhantes para outras versões do sistema operacional depois de verificar a versão do sistema operacional, se você conhece esses truques, o que eu não conheço) e, se isso não for aplicável, você sempre poderá voltar à abordagem isso requer acesso à Internet.
Não é exatamente o mesmo que o About This Mac mostra, que no meu caso é o
MacBook Pro (Retina, 13 polegadas, início de 2015),
enquanto mostra o
MacBook Pro de 13 "com tela Retina (início de 2015),
mas em termos legíveis por humanos , Acho que está perto o suficiente.
fonte
MacBookPro12,1
) o que significa que sempre afirma que você está em um início de 2015 13" MBP./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 do jogo, mas aqui está uma abordagem:
.
Esta função lê um arquivo plist, procura
CPU Names
dentro desse arquivo:, em seguida, usar o delimitador
"
analisa o quarto campo:Testado para funcionar nas versões atualmente suportadas do OS X.
fonte
defaults read ~/Library/Preferences/com.apple.SystemProfiler.plist 'CPU Names' | cut -sd '"' -f 4 | uniq
Aqui está um liner usando o PlistBuddy, sem nenhum grep, sed ou awk-wardness.
isso retorna algo como:
15" MacBook Pro with Thunderbolt 3 and Touch ID (Mid 2017)
-
Outro liner que produz uma string ligeiramente diferente, também usando o PlistBuddy (com um pouquinho de awk):
MacBook Pro (15-inch, 2017)
Agradecemos a várias das respostas acima por isso.
fonte
Combinando a resposta de Saaru com uma versão depurada das de Richard Hamilton , eu obtenho o seguinte, que funciona de 10,6 a 10,12 (embora o tamanho da amostra em 10,6 seja apenas uma máquina) e possivelmente mais cedo / mais tarde, e não depende de uma conexão com a internet e os servidores da Apple não mudam
Algumas notas sobre o que descobri para chegar aqui:
defaults
funcionar na versão 10.6 e, portanto, adicioná-lo manualmente aos-f
testes de shell-n
sinalizadorsysctl
significa que ele imprime apenas o valor, economizando um poucosed
ouawk
trabalhandofonte
Temos alguns MBPs de 2019 que retornam modelos de ano diferentes para as duas linhas postadas por tabrindle .
Seu primeiro one-liner (usando
sysctl -n hw.model
) retorna 2018 para um modelo de 2019:Errado: MacBook Pro de 15 "com Thunderbolt 3 e Touch ID (meados de 2018)
Mas seu segundo one-liner (using
system_profiler SPHardwareDataType
) retorna o nome correto:Direita: MacBook Pro (15 polegadas, 2019)
fonte
Isso deve servir:
fonte