Linux 15.070 Themen, 107.540 Beiträge

Rechnername "noname" in Shell

heriL / 6 Antworten / Baumansicht Nickles

Hallo Leute,
bei mir erscheint beim Prompt in der Konsole "noname" als Rechnername.
also:
pusl@noname:~/

obwohl über Yast ein ordentlicher Rechnername eingetragen wurde, den ich auch in /etc/hosts (127.0.0.2 dell.loh dell) & /etc/HOSTNAME (dell.loh) wiederfinde.
OS = opensuse 10.3 ;-)
weiß jemand, wie ich das ändern kann ?
Gruß,
heriL

bei Antwort benachrichtigen
KarstenW heriL „Rechnername "noname" in Shell“
Optionen

Geh mal in die Datei .bashrc und füge folgende Zeilen ein (oder ändere sie entsprechend):


# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD/$HOME/~}\007"'
;;
*)
;;
esac


PS: Stammt von Debian etch , muß aber auch bei SUSE funktionieren da auch SUSE die Linuxshell Bash verwendet.
Kann sein das ein unnötiger Zeilenumbruch bei PROMPT_COMMAND... eingefügt wurde.

PPS: Du mußt mal etwas Shellprogrammierung lernen um zu verstehen was die case Anweisung bedeutet ;-).

Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
REPI KarstenW „Geh mal in die Datei .bashrc und füge folgende Zeilen ein oder ändere sie...“
Optionen

Der Prompt, wird ja an der bash Shell dargestellt, nur wird nicht der richtige hinterlegte Hostname ausgegeben, daran kann es also nicht liegen.

In meiner .bashrc ist dieser Eintrag nicht vorhanden und der Prompt funktioniert trotzdem.

Der Prompt unter SuSE wird wohl eher in der /etc/bash.bashrc definiert.
Dazu wird u.d. die Environment Variable $HOST ausgewertet. In dieser sollte der Hostname stehen.
Kontrolle mit echo $HOST. Auch gibt es die Variable $HOSTNAME !
Beide Variablen werden beim Systemstart mittels /etc/profile generiert, ebenso die systemeweiten Einstellungen für die Bourne Shells.


Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
KarstenW REPI „Der Prompt, wird ja an der bash Shell dargestellt, nur wird nicht der richtige...“
Optionen

Das stimmt schon, aber es kann auch sein das die Konfiguration der Variable PS1 falsch ist.
Bei der Linuxshell Bash (bei Debian) gibt es verschiedene Konfigurationsdateien im /home Verzeichnis:

.bashrc
.bash_profile

Für eine Loginshell wird zunächst die Datei /etc/profile gelesen, anschließend wird die Datei $HOME/.bash_profile (falls diese existiert) ausgeführt.
Wenn nicht , wird versucht, $HOME/.bash_login auszuführen. Falls auch diese Datei nicht existiert , wird versucht $HOME/.profile auszuführen.
Das ist zumindest der Standard bei der Shell Bash unter Linux. Ich weiß nicht ob sich SUSE daran hält.

Für eine NICHT-LOGIN-Shell wird die Datei $HOME/.bashrc ausgeführt.

Es kann sein das die Dateien bei SUSE und bei Debian etwas anders bezeichnet werden.

Man müßte mal diese Dateien genauer untersuchen , ob die Umgebungsvariable PS1 entsprechend initialisert ist.

PS1='\u@\h:\w\$ '


$PS1 enthält das Aussehen des Loginprompts (oder den Promptstring)

echo $PS1

${debian_chroot:+($debian_chroot)}\u@\h:\w\$


PS: Ich habe mich auch etwas vertan. In der Datei /etc/profile wird bei Debian der Loginprompt definiert:

cat /etc/profile

# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).

if [ "`id -u`" -eq 0 ]; then
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
PATH="/usr/local/bin:/usr/bin:/bin:/usr/games"
fi

if [ "$PS1" ]; then
if [ "$BASH" ]; then
PS1='\u@\h:\w\$ '
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi

export PATH

umask 022

Bei Debian stehen nur diese Zeilen in der Datei /etc/profile.






Debian GNU/Linux https://www.debian.org/index.de.html
bei Antwort benachrichtigen
REPI heriL „Rechnername "noname" in Shell“
Optionen

1. mit Yast unter Netzwerkdienste mit dem Modul "DNS- und Hostname" entsprechend konfigurieren , nämlich Hostname und Domänenname nach freier Wahl eintragen.
Bei Dir ist der Hostname scheinbar dell und die Domäne loh !
EIntrag in /etc/HOSTNAME ist O.K.

Würde ggf. in Yast alles nochmals löschen und neu vergeben, was mit dem Hostnamen zusammenhängt.


Lies bitte hier : http://www.cpqlinux.com/hostname.html

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen
heriL REPI „1. mit Yast unter Netzwerkdienste mit dem Modul DNS- und Hostname entsprechend...“
Optionen

Hallo,
dein Link war hilfreich:
Host- & Domänenname waren zwar richtig eingestellt,
aber ich habe spaßeshalber mal ein Häckchen gesetzt bei "Ändere /etc/resolv.conf manuell"
Damit wurde ein anderes Häckchen: "DNS Daten über DHCP aktualisieren" aktiviert.

das zeigte zumindest Wirkung: ..@noname war jetzt: ..@(none) ;-)

gemäß Anweisung im Link habe ich dann auf der Konsole das Kommando hostname=... abgesetzt und jetzt sieht es korrekt aus.

danke & Gruß
heriL

bei Antwort benachrichtigen
REPI heriL „Hallo, dein Link war hilfreich: Host- Domänenname waren zwar richtig...“
Optionen

Danke, dass Du eine Rückinfo gibst, denn das ist eher selten der Fall und man kann sich auch mal freuen, wenn ein Hinweis zum Erfolg geführt hat.

Es empfiehlt sich immer, etwas Linux im Hause zu haben.
bei Antwort benachrichtigen