วิธีการเปลี่ยนชื่อคอมพิวเตอร์ดังนั้นเทอร์มินัลจะแสดงใน Mac OS X Mountain Lion? [ซ้ำ]


245

คำถามนี้มีคำตอบอยู่ที่นี่แล้ว:

เมื่อฉันตั้งค่าคอมพิวเตอร์ฉันตั้งชื่อมันว่า "Scott's MacBook Pro" ดังนั้นเมื่อฉันไปที่ System preferences-> Sharing มันบอกว่า MacBook Pro ของ Scott มีชื่อคอมพิวเตอร์ของฉัน อย่างไรก็ตามการเปิดเทอร์มินัลให้ฉันพร้อมท์นี้:

Last login: Sun Oct  7 11:02:49 on ttys003
new-host-4:~ scott$ 

เมื่อฉันลงชื่อเข้าใช้ Backblaze พวกเขาจะระบุว่าคอมพิวเตอร์ของฉันเป็น "new ‑ host ‑ 4_2012_10_07" ฉันไม่ได้ตั้งชื่อคอมพิวเตอร์ของฉันครบถ้วนหรือไม่ ฉันควรใช้hostnameคำสั่งดั้งเดิมหรือไม่


2
สำหรับความรู้ของฉันนี่คือสิ่งที่ DNS รายงานว่าเป็น หากหมายเลข IP ของคุณไม่มีชื่อระบบจะใช้ชื่อจากการตั้งค่า (อาจเป็น.localโดเมน)
Thorbjørn Ravn Andersen

@ ThorbjørnRavnAndersen - โดเมน. local ของฉันจากการตั้งค่าการแชร์ได้รับ scotts-macbook-pro.local
at01

คำตอบ:


297

ถ้าคุณใช้:

sudo scutil --set HostName name-you-want

มันจะทำงานได้ดีขึ้นเล็กน้อย จากหน้าคน (8) หน้าคน:

--get pref
    Retrieves the specified preference.  The current value will be
    reported on standard output.

    Supported preferences include:
          ComputerName   The user-friendly name for the system.
          LocalHostName  The local (Bonjour) host name.
          HostName       The name associated with hostname(1) and gethostname(3).

--set pref [newval]
    Updates the specified preference with the new value.  If the new value is not
    specified on the command line then it will be read from standard input.

    Supported preferences include: ComputerName LocalHostName HostName

    The --set option requires super-user access.

4
ทำงานให้ฉันหลังจากใช้คำสั่งนั้นและรีบูต Terminal
Johnathan Elmore

ทำงานเป็นเสน่ห์
Hos Mercury

สิ่งนี้ใช้ได้กับฉัน แต่เมื่อทำการรีบูตเครื่องจะรีเซ็ตชื่อโฮสต์ในเทอร์มินัลกลับไปเป็นสิ่งที่ก่อนหน้าฉันจะเปลี่ยน
jwir3

ทำงานในโมฮาวี จอเทอร์มินัลก็แสดงให้เห็นemulator02แม้ว่าฉันจะเปลี่ยนมันในการตั้งค่า - หรือพยายาม ฉันเพิ่งรันการตั้งค่าที่รองรับทั้งสามรายการและรีสตาร์ทเครื่อง ตอนนี้ฉันสามารถรับชื่อโฮสต์ได้แล้ว
Daniel

126

หลังจากทำตามคำแนะนำของJeffrey J. Hooverแล้ว

sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"

ฉันจะเพิ่มสองขั้นตอนสุดท้ายนี้

  • ล้างแคช DNS โดยพิมพ์: dscacheutil -flushcache
  • รีสตาร์ท Mac ของคุณ

แก้ไข: มันไม่ทำงานสำหรับฉันจนกว่าฉันจะรีสตาร์ท mac ของฉัน


2
@iconoclast ใช้งานล่าสุด Windows เป็นหลักในปี 2004 การรีสตาร์ททำงานได้สำหรับฉันและอีก 16 คน จะไม่เจ็บ
อันตราย

10
หมายความว่ามันไม่ทำงานจนกว่าคุณจะรีสตาร์ท? (การรีสตาร์ทอาจทำให้เจ็บเมื่อคุณทำงานหนักในคอมพิวเตอร์ของคุณดังนั้นจึงมีแอปพลิเคชั่นมากมายเปิดรับเอาทุกสิ่งทุกอย่างที่คุณมีมาก่อนที่จะรีบูตได้ *****) นอกจากนี้ความจริงที่ว่ามีคน 16 คนที่พบ ส่วนหนึ่งของคำตอบของคุณมีประโยชน์ไม่ได้หมายความว่าไม่มีอะไรทำงานจนกว่าพวกเขาจะรีสตาร์ท
iconoclast

15
ทำงานให้ฉันโดยไม่ต้องรีสตาร์ทเพียงออกจาก Terminal อย่างสมบูรณ์แล้วเปิดใหม่
Alexander Wigmore

7
ครั้งแรกที่ผมใช้scutil --getจะค้นพบว่าComputerNameและLocalHostNameได้รับการตั้งอย่างถูกต้องโดยใช้การตั้งค่าระบบ (Sharing) แต่ก็บอกว่าเป็นHostName not setดังนั้นผมก็ใช้เพื่อที่จะตั้งsudo scutil --set HostNameจากนั้นฉันไม่จำเป็นต้องใช้dscacheutilหรือทำการรีบูตทันทีที่มีการตรวจสอบhostnameพบว่าสิ่งต่าง ๆ ได้รับการแก้ไขสำหรับฉันและการเปิดแท็บเทอร์มินัลใหม่แสดงให้เห็นว่าการแจ้งเตือนของฉันได้รับการแก้ไขแล้วเช่นกัน (OS X 10.9.4)
Quintin Willison

4
คุณไม่จำเป็นต้องรีสตาร์ทเครื่องเพื่อให้สอดคล้องกับการเปลี่ยนแปลงเพียงแค่ทำการกำหนดค่าที่รับผิดชอบการแจ้งเตือนของคุณ
Steve Buzonas

43

สำหรับผู้ที่ไม่ได้มองหาโซลูชันบรรทัดคำสั่งคุณสามารถเปลี่ยนได้

System Preferences -> Sharing -> Computer Name: 

13
สิ่งนี้ไม่ได้ผลสำหรับฉัน ชื่อของพรอมต์คำสั่งเทอร์มินัลยังคงเป็นlocalhost
ดับ

5
คุณรีสตาร์ทเครื่องหรือไม่
ก. ค.

ฉัน defs ต้องรีสตาร์ท Terminal แต่นี่เป็นวิธีที่ง่ายที่สุด
skybondsor

สิ่งนี้ไม่ได้ผลสำหรับฉันเพราะ Terminal ยังคงแสดงชื่อเดิมอยู่ แต่คำตอบของจอห์นก็แก้มัน - ที่โมฮาวี
Rehmat

21

คุณสามารถกำหนดสิ่งที่คุณต้องการที่จะเห็นก่อน$ใน terminal ~/.profileของคุณโดยการปรับเปลี่ยนไฟล์

ตัวอย่างเช่นถ้าคุณเพิ่มไฟล์~/.profileในบรรทัดต่อไปนี้:

# h is the host name, w the complete path 
export PS1="\h:\w$ "

คุณจะเห็นชื่อโฮสต์และเส้นทางที่สมบูรณ์ของไดเรกทอรีปัจจุบัน:

host_name:current_directory_path$

คุณยังสามารถแก้ไขตัวอย่างของฉันโดยใช้ตัวเลือกต่อไปนี้ในคำสั่งส่งออก:

\d – Current date
\t – Current time
\h – Host name
\# – Command number
\u – User name
\W – Current working directory (i.e: Desktop/)
\w – Current working directory, full path (i.e: /Users/Admin/Desktop)

ทำไม -1 เขาบอกว่าเขาไม่เห็นชื่อโฮสต์ใน Terminal
Maverik

4
ไม่ใช่ฉันด้วย -1 :) ขอบคุณสำหรับคำตอบของคุณฉันคิดว่าฉันไม่ได้แค่มองหาวิธีการเปลี่ยนชื่อของฉันใน terminal แต่เห็นได้ชัดว่าคอมพิวเตอร์ของฉันยังคงถูกอ้างถึงโดยชื่อโฮสต์ใหม่ 4 ชื่อที่น่าเกลียดเป็นบริการเช่น Backblaze ใช้ MacBook Pro ก่อนหน้าของฉันมีชื่อที่ดีกว่าที่ฉันเลือกฉันไม่รู้ว่าทำไมสิงโตภูเขาของฉัน MacBook Pro ไม่ใช้ชื่อที่ฉันมีในการตั้งค่าการแชร์
at01

8

คุณสามารถเรียกใช้

sudo hostname Name-Of-My-Computer

ใน Terminal เพื่อเปลี่ยนชื่อ


7
หน้าคนสำหรับชื่อโฮสต์กล่าวว่าเพื่อให้ทำงานได้scutil --set HostName name-of-hostถ้าคุณต้องการที่จะเก็บชื่อโฮสต์ทั่วเรียบ
daviewales

สำหรับฉันมันใช้งานได้ดีมากแม้กระทั่งรีสตาร์ทคอมพิวเตอร์ ขอขอบคุณ.
Brynner Ferreira

สิ่งนี้ใช้ได้กับฉันหลังจากฉันรีสตาร์ท Mac ของฉัน (ใช้งาน El Capitan)
Jader Feijo

7

ในกรณีของฉันฉันพบว่ามันเป็นปัญหากับเซิร์ฟเวอร์ DNS ของเราเนื่องจากการค้นหา DNS ย้อนกลับไม่ได้กำจัดเพราะมีรายการ DNS ที่ซ้ำกันสำหรับที่อยู่ IP และชื่อโฮสต์


2

ฉันกำลังเพิ่มคำตอบที่นี่เพราะฉันเพิ่งพบปัญหานี้เช่นกัน

ใน OSX 10.7.4 และก่อนหน้านี้อาจมีข้อผิดพลาดในตัวเลือกแก้ไขชื่อโฮสต์ในแผงการตั้งค่าการแชร์ มันตั้งชื่อโฮสต์เป็นสิ่งสุดท้ายที่ตั้งแทนชุดปัจจุบันนี้

ฉันต้องเรียกใช้sudo hostname [preferred hostname]เพื่อตั้งค่าอย่างถูกต้องหลังจากตั้งค่าในการแชร์


1

ฉันไม่ได้ทำอะไรกับคอมพิวเตอร์ของฉัน แต่ในที่สุดด้วยเหตุผลบางอย่างชื่อโฮสต์และชื่อคอมพิวเตอร์ทั้งหมดที่ลงทะเบียนเป็นชื่อที่ฉันตั้งไว้ตอนแรก! ในความเป็นจริงฉันมีเทอร์มินัลต่อไปนี้เปิดตลอดเวลาและนี่คือการตัดและวาง:

new-host-4:~ scott$ hostname
new-host-4.home
new-host-4:~ scott$ hostname
Scotts-MacBook-Pro.local
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.