ホスト名ではなくコンピューター名を取得する方法は?


18

私の検索のすべての結果は、hostnameまたはに関係することになりますuname -n。私は両方のマニュアルを調べて、卑劣なオプションを探しましたが、運はありませんでした。

scutil --get ComputerNameLinuxシステムでOSXに相当するものを見つけようとしています。Mac OS Xでは、コンピューター名はコンピューターの人間が読み取れる識別子として使用されます。それは、様々な管理画面(に示されていますたとえば、デフォルトのホスト名と(ハンドルスペースなどにフィルタリング後の)在庫管理上、ボンジュールベースのリモートアクセス、...)となっています。


私は間違っているかもしれませんが、ネットワーク名としてコンピューターの名前を定義するということは、名前が固定されていないということですよね?マシンにLinuxまたはOSXをインストールするとき、通常、そのコンピューターの名前を選択します(これは、デフォルトのネットワーク名です)。たとえば、私のラップトップの名前は「FooBar」ですが、職場のネットワークに接続すると、「machine42.work.localnetwork」などのホスト名を取得します。
シェルジョン

@StephenKittまさに、これはLinuxシステムで別の名前を持っていますか?
シェルジョン

4
@ Sh3ljohn osxはcomputernameの目的は何ですか?Linuxシステムには同等のものはないと思います。
Bibek_G

そのコンピューターをインストールするときに、ホスト名以外の名前を付けましたか?/ etcでその名前を検索してみてくださいgrep -ri 'name' /etc
。– ptman

@Bibek_Gこれを使用して、私のソフトウェアから実行しているマシンを特定します。同じディスクに複数のOSがインストールされていて、それらが同じマシンで実行される可能性があるため、UUIDは不十分です。
シェルジョン

回答:


31

Linuxを実行しているコンピューターの人間が読み取れる(および人間が選択した)名前に最も近いものは、に保存されているデフォルトのホスト名です/etc/hostname。一部の(すべてではない)Linuxディストリビューションでは、この名前はインストール時にコンピューター名として入力されます(ただし、Mac OS Xのコンピューター名とは異なり、ネットワークホスト名の制約があります)。


しかし、このファイルには、多くの場合、セットに使用されているhostnameuname -n、そしてSh3ljohn @明示的にこれら二つのコマンドの出力を避けたかったです。
ロアイマ

17

厳密に言えば、Linuxにはネットワークに関係のない「コンピューター名」というものはありません。実際、ネットワーク上にないコンピューターに名前を付ける目的がわかりません。

お使いのコンピュータが、中に異なる文字列を持っている理由/etc/hostname/etc/hostsおよびuname -nDHCPプロトコルは新しいホストへのIPアドレスとともにホスト名を提供するための施設を持っていることです。「machine42.work.localnetwork」は、DHCPサーバーが選択する名前とまったく同じです。この文字列は保存され、gethostname呼び出しによって返されます。

こちらもご覧ください:

コンピューター名を変更するにはどうすればよいですか?(tl; dr echo computername > /etc/hostname)-インストール中に名前を選択すると、それが起こります。

再起動せずにホスト名を変更するにはどうすればよいですか?(tl; dr hostname computername)-ホスト名でDHCPリースを取得すると、それが起こります。


「厳密に言えば、Linuxにはネットワークに関係のない「コンピューター名」というものはありません -サービスに依存していませんか?たとえば、Windowsに相当するのはNetBIOS名だと思います。これはドメイン部分のないフレンドリ名であり、ドメイン名のホスト部分とは異なる場合があります(完全修飾名かどうか)。

NetBIOS名は、ドメイン名とは異なる場合でもネットワーク名のままです。
ドミトリーグリゴリエフ

16

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

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

出典: [1]


これは私が探しているものではないと思います。これには管理者権限が必要であり、そのマシンにOSをインストールしたときにユーザーが選択した名前ではなく、ハードウェアに関する情報を提供します。
シェルジョン

13
ユーザーが選択した名前?ホスト名のように思えます。
Bibek_G

2
申し訳ありませんが、私はそれを間違えました。とにかく答えを残します。私が知っているLinuxディストリビューションを使用してユーザーが選択した名前は、ホスト名だけです。
jschlichtholz

@Bibek_Gこれが、私の質問に対する答えが見つからない理由です。OSXでは、これらは2つの異なるものです。そのマシンにLinuxをインストールしたときに入力した名前を探しています。これがデフォルトのネットワーク名であると想定しています。
シェルジョン

@jschlichtholzもちろん、この答えは他の人にとっては役立つかもしれませんが、私がBibek_Gに言ったように、デフォルトのネットワーク名を探しています。
シェルジョン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.