Wenn ich per SSH mit mobaXterm auf einen RHEL7-Server zugreife (mit gespeichertem uname und pwd), wird nur ein blinkender Cursor angezeigt, der Eingaben entgegennimmt, aber nichts ausführt. Ich kann drücken ctrl+c
und dann erscheint bash-4.2$
und alles ist gut, aber das ist ärgerlich und das Hinzufügen ctrl+c
des Befehls „execute“ von mobaXterm beim Anmelden „löst“ das Problem hier nicht.
Die Verwendung anderer SSH/Telnet-Tools wie Putty oder SecureFX führt zu denselben Ergebnissen ( ctrl+c
um eine interaktive Shell zu erhalten).
Antwort1
Wenn es .profile
tatsächlich enthält:
SHELL=`type -p bash`
exec bash -l
Und es gibt kein .bash_profile
, wir haben eine Schleife. Ihre Login-Shell (sagen wir /bin/sh
vielleicht ) liest .profile
, was dazu führt, dass sie exec
als Login-Shell basht. Wenn Bash als Login-Shell ausgeführt wird, liest es .bash_profile
, und wenn das fehlt, .profile
. Also würde es auch diese Befehle lesen und ausführen, was dazu führt, dass es exec
als Login-Shell basht. Wenn Bash als Login-Shell ausgeführt wird, ….
Dies könnte eine vernünftigere Möglichkeit sein, dies zu tun:
if [ -z "${BASH_VERSION}" ];
then
SHELL=`type -p bash`
exec bash -l
fi
Allerdings sollten Sie anstelle solcher Hacks Ihren Systemadministrator bitten, Bash als Ihre Anmelde-Shell einzurichten (vorausgesetzt, Sie können dies nicht selbst mithilfe von tun chsh
).