はじめに
こんにちは!今回はhostnameコマンドについて解説します。
hostnameはシステムのホスト名(コンピュータ名)を表示・変更するコマンドです。ネットワークを設定したり、サーバーを管理したり、現在のマシン名を確認したいときに使います。
シンプルだけど、システム管理では超よく使うコマンドですね。ネットワークの基本を理解するのに役立ちますよ。
hostnameコマンドとは
hostnameは、システムのホスト名を表示・変更する外部コマンドです。ホスト名はネットワーク上でマシンを識別するための名前です。
Linuxマシンをセットアップする時、どのコンピュータなのかを判定するのに使います。サーバー管理では必須の知識。シンプルなコマンドだからこそ、しっかり理解しておきたいですね。
基本構文
|
|
引数なしで実行するとホスト名を表示します。ホスト名を変更するには、root権限が必要です。
主なオプション
| オプション | 説明 |
|---|---|
-a |
すべてのホスト名エイリアスを表示 |
-d |
DNSドメイン名を表示 |
-f |
完全修飾ドメイン名(FQDN)を表示 |
-i |
ホスト名に対応するIPアドレスを表示 |
-s |
ショートホスト名(ドメイン部分なし)を表示 |
-y |
NISドメイン名を表示 |
-F filename |
ファイルからホスト名を読み込んで設定 |
-b |
新しいホスト名をブロードキャスト(古い) |
使用例
例1: 現在のホスト名を表示
|
|
実行結果:
|
|
最もシンプルな使い方。現在のシステムのホスト名が表示されます。
例2: ショートホスト名を表示
|
|
実行結果:
|
|
ドメイン部分を除いたホスト名だけを表示します。
例3: 完全修飾ドメイン名(FQDN)を表示
|
|
実行結果:
|
|
ドメイン名を含む完全なホスト名を表示します。
例4: ホスト名に対応するIPアドレスを表示
|
|
実行結果:
|
|
ホスト名に紐付けられたIPアドレスを表示。ネットワーク設定の確認に便利です。
例5: ホスト名を変更する(root権限)
|
|
実行結果:
|
|
ホスト名を一時的に変更します。ただし、再起動すると元に戻ります。
例6: ホスト名を永続的に変更
|
|
実行結果:
|
|
hostnamectlを使うと、永続的にホスト名が変更されます。最新のLinuxではこちらが推奨です。
例7: DNSドメイン名を表示
|
|
実行結果:
|
|
ホスト名から抽出されたDNSドメイン名を表示します。
例8: すべてのエイリアスを表示
|
|
実行結果:
|
|
ホスト名に設定されているすべてのエイリアスを表示。
例9: hostnameとhostnamectlの比較
|
|
実行結果:
|
|
hostnamectlではより詳しい情報が表示されます。
例10: ホスト名を確認してからシステム情報を表示
|
|
実行結果:
|
|
シェルスクリプトで複数の情報を取得する例。
Tips・注意点
ホスト名の変更は再起動が必要な場合がある
hostnameコマンドで一時的に変更できますが、永続的に変更するには/etc/hostnameファイルを編集するか、hostnamectlを使う必要があります。
|
|
ホスト名の命名規則
ホスト名は英数字とハイフンのみを使う必要があります。大文字は自動で小文字に変換されます。
|
|
DNSが設定されていない場合
DNSが正しく設定されていないと、hostname -fやhostname -dがうまく動作しないことがあります。/etc/hostsファイルで設定を確認しましょう。
|
|
hostnameとhostnamectlの違い
最新のLinuxシステムではhostnamectlが推奨されます。より詳細な情報が得られ、永続的な設定が簡単です。
実践的な使い方
サーバーのセットアップスクリプト
|
|
サーバーをセットアップする時に、ホスト名を自動で設定するスクリプト。
ホスト名ベースの処理分岐
|
|
ホスト名に基づいて、本番環境かテスト環境かを判定。
ネットワーク設定確認スクリプト
|
|
ネットワーク設定をまとめて確認するスクリプト。
コンテナ内での動的ホスト名設定
|
|
Dockerコンテナでホスト名を指定する例。
まとめ
hostnameコマンドのポイント:
- シンプルな表示コマンド - 引数なしでホスト名表示
- -s: ショートホスト名(ドメイン部分なし)
- -f: 完全修飾ドメイン名(FQDN)
- -i: IPアドレスを表示
- -d: ドメイン名を表示
- 変更は一時的 - 永続的には
hostnamectlまたはファイル編集が必要 - よく使う組み合わせ:
hostname,hostname -f,hostname -i
ネットワーク管理やサーバー運用には欠かせないコマンド。シンプルだからこそ、確実に理解しておくと、トラブルシューティングの時に役立ちますよ!