Ich habe meinen Hostnamen durch Bearbeiten von / etc / hostname geändert und kann den neuen Hostnamen mit den Befehlen hostname
und hostname -F
anzeigen.
Die Shell-Eingabeaufforderung zeigt jedoch weiterhin den alten Hostnamen an.
Dies ist übrigens Ubuntu 11.0.4. Die Eingabeaufforderung ist in my eingestellt, .bashrc
die ich nicht bearbeitet habe. Abmelden und sogar Neustarten hat keine Auswirkung.
Relevanter Abschnitt des Ubuntu-Standards .bashrc
:
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
($ debian_chroot ist nicht gesetzt, wenn ich mich anmelde ...)
Ich vermute, der Hostname wird vom Sonderzeichen \ h übernommen.
Hier ist die PS1-Einstellung, wie in der Shell angegeben:
PS1='\[\e]0;\u@\h: \w\a\]${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
Und hier ist was PS1 zeigt:
username@oldhostname:~$
Ich wiederholte den Vorgang mit dem genauen Befehl in Warrens Antwort. Es stellt sich heraus, dass der Hostname bis zum Neustart funktioniert, dann aber verloren geht, obwohl er /etc/hostname
den neuen Hostnamen enthält.
echo $PS1
zeigt?Antworten:
Ich beantworte meine eigene Frage im Lichte früherer Antworten von Keith und Warren und der tatsächlichen Lösung. Das wahrgenommene Problem war: "Ich habe meinen Hostnamen geändert. Warum bleibt meine PS1-Eingabeaufforderung für die Bash unverändert?" Das eigentliche Problem war "Warum wurde mein System beim Neustart auf den alten Hostnamen zurückgesetzt?"
In diesem speziellen Fall lautete die Antwort: DHCP ist so konfiguriert, dass lokale Einstellungen überschrieben werden.
Eine effektive Möglichkeit, den Hostnamen zu ändern
Das Folgende gilt für Ubuntu, ymmv .
Ändern Sie den persistenten Hostnamen, indem Sie die Datei bearbeiten
/etc/hostname
.Um den Hostnamen für das laufende System zu ändern , um die Verwendung Hostnamen - Befehl. Ohne Schritt 1 würde dies beim Neustart zurückgesetzt. Es ist sinnvoll, den gerade eingestellten Wert zu verwenden:
oder sein Äquivalent:
Legen Sie den vollqualifizierten Domänennamen (FQDN) in fest
/etc/hosts
.Auszug:
Überprüfen Sie, ob auf dem Computer ein DHCP-Client ausgeführt wird. Zusätzlich zur IP-Adresse kann ein DHCP-Server Einstellungen wie Hostname und DNS-Auflösung überschreiben. Ein "Cloud" -Hostingdienst kann dies tun, damit das Image eines Computers auf der Festplatte mehrmals wiederverwendet werden kann, ohne Konfigurationsdateien zu bearbeiten.
Wenn es existiert, bearbeiten Sie die DHCP-Client-Konfigurationsdatei
/etc/default/dhcpcd
, um dieSET_HOSTNAME
Direktive zu kommentieren :Starten Sie das System nach Möglichkeit neu und überprüfen Sie, ob sich der Name geändert hat mit:
Schritt 4 war eine Neuigkeit für mich und hat mich erwischt. Ich dachte, es wäre nützlich, den gesamten Prozess in dieser Antwort zu dokumentieren. Dieser Schritt ist mit freundlicher Genehmigung von (Linode) den Anweisungen meines Hosting-Dienstes, die ich eigentlich hätte lesen müssen.
quelle
Die Datei
/etc/hostname
enthält die persistente Kopie des Hostnamens und wird während des Startvorgangs zum Festlegen der Laufzeitkopie verwendet. Um die Laufzeitkopie ohne Neustart zu ändern, sagen Sie:Oder übergeben Sie einfach den neuen Hostnamen als Parameter an den
hostname(1)
Befehl.quelle
Ich sehe, dass Sie
/h
in IhremPS1
FQDN haben und dann erwähnen, könnten Sie jetzt Ihren alten und einen neuen Hostnamen posten, den Sie verwenden möchten?/h
zeigt den Hostnamen bis zum ersten '.'/H
zeigt den vollständigen FQDNVersuche es
quelle
Nutzen Sie das
h
in IhremPS1
:quelle