Terminal OSX menunjukkan nama host yang salah

30

Ketika saya membuka Terminal, saya berharap untuk menunjukkan apa yang diatur PS1 saya \h:\W \u\$.

Namun itu tidak menampilkan nama host saya Eriks-MacBook, seperti yang ditampilkan di System Preferences.

Sebaliknya, ini menunjukkan string acak unknownb88d120cd4b2.

Bagaimana ini bisa diperbaiki atau diatur ulang?

Mesin ini baru, dan preferensi / pengaturan belum berubah.

Erik W
sumber
Ketik hostnameke prompt dan tekan enter. Mendapatkan apa?
Blender
unknownb88d120cd4b2: ~ erik $ hostname unknownb88d120cd4b2 unknownb88d120cd4b2: ~ erik $
Tapi bukan itu nama komputer saya di System Prefs - Sharing. Saya mengubahnya dari default ke "erik-mba" berharap itu akan membantu, tetapi tidak ada dadu.

Jawaban:

25

Gordon memberikan jawaban yang bagus untuk asal usul nama host Anda.

Jika Anda ingin nama yang Anda atur di System Preferences -> Sharing -> Computer Name muncul di prompt Anda, ganti \hdengan $(scutil --get ComputerName). Misalnya prompt saya diatur dengan

PS1="[\u@:$(scutil --get ComputerName) \W]\\$ "
ajs
sumber
19

Terminal menunjukkan Anda label pertama dari nama host BSD Anda (dengan asumsi shell Anda adalah BASH). Jika nama host BSD Anda yourhostname.mynetwork.commaka Terminal hanya akan menampilkan yourhostname-

Jadi dari mana datangnya nama host BSD? Itu bisa datang dari beberapa tempat:

• dari file: /etc/hostconfig

• lain dari file: /Library/Preferences/SystemConfiguration/preferences.plist( Sistem ▸ Sistem ▸ Nama Host )

• selain itu hasil dari kueri DNS terbalik untuk alamat IP utama Anda (sehingga Anda mungkin melihat nama host yang sama sekali berbeda muncul ketika Anda mengunjungi warung internet daripada ketika terhubung di rumah)

• lain nama host "Bonjour" Anda di Preferensi Sistem> Berbagi ( preferences.plistlagi ... Sistem ▸ Jaringan ▸ Nama Host ▸ LocalHostName )

• akhirnya, jika tidak ada di atas yang ditetapkan, nama host BSD akan sederhana localhost

Ngomong-ngomong, saya menjawab pertanyaan yang sama beberapa waktu lalu di sini: Terminal Mac OS X - dari mana nama prompt datang

nama pengguna
sumber
1
apakah mungkin bahwa reverse DNS lookup lebih diutamakan dari semua konfigurasi lain di sistem saya?
caesarsol
Saya memeriksa sistem saya sendiri: / etc / hostconfig tidak ada. preferensi.plist ▸ Sistem ▸ Sistem ▸ HostName tidak didefinisikan (walaupun ComputerName adalah). Reverse DNS lookup mengembalikan gibber yang saya lihat di jendela terminal saya. Sistem ▸ Jaringan ▸ Nama Host ▸ LocalHostName didefinisikan. Jadi, jika sistem Anda menunjukkan hal yang sama dengan milik saya, maka pencarian DNS terbalik adalah pertandingan pertama, dan lebih diutamakan daripada LocalHostName .
Edward Falk
12

OS X mencoba sejumlah hal untuk menemukan "nama host" -nya. Sayangnya saya tidak tahu daftar persis (dan urutan), tapi saya pikir apa yang terjadi di sini adalah bahwa ia menemukan nama DNS yang terkait dengan alamat IP-nya, dan menggunakan itu alih-alih nama Bonjour itu iklankan untuk dirinya sendiri (yang ditentukan dalam Preferensi berbagi).

Jadi mengapa menemukan nama DNS? Dugaan saya adalah bahwa router / server DHCP / server DNS lokal Anda secara dinamis menetapkannya, berdasarkan alamat perangkat keras ethernetnya (mungkin b8: 8d: 12d: 12c: d4: b2). Anda mungkin dapat menyesuaikan pengaturan router untuk menghentikannya melakukan hal ini, atau Anda mungkin dapat mengatur ID klien DHCP komputer (dalam Preferensi Jaringan, Pengaturan lanjutan) untuk mengontrol nama yang diberikannya kepada Anda.

Gordon Davisson
sumber
2
Ini sangat membantu saya. Mesin saya menunjukkan perilaku ini, yang kuncinya adalah, sepertinya sudah SPONTAN berubah nama, karena saya belum pernah melihat yang berbeda sebelumnya. Jadi saya hanya membuang waktu 90 menit untuk memeriksa virus dan masalah disk dan semacamnya. Senang mengetahui bahwa saya dapat dengan aman berhenti membuang-buang waktu.
conspiritech
1

Tidak yakin apakah Anda masih mengalami masalah atau tidak, ini tampaknya telah diperbaiki antara Yosemite dan Sierra.

Untuk komputer baru saya mulai dengan Preferensi Sistem Berbagi, memasukkan [nama baru] sesuai dengan Nama Komputer yang diinginkan. Saya juga memasukkan [nama baru] di semua bidang ID Klien DHCP yang aktif untuk setiap antarmuka jaringan. Setelah selesai saya membuka Terminal untuk mengonfirmasi bahwa ia melaporkan nama yang sama, beberapa karakter tidak diizinkan sehingga sistem akan mengubah nama jika perlu. Anda dapat mengubah nama menggunakan langkah-langkah di bawah ini, cukup ganti blok [nama baru] dengan nama komputer yang Anda inginkan.

  1. Buka Terminal
  2. Saat diminta, masukkan sudo scutil berikut --set HostName [nama baru]
  3. Buka jendela Terminal baru untuk mengonfirmasi nama baru diterima.

Jika namanya tidak sesuai dengan keinginan saya, saya melanjutkan dengan yang di atas sebelum mengikatnya ke Domain Aktif.

Wallace Karraker
sumber