ホスト名ではなくコンピュータ名をどうやって知ることができますか?

ホスト名ではなくコンピュータ名をどうやって知ることができますか?

hostname私のすべての検索結果はまたはに関連していましたuname -n。私は狡猾なオプションを見つけるために両方のマニュアルを確認しましたが、運がありませんでした。

scutil --get ComputerName私はLinuxシステムで試しているOSXと同等のものを見つけようとしています。 Mac OSの場合例えば在庫管理、Bonjourベースのリモートアクセス...)、およびデフォルトのホスト名として使用されます(スペース処理などをフィルタリングした後)。

答え1

Linuxを実行しているすべてのコンピュータでは、人が読める(および人が選択した)名前に最も近い名前はに保存されている名前です/etc/hostname。一部(すべてではない)Linuxディストリビューションでは、この名前はインストール中にユーザー名を入力します(ただし、次のように計算されます)。 macOSのコンピュータ名とは異なり、ネットワークホスト名の制限)。これは名前空間化できます。つまりUTS名前空間異なるホスト名を持つことができます。

systemdを実行しているシステムは、macOSのコンピュータ名と同様に説明する必要がある人が読むことができる「かなり」の名前を含む3つの異なるホスト名を区別します。これは次のように設定して検索できます。hostnamectlオプション--pretty。他の2つのホスト名は、静的ホスト名(つまり、上記のデフォルトのホスト名)と一時ホスト名(現在のネットワーク構成を反映)です。

Systemdはシャーシタイプもサポートしています(例えば「タブレット」)とコンソールアイコンを参照してください。systemd-hostnamed.service

答え2

sudo dmidecode | grep -A3 '^System Information'コマンドを使用できます。このコマンドは、BIOSとハードウェアから情報を読み取ります。マイコンピュータの例:

System Information
    Manufacturer: LENOVO
    Product Name: 20BHA06YGB
    Version: ThinkPad W540

源泉: [1]

答え3

厳密に言うと、ネットワークに依存しない「コンピュータ名」はLinuxには存在せず、実際にはネットワークにないコンピュータに名前を付ける目的もありません。

/etc/hostnameコンピュータの文字列が異なる理由は、DHCPプロトコルが新しいホストにホスト名とIPアドレスを提供するため/etc/hostsです。uname -nmachine42.work.localnetwork は、DHCP サーバーで選択した名前とまったく同じです。その後、文字列を保存して返します。gethostname着信電話。

また見なさい:

自分のコンピュータ名をどのように変更しますか?(tl;dr echo computername > /etc/hostname) - インストール中に名前を選択すると、これが発生します。

再起動せずにホスト名を変更するには?(tl;dr hostname computername) - ホスト名でDHCPリースを受け取ると、これが発生します。

答え4

短い冗談:

hostnamectl | egrep -i "Static hostname" | awk '{print $NF}'

関連情報