잘못된 호스트 이름을 표시하는 OSX 터미널


30

터미널을 열면 PS1이 무엇으로 설정되어 있는지 보여줄 것으로 기대합니다 \h:\W \u\$.

그러나 Eriks-MacBook시스템 환경 설정에 표시된 것처럼 내 호스트 이름이 표시되지 않습니다 .

대신 임의의 문자열이 표시 unknownb88d120cd4b2됩니다.

이 문제를 어떻게 해결하거나 재설정 할 수 있습니까?

이 기기는 새 제품이며 기본 설정 / 설정은 변경되지 않았습니다.


입력 hostname프롬프트를 눌러 입력에. 무엇을 얻습니까?
Blender

unknownb88d120cd4b2 : ~ erik $ 호스트 이름 unknownb88d120cd4b2 unknownb88d120cd4b2 : ~ erik $

그러나 그것은 내 컴퓨터 이름이 System Prefs-Sharing에 있지 않습니다. 나는 도움이되기를 바라고 있지만 기본적으로 "erik-mba"로 바꾸었지만 주사위는 없습니다.

답변:


25

Gordon은 호스트 이름의 출처에 대한 좋은 답변 을 제공합니다 .

> 공유 - - 당신은 시스템 환경 설정에서 설정하는 이름을 원하는 경우> 컴퓨터 이름이 프롬프트에 표시 할 대체 \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( System ▸ System ▸ HostName )

• 그렇지 않으면 기본 IP 주소에 대한 역방향 DNS 쿼리 결과 (인터넷 카페를 방문 할 때 집에 연결했을 때와는 전혀 다른 호스트 이름이 표시 될 수 있음)

• 그렇지 않으면 시스템 환경 설정> 공유 에서 "Bonjour"호스트 이름 ( preferences.plist다시 ... 시스템 ▸ 네트워크 ▸ 호스트 이름 ▸ LocalHostName )

마지막으로 위의 설정이 없으면 BSD 호스트 이름은 localhost

그건 그렇고, 나는 이전에 같은 질문에 대답했습니다 : Mac OS X Terminal-프롬프트 이름은 어디에서 왔습니까?


1
그것은 가능성이 역 DNS가 조회 내 시스템의 모든 다른 구성을 통해 앞서 기 소요?
caesarsol

내 시스템을 확인했습니다 : / etc / hostconfig가 없습니다. preferences.plist ▸ 시스템 ▸ 시스템 ▸ HostName 이 정의되어 있지 않습니다 ( ComputerName 이 있더라도 ). DNS 역방향 조회는 터미널 창에 보이는 횡설수설을 반환합니다. 시스템 ▸ 네트워크 ▸ 호스트 이름 ▸ LocalHostName 이 정의되어 있습니다. 따라서 시스템이 내 것과 동일하게 표시되면 역방향 DNS 조회가 첫 번째 일치였으며 LocalHostName 보다 우선 합니다 .
Edward Falk

12

OS X은 "호스트 이름"을 찾기 위해 여러 가지를 시도합니다. 불행히도 정확한 목록 (및 순서)을 모르지만 여기서 일어나는 것은 IP 주소와 관련된 DNS 이름을 발견하고 Bonjour 이름 대신 그것을 사용한다는 것입니다. 공유 환경 설정).

그렇다면 왜 DNS 이름을 찾습니까? 로컬 라우터 / DHCP 서버 / DNS 서버가 이더넷 하드웨어 주소 (아마도 b8 : 8d : 12 : 0c : d4 : b2)를 기반으로 동적으로 서버를 할당한다고 생각합니다. 라우터의 설정을 조정하여이 작업을 중지하거나 네트워크 환경 설정, 고급 설정에서 컴퓨터의 DHCP 클라이언트 ID를 설정하여 자신에게 할당 한 이름을 제어 할 수 있습니다.


2
이것은 나에게 가장 도움이되었다. 내 컴퓨터는 이전에 다른 이름을 본 적이 없으므로 이름이 자발적으로 변경 된 것처럼 보였습니다. 바이러스와 디스크 문제 등을 확인하는 데 90 분을 낭비했습니다. 시간 낭비를 안전하게 막을 수 있다는 것을 알게되어 기쁩니다.
conspiritech

1

여전히 문제가 있는지 확실하지 않은 경우 이것은 요세미티와 시에라 사이에서 언젠가 수정 된 것으로 보입니다.

새 컴퓨터의 경우 공유 시스템 환경 설정으로 시작하고 원하는 컴퓨터 이름으로 [새 이름]을 입력합니다. 또한 각 네트워크 인터페이스의 모든 활성 DHCP 클라이언트 ID 필드에 [새 이름]을 입력합니다. 터미널을 열어 비슷한 이름을보고 한 후에는 일부 문자가 허용되지 않으므로 필요한 경우 시스템에서 이름을 수정합니다. 아래 단계를 사용하여 이름을 변경할 수 있습니다. [새 이름] 블록을 원하는 컴퓨터 이름으로 바꾸십시오.

  1. 터미널 열기
  2. 프롬프트에서 다음 sudo scutil --set HostName [새 이름]을 입력하십시오 .
  3. 새 터미널 창을 열어 새 이름이 수락되었는지 확인하십시오.

이름이 마음에 들지 않으면 위의 과정을 진행하여 Active Domain에 바인딩합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.