Jak uzyskać nazwę komputera (nie nazwę hosta)?


19

Wszystkie wyniki moich wyszukiwań mają w końcu coś wspólnego z hostnamelub uname -n. Poszukałem obu instrukcji, szukając podstępnych opcji, ale bez powodzenia.

Próbuję znaleźć odpowiednik OSX w scutil --get ComputerNamesystemach Linux. W systemie Mac OS X nazwa komputera jest używana jako czytelny dla człowieka identyfikator komputera; jest pokazany na różnych ekranach zarządzania ( np. przy zarządzaniu zapasami, zdalnym dostępie opartym na Bonjour, ...) i służy jako domyślna nazwa hosta (po filtrowaniu w celu obsługi spacji itp.).


Mogę się mylić, ale zdefiniowanie nazwy komputera jako nazwy sieci oznacza, że ​​nie ma on stałej nazwy, prawda? Podczas instalowania systemu Linux lub OSX na komputerze zwykle wybiera się nazwę dla tego komputera (domyślnie jest to nazwa sieci). Na przykład mój laptop może mieć nazwę „FooBar”, ale kiedy podłączę się do sieci w pracy, otrzymuję nazwę hosta, taką jak „machine42.work.localnetwork”.
Sheljohn,

@StephenKitt Dokładnie, czy to ma inną nazwę w systemach Linux?
Sheljohn,

4
@ Sh3ljohn do czego służy nazwa_komputera? Nie sądzę, żeby istniał jakiś odpowiednik w systemie Linux.
Bibek_G

Czy podczas instalowania tego komputera podałeś nazwę inną niż nazwa hosta? Spróbuj wyszukać tę nazwę w / etc:grep -ri 'name' /etc
ptman

@Bibek_G Chciałbym użyć tego do identyfikacji komputera, na którym działam z mojego oprogramowania. UUID jest niewystarczający, ponieważ na tym samym dysku może być zainstalowanych kilka systemów operacyjnych, które z kolei działają na tym samym komputerze.
Sheljohn,

Odpowiedzi:


31

Najbliższym odpowiednikiem czytelnej dla człowieka (i wybranej przez człowieka) nazwy dla komputera z systemem Linux jest domyślna nazwa hosta przechowywana w /etc/hostname. W niektórych (nie wszystkich) dystrybucjach Linuksa ta nazwa jest wprowadzana podczas instalacji jako nazwa komputera (ale z ograniczeniami sieciowej nazwy hosta, w przeciwieństwie do nazwy komputera Mac OS X).


Ale ten plik jest często używany do ustawiania hostnamei uname -n@ Sh3ljohn wyraźnie chciał uniknąć wyniku tych dwóch poleceń.
roaima

17

Ściśle mówiąc, w Linuksie nie ma czegoś takiego jak „nazwa komputera” niezwiązana z siecią, a ja właściwie nie widzę celu nazywania komputerów, które nie są w sieci.

Powodem, dla którego komputer ma różne ciągi w /etc/hostname, /etc/hostsi uname -njest to, że protokół DHCP posiada udogodnienia, aby zapewnić hosta wraz z adresem IP do nowego gospodarza. „machine42.work.localnetwork” wygląda dokładnie tak, jak nazwa serwera DHCP. Ten ciąg jest następnie zapisywany i zwracany przez gethostnamewywołania.

Zobacz też:

Jak mogę zmienić nazwę komputera? (tl; dr echo computername > /etc/hostname) - tak dzieje się, gdy wybierzesz nazwę podczas instalacji.

Jak zmienić nazwę hosta bez ponownego uruchomienia? (tl; dr hostname computername) - tak dzieje się, gdy otrzymasz dzierżawę DHCP z nazwą hosta.


„Ściśle mówiąc, w Linuksie nie ma czegoś takiego jak„ nazwa komputera ”niezwiązana z siecią - czy to nie zależy od usługi? Na przykład myślę, że odpowiednikiem systemu Windows jest nazwa NetBIOS. Jest to przyjazna nazwa bez części domeny i może różnić się od części hosta nazwy domeny (w pełni kwalifikowana lub nie).

Nazwa NetBIOS jest wciąż nazwą sieci, nawet jeśli jest inna niż nazwa domeny.
Dmitrij Grigoryev,

16

Możesz użyć sudo dmidecode | grep -A3 '^System Information'polecenia. To polecenie odczytuje informacje z systemu BIOS i sprzętu. Przykład z mojej maszyny:

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

Źródła: [1]


Nie sądzę, że tego właśnie szukam; wymaga to uprawnień administratora i daje informacje o sprzęcie, a nie o nazwie wybranej przez użytkownika w momencie instalacji systemu operacyjnego na tym komputerze.
Sheljohn

13
nazwa wybrana przez użytkownika? dla mnie to brzmi jak nazwa hosta.
Bibek_G

2
Przepraszam, pomyliłem się. I tak zostawię odpowiedź. Jedyną nazwą wybraną przez użytkownika za pomocą dystrybucji systemu Linux, którą znam, jest nazwa hosta.
jschlichtholz

@Bibek_G Dlatego nie mogę znaleźć odpowiedzi na moje pytanie, w OSX są to dwie różne rzeczy. Szukam nazwy, którą wpisałem podczas instalacji Linuksa na tym komputerze, która, jak zakładam, byłaby domyślną nazwą sieci.
Sheljohn

@ jschlichtholz Oczywiście ta odpowiedź może być przydatna dla kogoś innego, ale jak powiedziałem Bibek_G, szukam wtedy domyślnej nazwy sieci.
Sheljohn
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.