시스템 환경 설정> 공유에서 내 컴퓨터 이름이 "archos"로 설정되었지만 터미널에서 "iphone"으로 표시됩니다. iPhone 개발을 위해 Xcode를로드 한 후에이 작업을 시작했습니다.
Last login: Mon Nov 7 14:46:55 on ttys001
iphone:~ travis$
어떤 아이디어가 이것을 일으킬 수 있습니까?
시스템 환경 설정> 공유에서 내 컴퓨터 이름이 "archos"로 설정되었지만 터미널에서 "iphone"으로 표시됩니다. iPhone 개발을 위해 Xcode를로드 한 후에이 작업을 시작했습니다.
Last login: Mon Nov 7 14:46:55 on ttys001
iphone:~ travis$
어떤 아이디어가 이것을 일으킬 수 있습니까?
답변:
이것이 발생하는 것은 완전히 정상입니다. 터미널에 원격으로 로그인하면 bash는 역방향 DNS 조회를 수행합니다. 연결중인 네트워크에 호스트 이름이 지정되지 않고 DHCP 서버에서 응답이 없거나 원격 DNS 서버에 대한 역방향 조회가 해결되지 않은 경우에만 동일합니다.
터미널에서이 명령을 사용하여 기본 설정을 쉽게 무시할 수 있습니다.
# sudo scutil --set HostName archos
다음을 사용하여 확인할 수 있습니다.
# nslookup nn.nn.nn.nn
( or )
# host nn.nn.nn.nn
(여기서 nn은 Mac의 IP 주소를 나타냄)
sudo scutil --set HostName ''
.
HostName
은 나중에 값을 통해 호스트 이름을 변경하려고 할 때도 유지되는 별도의 값을 생성하므로 권장되지 않습니다 System Preferences > Sharing
. 반대로 설정 LocalHostName
은 동일한 값을 업데이트하며 일반적으로 셸에서도 선택 hostname
되며 ComputerName
값은 함께 업데이트됩니다. 아니면 HostName
여기서 유리한 방식으로 설정이 다르게 작동합니까?
hostname -f
scutil 명령을 사용하여 다른 사항을 변경할 수도 있습니다.
sudo scutil --set ComputerName "newname"
sudo scutil --set LocalHostName "newname"
sudo scutil --set HostName "newname"
scutil
설정 HostName
, 모두 ComputerName
와는 LocalHostName
이미 (매버릭스에서) 나를 위해 새로운 이름으로 설정되었다. 그러나 이러한 다른 설정이 존재한다는 것을 알고 반갑습니다.
HostName
때문에 나중에 설정하지 않는 것이 좋습니다. 이렇게하면 나중에 시스템 환경 설정을 통해 호스트 이름을 변경하려고 할 때도 해당 값이 유지됩니다 . 반대로, LocalHostName
IS는 쉘에 의해 포착하고 hostname
있으므로, HostName
필요하지 않습니다.
sudo scutil --set LocalHostName ''
삭제 된 LocalHostName을 실행하면 이제 내 프롬프트가 올바른 값을 가진 ComputerName을 사용하고 있습니다.
쉘 ( $HOSTNAME
variable, '\h'
in $PS1
) 및 hostname
유틸리티가 다음에 표시된 호스트 이름과 다른 호스트 이름을보고 해야하는 두 가지 이유가 있습니다 System Preferences > Sharing
.
sudo scutil --set HostName newName
호스트 이름을 변경 지속적으로하는 데 사용 - 불행하게도,이 값은 독립 의 LocalHostName
- 뒤에서 시스템 환경 설정에서 설정 값 에도 불구하고 man hostname
IT를 사용하지 마십시오,이 방법을 제안 , 즉 이유 그것을 제거하기 위해 달린다sudo scutil --set HostName ''
.이 시점에서 LocalHostName
다시보고되어야한다. 배경 은 @Lauri Ranta 의이 게시물 을 참조하십시오 .
[ 업데이트 : OSX 10.10부터는 다음 사항이 더 이상 적용되지 않습니다. ] /etc/hosts
파일에 컴퓨터의 IP 주소와 일치하는 항목이 있으면 해당 항목의 이름이보고됩니다.
위의 어느 것도 참이 아닌 경우에만 쉘은 hostname
시스템 환경 설정을 통해 설정된 값을 반영합니다.
쉘에서 호스트 이름 을 변경 하려면 다음을 모두 실행 하십시오.
sudo scutil --set LocalHostName <newName>
sudo scutil --set ComputerName <newFriendlyName>
여기서 <newFriendlyName>
더 친숙한 버전 (공백, 문장 부호)이 될 수 있습니다 <newName>
(알파벳 및 대시 만 해당).
sudo scutil --set HostName ''
먼저 실행하고 (사건 문제)에 항목이 없는지 확인했습니다 /etc/hosts
. scutil --get HostName
보고해야합니다 Hostname: not set
.
scutil --get HostName HostName: not set
/ etc / hosts는 양성인 것 같습니다 ...
PS1
변수 에을 사용하는 대신 하드 코딩 된 호스트 이름이 발생 \h
하지 않습니까? 제쳐두고 : /etc/hosts
더 이상 OSX 10.10에서 컨설팅되지 않습니다 (나는 대답을 업데이트했습니다).
sudo scutil --set HostName ''
) OS X은 컴퓨터 이름을 해당 IP 주소에 매핑 할 수 있습니다 (예 : 이제 작동합니다 ping <computername>
).
이외에도 제프리 J. 후버의 선단부 (위) ,
마지막 두 단계를 추가하겠습니다.
dscacheutil -flushcache
Jeffrey Hoover의 팁이 정답이라는 데 동의합니다. DNS 캐시를 플러시하고 Mac을 재시동하는 것도 좋은 단계입니다. 이것은 Jeff Hoover의 답변 변형입니다.
sudo -i
Password:
for n in HostName ComputerName LocalHostName; do
scutil --set $n new_hostname
done
exit
-
: --set
작동 해야합니다 . 또한 Jeff의 답변에 대해 언급했듯이 설정하지 않는 것이 좋습니다 HostName
.
별도의 답변에서 언급했듯이 다른 옵션은 다음 줄을 실행하거나 ~ / .bash_profile 파일에 추가하는 것과 같이 기본 PS1 프롬프트를 재정의하는 것입니다.
$ PS1="$(scutil --get ComputerName):\W \u\\$ "
심판 :
https://superuser.com/a/414903/39364
http://www.cnet.com/news/keep-your-command-prompt-host-name-static-in-os-x-and-other-unix-systems/
쉘 자체 ( zsh
내 경우) 만 올바른 컴퓨터 이름을 표시하지 못하는 문제가있었습니다 . 쉘을 다시 시작하면 해결되었습니다.
exec /bin/zsh