Todos os resultados das minhas pesquisas acabam tendo algo a ver com hostname ou uname -n. Eu pesquisei o manual de ambos, procurando opções sorrateiras, mas sem sorte.

Estou tentando encontrar um equivalente do OSX “s scutil --get ComputerName em sistemas Linux . No Mac OS X, o nome do computador é usado como um identificador legível para o computador; ele é mostrado em várias telas de gerenciamento ( por exemplo, em gerenciamento de inventário, acesso remoto baseado em Bonjour, .. .) e serve como o nome do host padrão (depois de filtrar para lidar com espaços etc.).

Comentários

  • Posso estar errado, mas definindo o nome do computador como seu nome de rede significa que ele não ' tem um nome fixo, certo? Quando você instala um Linux ou OSX em uma máquina, geralmente escolhe um nome para esse computador (que é o nome de rede padrão, presumo). Por exemplo, meu laptop pode se chamar " FooBar ", mas quando me conecto a uma rede no trabalho, obtenho um nome de host como " machine42.work.localnetwork ".
  • @StephenKitt Exatamente, tem outro nome em sistemas Linux?
  • @ Sh3ljohn a que propósito o computername is osx serve? Eu não ' não acho que haja ' s qualquer equivalente no sistema Linux.
  • Você deu algum nome diferente de nome do host ao instalar esse computador? Tente pesquisar esse nome em / etc: grep -ri 'name' /etc
  • @Bibek_G Gostaria de usar isso para identificar a máquina na qual estou executando a partir de um software meu . UUID é insuficiente porque pode haver vários SO ' s instalados no mesmo disco que, por sua vez, são executados na mesma máquina.

Resposta

O equivalente mais próximo a um nome legível (e escolhido por humanos) para um computador executando Linux é o nome de host padrão armazenado em /etc/hostname. Em algumas (não todas) distribuições Linux, este nome é inserido durante a instalação como o nome do computador (mas com restrições de nome de host de rede, ao contrário do nome de computador do Mac OS X).

Comentários

  • Mas este arquivo é frequentemente usado para definir hostname e uname -n, e @ Sh3ljohn explicitamente desejado para evitar a saída desses dois comandos.

Resposta

Você pode usar o . Este comando lê informações do BIOS e do hardware. Exemplo da minha máquina:

System Information Manufacturer: LENOVO Product Name: 20BHA06YGB Version: ThinkPad W540 

Fontes: [1]

Comentários

  • Não ' acho que é isso que estou procurando; isso requer direitos de administrador e fornece informações sobre o hardware, não sobre um nome escolhido pelo usuário no momento em que você instalou o sistema operacional nessa máquina.
  • nome escolhido pelo usuário? isso soa como nome do host para mim.
  • Desculpe, entendi errado. Vou deixar a resposta de qualquer maneira. O único nome escolhido pelo usuário usando as distribuições Linux que conheço é o nome do host.
  • @Bibek_G É por isso que não consigo ' encontrar a resposta para minha pergunta, em OSX são duas coisas diferentes. Estou procurando o nome que digitei quando instalei o Linux nessa máquina, que presumo ser o nome de rede padrão.
  • @jschlichtholz Claro, esta resposta pode ser útil para outra pessoa, mas como eu disse a Bibek_G, estou procurando qual pode ser o nome de rede padrão.

Resposta

Estritamente falando , não existe “nome de computador” não relacionado à rede no Linux e, na verdade, não consigo ver o propósito de nomear computadores que não estão na rede.

A razão pela qual seu computador tem strings diferentes em /etc/hostname, /etc/hosts e uname -n é que o protocolo DHCP tem recursos para fornecer um nome de host junto com endereço IP para um novo host. “machine42.work.localnetwork” parece exatamente com um nome que o servidor DHCP escolheria. Essa string é salva e retornada por chamadas gethostname .

Veja também:

Como altero o nome do computador? (tl; dr echo computername > /etc/hostname) – esse “s o que acontece quando você escolhe um nome durante a instalação.

Como altero o nome do host sem reiniciar? (tl; dr hostname computername) – isso é o que acontece quando você obtém uma concessão de DHCP com um nome de host.

Comentários

  • " Estritamente falando, não existe algo como não relacionado à rede " nome do computador " no Linux " – Doesn ' Não depende do serviço? Por exemplo, acho que o equivalente do Windows é o nome NetBIOS. É o nome amigável sem as partes do domínio e pode ser diferente da parte do host de um nome de domínio (totalmente qualificado ou não).
  • O nome NetBIOS ainda é um nome de rede, mesmo se ' s diferente de um nome de domínio.
  • tools.ietf.org/html/rfc1178 aconselha NÃO para usar um nome de domínio para o nome do seu computador. Um computador pode fornecer um servidor para vários nomes de domínio. Neste caso, o nome do host pode fornecer apenas um dos servidores.

Resposta

As outras respostas dizem que não há Equivalente do Linux, embora realmente exista. Chama-se " Pretty hostname ". Execute o seguinte comando para obtê-lo:

 hostnamectl --pretty  

Comentários

  • hostnamectl requer SystemD. A informação bonita é armazenada em /etc/machine-info
  • +1 Acho que esta deve ser a resposta escolhida. — Wikipedia diz: " Um nome de host é um nome de domínio que possui um registro DNS associado. " Combine isso com tools.ietf.org/html/rfc1178 que informa NÃO usar um nome de domínio para o nome do seu computador. Isso significa que também não se deve usar um nome de host para o nome do seu computador. O que acontece quando um único computador tenta executar duas redes ao mesmo tempo? Neste caso, o nome do host não pode ' ser o nome do host de ambos. hostname está claramente sobrecarregado, tentando ser um nome de host DNS e um nome de máquina em t ao mesmo tempo.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *