OSX Terminal แสดงชื่อโฮสต์ไม่ถูกต้อง


30

เมื่อเปิดเทอร์มิผมคาดว่ามันจะแสดงสิ่งที่ PS1 \h:\W \u\$ของฉันมีการตั้งค่า

อย่างไรก็ตามมันไม่แสดงชื่อโฮสต์ของฉันEriks-MacBookดังที่แสดงในการตั้งค่าระบบ

มันแสดงสตริงแบบสุ่มunknownb88d120cd4b2แทน

สิ่งนี้สามารถแก้ไขหรือรีเซ็ตได้อย่างไร

เครื่องนี้เป็นเครื่องใหม่และไม่มีการเปลี่ยนแปลงค่ากำหนด / การตั้งค่า


พิมพ์hostnameเป็นพรอมต์และกด Enter คุณได้อะไร
เครื่องปั่น

unknownb88d120cd4b2: ~ erik $ ชื่อโฮสต์ unknownb88d120cd4b2 unknownb88d120cd4b2: ~ erik $

แต่นั่นไม่ใช่สิ่งที่ชื่อคอมพิวเตอร์ของฉันอยู่ใน System Prefs - Sharing ฉันเปลี่ยนจากค่าเริ่มต้นเป็น "erik-mba" หวังว่าจะช่วยได้ แต่ไม่มีลูกเต๋า

ดูเพิ่มเติมที่apple.stackexchange.com/questions/30552/…
rogerdpack

คำตอบ:


25

กอร์ดอนให้คำตอบที่ดีแก่ที่มาของชื่อโฮสต์ของคุณ

ถ้าคุณต้องการชื่อที่คุณตั้งค่าในการตั้งค่าระบบ -> Sharing -> ชื่อคอมพิวเตอร์ที่จะแสดงขึ้นในพรอมต์ของคุณแทนที่ด้วย\h $(scutil --get ComputerName)เช่นฉันพร้อมตั้ง

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

19

เทอร์มินัลแสดงฉลากแรกของชื่อโฮสต์ BSD ของคุณ (สมมติว่าเชลล์ของคุณคือ BASH) ถ้าชื่อโฮสต์ BSD ของคุณเป็นyourhostname.mynetwork.comเทอร์มินัลจะแสดงเฉพาะyourhostname-

ดังนั้นชื่อโฮสต์ BSD มาจากไหน มันอาจมาจากหลายแห่ง:

•จากไฟล์: /etc/hostconfig

•อื่น ๆ จากไฟล์: /Library/Preferences/SystemConfiguration/preferences.plist( ระบบ▸ระบบ▸ชื่อโฮสต์ )

•เป็นผลมาจากการสืบค้น DNS แบบย้อนกลับสำหรับที่อยู่ IP หลักของคุณ (ดังนั้นคุณอาจสังเกตเห็นชื่อโฮสต์ที่แตกต่างกันโดยสิ้นเชิงเมื่อคุณเยี่ยมชมร้านอินเทอร์เน็ตมากกว่าเมื่อเชื่อมต่อที่บ้าน)

•อื่นชื่อโฮสต์ "Bonjour" ของคุณในการตั้งค่าระบบ> การแชร์ ( preferences.plistอีกครั้ง ... ระบบ▸เครือข่าย▸ชื่อโฮสต์▸ LocalHostName )

•สุดท้ายหากไม่มีการตั้งค่าใด ๆ ข้างต้นชื่อโฮสต์ BSD จะเป็นเพียง localhost

โดยวิธีการที่ฉันตอบคำถามเดียวกันที่ผ่านมาที่นี่: Mac OS X Terminal - ที่ชื่อพรอมต์มาจากไหน


1
เป็นไปได้หรือไม่ว่าการค้นหา DNS ย้อนกลับมีความสำคัญมากกว่าการกำหนดค่าอื่น ๆ ทั้งหมดในระบบของฉัน
caesarsol

ฉันตรวจสอบระบบของตัวเองแล้ว: / etc / hostconfig ไม่มีอยู่ preferences.plist ▸ ระบบ▸ระบบ▸ชื่อโฮสต์ไม่ได้ถูกกำหนดไว้ (แม้ว่าจะมีชื่อคอมพิวเตอร์ ) การค้นหา DNS ย้อนกลับส่งคืนการพูดพล่อยๆที่ฉันเห็นในหน้าต่างเทอร์มินัลของฉัน ระบบ▸เครือข่าย▸ชื่อโฮสต์▸ LocalHostNameถูกกำหนดไว้ ดังนั้นหากระบบของคุณมีการแสดงเช่นเดียวกับระเบิดแล้วค้นหา DNS ย้อนหลังเป็นนัดแรกและจะมีความสำคัญมากกว่าLocalHostName
Edward Falk

12

OS X พยายามค้นหาหลายสิ่งเพื่อหา "ชื่อโฮสต์" น่าเสียดายที่ฉันไม่ทราบรายการที่แน่นอน (และคำสั่งซื้อ) แต่ฉันคิดว่าสิ่งที่เกิดขึ้นที่นี่คือการค้นพบชื่อ DNS ที่เชื่อมโยงกับที่อยู่ IP ของตนและการใช้ชื่อนั้นแทนชื่อ Bonjour นั้นเป็นการโฆษณาสำหรับตัวเอง การตั้งค่าการแบ่งปัน)

เหตุใดจึงต้องค้นหาชื่อ DNS ฉันเดาว่าเราเตอร์ภายในเครื่อง / เซิร์ฟเวอร์ DHCP / เซิร์ฟเวอร์ DNS ของคุณจะกำหนดค่าแบบไดนามิกตามที่อยู่ฮาร์ดแวร์อีเธอร์เน็ต (น่าจะเป็น b8: 8d: 12: 0c: d4: b2) คุณอาจปรับการตั้งค่าของเราเตอร์เพื่อหยุดการทำเช่นนี้หรือคุณอาจตั้งค่ารหัสไคลเอ็นต์ DHCP ของคอมพิวเตอร์ (ในการตั้งค่าเครือข่ายการตั้งค่าขั้นสูง) เพื่อควบคุมชื่อที่กำหนดให้คุณ


2
นี่เป็นประโยชน์กับฉันมากที่สุด เครื่องของฉันแสดงพฤติกรรมนี้ซึ่งเป็นจุดสำคัญที่ดูเหมือนว่าจะมีการเปลี่ยนชื่อ SPONTANEOUSLY เนื่องจากฉันไม่เคยเห็นชื่ออื่นมาก่อน ดังนั้นฉันจึงเสียเวลา 90 นาทีในการตรวจหาไวรัสและปัญหาเกี่ยวกับดิสก์ ดีใจที่รู้ว่าฉันสามารถหยุดเวลาได้อย่างปลอดภัย
conspiritech

1

ไม่แน่ใจว่าคุณยังคงมีปัญหาหรือไม่สิ่งนี้ดูเหมือนจะได้รับการแก้ไขบางครั้งระหว่างโยเซมิตีและเซียร์รา

สำหรับคอมพิวเตอร์ใหม่ฉันเริ่มต้นด้วยการตั้งค่าระบบที่ใช้ร่วมกันให้ป้อน [ชื่อใหม่] เป็นชื่อคอมพิวเตอร์ที่ต้องการ ฉันยังป้อน [ชื่อใหม่] ในฟิลด์ ID ไคลเอ็นต์ DHCP ที่ใช้งานอยู่ทั้งหมดสำหรับแต่ละอินเทอร์เฟซเครือข่าย หลังจากที่ฉันทำเสร็จแล้วฉันเปิด Terminal เพื่อยืนยันว่ารายงานชื่อที่คล้ายกันตัวละครบางตัวไม่ได้รับอนุญาตดังนั้นระบบจะแก้ไขชื่อหากจำเป็น คุณสามารถเปลี่ยนชื่อโดยใช้ขั้นตอนด้านล่างเพียงแค่แทนที่ [new name] block ด้วยชื่อคอมพิวเตอร์ที่คุณต้องการ

  1. เปิด Terminal
  2. ที่พรอมต์ป้อนsudo scutilต่อไปนี้ - ตั้งชื่อโฮสต์ [ชื่อใหม่]
  3. เปิดหน้าต่างเทอร์มินัลใหม่เพื่อยืนยันว่าได้รับการยอมรับชื่อใหม่

หากชื่อไม่ได้เป็นที่ชื่นชอบของฉันฉันจะดำเนินการตามข้างต้นก่อนที่จะผูกพันกับโดเมนที่ใช้งานอยู่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.