Làm thế nào để có được tên máy tính (không phải tên máy chủ của nó)?


18

Tất cả các kết quả tìm kiếm của tôi cuối cùng có liên quan đến hostnamehoặc uname -n. Tôi tìm hướng dẫn cho cả hai, tìm kiếm các lựa chọn lén lút, nhưng không có may mắn.

Tôi đang cố gắng tìm một ứng dụng tương đương với OSX scutil --get ComputerNametrên các hệ thống Linux. Trên Mac OS X, tên máy tính được sử dụng làm định danh người có thể đọc được cho máy tính; nó được hiển thị trong các màn hình quản lý khác nhau ( ví dụ: về quản lý kho, truy cập từ xa dựa trên Bonjour, ...) và đóng vai trò là tên máy chủ mặc định (sau khi lọc để xử lý khoảng trắng, v.v.).


Tôi có thể sai, nhưng xác định tên của máy tính là tên mạng của nó có nghĩa là nó không có tên cố định, phải không? Khi bạn cài đặt Linux hoặc OSX trên máy, bạn thường chọn tên cho máy tính đó (đó là tên mạng mặc định tôi giả sử). Ví dụ: máy tính xách tay của tôi có thể được đặt tên là "FooBar" nhưng khi tôi kết nối với mạng tại nơi làm việc, tôi nhận được một tên máy chủ như "machine42.work.localnetwork".
Sheljohn

@StephenKitt Chính xác, cái này có tên khác trong các hệ thống Linux không?
Sheljohn

4
@ Sh3ljohn Tên máy tính là osx phục vụ mục đích gì? Tôi không nghĩ có bất kỳ tương đương trong hệ thống linux.
Bibek_G

Bạn có đặt tên nào khác ngoài tên máy chủ khi cài đặt máy tính đó không? Hãy thử tìm kiếm tên đó trong / etc:grep -ri 'name' /etc
ptman

@Bibek_G Tôi muốn sử dụng cái này để xác định máy mà tôi đang chạy từ một phần mềm của tôi. UUID là không đủ vì có thể có một số HĐH được cài đặt trên cùng một đĩa, lần lượt chạy trên cùng một máy.
Sheljohn

Câu trả lời:


31

Tên gần nhất tương đương với tên người có thể đọc được (và do con người chọn) cho máy tính chạy Linux là tên máy chủ mặc định được lưu trữ trong /etc/hostname. Trên một số (không phải tất cả) các bản phân phối Linux, tên này được nhập trong khi cài đặt dưới dạng tên của máy tính (nhưng với các ràng buộc tên máy chủ mạng, không giống như tên máy tính của Mac OS X).


Nhưng tập tin này thường được dùng để thiết lập hostnameuname -n, và @ Sh3ljohn rõ ràng muốn tránh đầu ra của hai lệnh.
roaima

17

Nói đúng ra, không có thứ gọi là "tên máy tính" không liên quan đến mạng trong Linux và tôi thực sự không thấy mục đích đặt tên cho các máy tính không có trên mạng.

Lý do tại sao máy tính của bạn có dây khác nhau trong /etc/hostname, /etc/hostsuname -nlà giao thức DHCP có cơ sở vật chất để cung cấp một hostname cùng với địa chỉ IP đến một máy chủ mới. "machine42.work.localnetwork" trông giống hệt như tên mà máy chủ DHCP sẽ chọn. Chuỗi này sau đó được lưu và trả về bởi gethostnamecác cuộc gọi.

Xem thêm:

Làm cách nào để thay đổi tên máy tính? (tl; dr echo computername > /etc/hostname) - đó là những gì xảy ra khi bạn chọn tên trong khi cài đặt.

Làm cách nào để thay đổi tên máy chủ mà không cần khởi động lại? (tl; dr hostname computername) - đó là những gì xảy ra khi bạn nhận được hợp đồng thuê DHCP với tên máy chủ.


"Nói đúng ra, không có thứ gọi là" tên máy tính "không liên quan đến mạng trong Linux" - Nó không phụ thuộc vào dịch vụ sao? Ví dụ, tôi nghĩ rằng tương đương Windows là tên NetBIOS. Đó là tên thân thiện mà không có các phần miền và nó có thể khác với phần lưu trữ của một tên miền (đủ điều kiện hoặc không).

Tên NetBIOS vẫn là một tên mạng, ngay cả khi nó khác với một tên miền.
Dmitry Grigoryev

16

Bạn có thể sử dụng sudo dmidecode | grep -A3 '^System Information'lệnh. Lệnh này đọc thông tin từ BIOS và phần cứng. Ví dụ từ máy của tôi:

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

Nguồn: [1]


Tôi không nghĩ rằng đây là những gì tôi đang tìm kiếm; điều này đòi hỏi quyền quản trị và cung cấp cho bạn thông tin về phần cứng, không phải về tên do người dùng chọn tại thời điểm bạn cài đặt HĐH trên máy đó.
Sheljohn

13
Tên người dùng chọn? Nghe có vẻ như tên máy chủ đối với tôi.
Bibek_G

2
Xin lỗi, tôi đã sai. Tôi sẽ để lại câu trả lời. Tên người dùng duy nhất được chọn sử dụng các bản phân phối Linux mà tôi biết là tên máy chủ.
jschlichtholz

@Bibek_G Đây là lý do tại sao tôi không thể tìm thấy câu trả lời cho câu hỏi của mình, trên OSX đây là hai điều khác nhau. Tôi đang tìm tên tôi đã nhập khi tôi cài đặt Linux trên máy đó, mà tôi cho rằng đó sẽ là tên mạng mặc định.
Sheljohn

@jschlichtholz Tất nhiên, câu trả lời này có thể hữu ích cho người khác, nhưng như tôi đã nói với Bibek_G, tôi đang tìm kiếm cái gì có thể là tên mạng mặc định.
Sheljohn
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.