bashは、HOSTNAMEを設定するためのホスト名データをどこで入手しますか。また、永続的に変更する方法


0

私はあなたがこのようなことをすることができることを知っています:

export HOSTNAME=xyz

echo $HOSTNAME

そして、あなたは変更が加えられたのを見るでしょう。しかし、この環境変数を設定するためにbashは起動時にどこから読み取るのでしょうか。私はあなたがもちろんエクスポートステートメントを書くことができることを知っています .bashrcしかし、これは実際の解決策よりも回避策のようです。

私も編集してみました /etc/hostsしかし、加えられた変更は再起動後も生き残れません。

助言がありますか?


2
の可能な重複 Linuxでホスト名を編集する 忘れないで sudo /etc/init.d/hostname.sh
fredtantini

私は変更を加えませんでした /etc/hostname、それが問題でした。私も持っていません /etc/init.d/hostname.sh
sherrellbc

回答:


1

それはあなたのディストリビューションによります:あなたは3つのステップで行うことができます

  1. を編集 ホスト名ファイル あなたのディストリビューションの(下記参照)

    sudo nano /etc/hostname
    
  2. 以下のコマンドを入力してください。

    sudo hostname YOUR_NEW_HOSTNAME  # to change it for this session  
    hostname                         # just to check it  
    
  3. ファイルを編集した後 /etc/hosts

    sudo nano /etc/hosts
    

Debian / Ubuntu
ファイルを編集する必要があります /etc/hostname
実際の名前を新しい名前に置き換えます。

Slackware SuseとOpensuse
編集するファイルは /etc/HOSTNAME
実際の名前を新しい名前に置き換えます。

Redhat、CentOS、Fedora
編集するファイルは /etc/sysconfig/network
あなたが見つけた行の名前を置き換える必要があります HOSTNAME=OldName.OldDomain

注:あなたがにいない場合は sudoers あなたはroot権限を得ることができます、例えば su -の後に同じコマンドを入力します。 sudo


いくつか(多分古い) Debian 配布ベースが使用されます /etc/init.d/hostname.sh それが書かれているブート時に /etc/hostname oldname。それを効果的にするためにはあなたもそこで変わらなければなりません。


次の再起動まで有効な解決策のためにあなたが使うことができます hostname newname
おそらくそれはあなたの現在のシェルには現れないでしょう。変数はオープン時に設定されているからです(手動で修正するか新しいシェルで作業することができます)。

から man hostname セクション内 SET NAME

1つの引数または--fileオプションを指定して呼び出された場合、コマンドはホスト名またはNIS / YPドメインを設定します。          名。 hostnameはsethostname(2)関数を使用し、3つのdomainname、ypdomainname、およびnisdomainはすべて使用します。          nameはsetdomainname(2)を使用します。これは次の再起動まで有効です。 / etc / hostnameを編集してください。          恒久的な変更

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.