Come ottenere il nome del computer (non il nome host)?


19

Tutti i risultati delle mie ricerche finiscono per avere a che fare con hostnameo uname -n. Ho cercato il manuale per entrambi, cercando opzioni subdole, ma senza fortuna.

Sto cercando di trovare un equivalente di OSX scutil --get ComputerNamesu sistemi Linux. Su Mac OS X, il nome del computer viene utilizzato come identificatore leggibile dall'uomo per il computer; viene mostrato in varie schermate di gestione ( ad es. gestione dell'inventario, accesso remoto basato su Bonjour, ...) e funge da nome host predefinito (dopo aver filtrato per gestire gli spazi, ecc.).


Potrei sbagliarmi, ma definire il nome del computer come nome di rete significa che non ha un nome fisso, giusto? Quando installi un Linux o OSX su una macchina, di solito scegli un nome per quel computer (che è il nome di rete predefinito che presumo). Ad esempio il mio laptop potrebbe essere chiamato "FooBar" ma quando mi collego a una rete sul posto di lavoro ottengo un nome host come "machine42.work.localnetwork".
Sheljohn, l'

@StephenKitt Esatto, questo ha un altro nome nei sistemi Linux?
Sheljohn, l'

4
@ Sh3ljohn a quale scopo serve nomecomputer osx? Non penso che ci sia un equivalente nel sistema Linux.
Bibek_G,

Hai dato un nome diverso dal nome host durante l'installazione di quel computer? Prova a cercare quel nome in / etc:grep -ri 'name' /etc
ptman

@Bibek_G Vorrei usarlo per identificare la macchina su cui sto correndo da un mio software. UUID è insufficiente perché potrebbero esserci diversi SO installati sullo stesso disco che a loro volta vengono eseguiti sullo stesso computer.
Sheljohn, l'

Risposte:


31

L'equivalente più vicino a un nome leggibile (e scelto dall'uomo) per un computer che esegue Linux è il nome host predefinito archiviato /etc/hostname. Su alcune (non tutte) distribuzioni Linux, questo nome viene inserito durante l'installazione come nome del computer (ma con vincoli del nome host di rete, a differenza del nome computer di Mac OS X).


Ma questo file viene spesso utilizzato per impostare hostnamee uname -n, e @ Sh3ljohn voleva esplicitamente evitare l'output di questi due comandi.
roaima,

17

A rigor di termini, non esiste qualcosa come "nome computer" non correlato alla rete in Linux, e in realtà non riesco a vedere lo scopo di nominare i computer che non sono in rete.

Il motivo per cui il computer dispone di diverse stringhe in /etc/hostname, /etc/hostsed uname -nè che il protocollo DHCP dispone di strutture per fornire un nome host con l'indirizzo IP per un nuovo host. "machine42.work.localnetwork" ha esattamente lo stesso nome di un server DHCP. Questa stringa viene quindi salvata e restituita dalle gethostnamechiamate.

Guarda anche:

Come posso cambiare il nome del computer? (tl; dr echo computername > /etc/hostname): ecco cosa succede quando si sceglie un nome durante l'installazione.

Come posso cambiare il nome host senza riavviare? (tl; dr hostname computername): ecco cosa succede quando si ottiene un contratto di locazione DHCP con un nome host.


"A rigor di termini, non esiste un" nome di computer "indipendente dalla rete in Linux" . Non dipende dal servizio? Ad esempio, penso che l'equivalente di Windows sia il nome NetBIOS. È il nome descrittivo senza le parti del dominio e potrebbe essere diverso dalla parte host di un nome di dominio (pienamente qualificato o meno).

Il nome NetBIOS è ancora un nome di rete, anche se è diverso da un nome di dominio.
Dmitry Grigoryev il

16

Puoi usare il sudo dmidecode | grep -A3 '^System Information'comando. Questo comando legge le informazioni dal BIOS e dall'hardware. Esempio dalla mia macchina:

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

Fonti: [1]


Non penso che sia quello che sto cercando; ciò richiede diritti di amministratore e fornisce informazioni sull'hardware, non su un nome scelto dall'utente al momento dell'installazione del sistema operativo su quella macchina.
Sheljohn, l'

13
nome scelto dall'utente? mi sembra un nome host.
Bibek_G,

2
Scusa, ho sbagliato. Lascerò comunque la risposta. L'unico nome scelto dall'utente che utilizza le distribuzioni Linux che conosco è il nome host.
jschlichtholz,

@Bibek_G Ecco perché non riesco a trovare la risposta alla mia domanda, su OSX ci sono due cose diverse. Sto cercando il nome che ho inserito quando ho installato Linux su quella macchina, che presumo sia il nome di rete predefinito.
Sheljohn, l'

@jschlichtholz Naturalmente, questa risposta potrebbe essere utile a qualcun altro, ma come ho detto a Bibek_G, sto cercando quale potrebbe essere il nome di rete predefinito.
Sheljohn, l'
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.