web-dev-qa-db-ja.com

正しくないホスト名を示すOSXターミナル

ターミナルを開くと、PS1が\h:\W \u\$に設定されているものが表示されるはずです。

ただし、システム環境設定に表示されるように、ホスト名Eriks-MacBookが表示されません。

代わりに、ランダムな文字列unknownb88d120cd4b2が表示されます。

これをどのように修正またはリセットできますか?

このマシンは新品であり、設定/設定は変更されていません。

31
Erik W

ゴードンはあなたのホスト名の起源に良い answer を与えます。

システム環境設定->共有->コンピュータ名で設定した名前をプロンプトに表示したい場合は、_\h_を$(scutil --get ComputerName)に置き換えます。たとえば、私のプロンプトは次のように設定されています

_PS1="[\u@:$(scutil --get ComputerName) \W]\\$ "
_
26
ajs

ターミナルには、BSDホスト名の最初のラベルが表示されます(シェルがBASHであると想定)。 BSDホスト名がyourhostname.mynetwork.comの場合、ターミナルにはyourhostname-のみが表示されます

では、BSDホスト名はどこから来るのでしょうか?それはいくつかの場所から来ることができます:

•ファイルから:/etc/hostconfig

•それ以外の場合:/Library/Preferences/SystemConfiguration/preferences.plistシステム▸システム▸ホスト名

•それ以外の場合、プライマリIPアドレスの逆DNSクエリの結果(インターネットカフェにアクセスしたときと、自宅で接続したときとでは、まったく異なるホスト名が表示される場合があります)

•それ以外の「Bonjour」ホスト名はシステム環境設定>共有preferences.plistもう一度...システム▸ネットワーク▸ホスト名▸LocalHostName

•最後に、上記のいずれも設定されていない場合、BSDホスト名は単にlocalhostになります。

ちなみに、私は少し前にここで同じ質問に答えました: Mac OS Xターミナル-プロンプト名はどこから来たのですか

20
username

OS Xは「ホスト名」を見つけるためにいくつかのことを試みます。残念ながら、正確なリスト(および順序)はわかりませんが、ここで起こっているのは、そのIPアドレスに関連付けられたDNS名が検出され、それ自体が宣伝しているBonjour名の代わりにそれを使用していることです(で定義されているもの)共有設定)。

では、なぜDNS名を見つけるのでしょうか。私の推測では、ローカルのルーター/ DHCPサーバー/ DNSサーバーが、イーサネットハードウェアアドレス(おそらくb8:8d:12:0c:d4:b2)に基づいて動的に割り当てています。ルーターの設定を調整してこれを停止することもできますが、コンピューターのDHCPクライアントIDを設定して(ネットワーク設定、詳細設定で)、割り当てた名前を制御することもできます。

12
Gordon Davisson

それでも問題が解決しないかどうかはわかりませんが、ヨセミテとシエラの間で修正されているようです。

新しいコンピューターの場合は、[共有システム設定]から始め、希望するコンピューター名として[新しい名前]を入力します。また、各ネットワークインターフェイスのすべてのアクティブなDHCPクライアントIDフィールドに[新しい名前]を入力します。ターミナルを開いて同様の名前を報告していることを確認した後、一部の文字は許可されないため、システムは必要に応じて名前を変更します。以下の手順を使用して名前を変更できます。[新しい名前]ブロックを目的のコンピューター名に置き換えるだけです。

  1. オープンターミナル
  2. プロンプトで次のように入力します-Sudo scutil --set HostName [new name]
  3. 新しいターミナルウィンドウを開いて、新しい名前が受け入れられたことを確認します。

名前が私の好みに合わない場合は、アクティブドメインにバインドする前に上記の手順に進みます。

1