[Frage] bash einrichten

maceis

Mitglied
Mitglied seit
9 Apr 2006
Beiträge
687
Punkte für Reaktionen
4
Punkte
18
Hallo zusammen,

ich habe auf einer neuen Box Freetz mit bash installiert.

Wenn ich mich mit ssh auf die Box verbinde, kann ich Autocomplete nicht verwenden.
Jedesmal wenn ich die <TAB> Taste drücke, springt der Cursor ein Stück vor, aber sonst passiert nichts weiter.
Auch die Story kann ich nicht verwenden. Wenn ich die Pfeiltasten benutze, kommen nur kryptische Zeichen "^[[A" und "^[[B". Mit strg-p und strg-n wird "^P" und "^N" ausgegeben.
Außerdem funktioniert strg-L (zum Löschen des Terminalfenster) nicht. Es wird "^L" ausgegeben.
strg-C und strg-D funktionieren dagegen wie erwartet.

Edit: Ich sehe gerade, dass auch gar keine .bash_history angelegt wird.

Das Problem hatte ich schon bei diversen anderen Boxen, konnte es aber jedesmal lösen.
Nur diesmal stehe ich auf dem Schlauch und mir will nicht meh einfallen, wie ich das seinerzeit gemacht hatte.

Kann mir jemand auf die Sprünge helfen?
Danke und Gruß
D.Mon
 
Zuletzt bearbeitet:
Wenn ich mich mit ssh auf die Box verbinde
Bei aller Ausführlichkeit des Rests der Beschreibung hinsichtlich der Kodierung und des Effekts einzelner Tasten, ist das etwas sehr dünn zur Frage, von wo da womit und wohin verbunden wird. Das fängt damit an, daß die Bash meines Wissens gar keine SSH-Verbindungen entgegennimmt ... also wird sie wohl nur als Login-Shell innerhalb einer SSH-Session (die immer noch zwischen einem Server (Daemon) und einem Client abläuft) verwendet.

Zu 99% lautet das Zauberwort hier aber "terminal type" bzw. die Emulation eines solchen Terminals durch den SSH-Client. Die History der Bash-Shell dürfte damit gar nichts zu tun haben, deren Fehlen (so es sich bestätigt, denn die ist ja ein "hidden file" und wird nur mit besonderen Optionen beim "ls" angezeigt) liegt wohl eher daran, daß da kein Schreibzugriff im Home-Verzeichnis für den verwendeten Account besteht.

Wer hier im IPPF mit welchen Emulationen arbeitet bei welchem Client (die meisten benutzen PuTTY von Windows aus, was allerdings auch von Linux aus möglich ist) und was das für Auswirkungen auf die Darstellung von Zeichen hat (bis hin zu den Rahmen, die im "mconf" des "kconfig"-Pakets in Freetz oder auch im "Midnight Commander" gezeichnet werden) oder auf die Erkennung von "Sondertasten" (bis hin zu den Cursor- und Function-Keys), ist hier schon einige Male besprochen worden - iirc auch in diesem Jahr schon.

Daher sollte sich das auch finden lassen. Das alles noch einmal zu beschreiben, ist extrem mühselig, da die richtige Darstellung und Eingabe nur dann funktionieren wird, wenn sowohl der eingestellte Terminal-Typ im Linux paßt (TERM=xxx im Environment) als auch der im verwendeten SSH-Client, wenn das nicht wirklich nur ein reiner CLI-Client ist (wie "ssh" aus dem OpenSSH-Paket), der dann wieder auf den lokalen Terminal-Typ zurückgreifen würde.

Am Ende kommt dann noch die Verwendung der richtigen Code-Page dazu (u.a. wg. UTF vs. ISO vs. ANSI), wenn es um Darstellung und Eingabe deutscher Umlaute geht. Das "Springen" um zwei Zeichen bei Eingabe eines Umlauts unter einer UTF-8-Console hat sicherlich jeder schon mal erlebt (dann hilft beim Löschen auch das einfache Backspace nichts mehr), denn die deutschen Umlaute liegen ja - günstig zu erreichen beim Vertippen - in direkter Nachbarschaft zu so manchem Sonderzeichen, was man bei der Befehlseingabe in einer CLI-Shell braucht.
 
Vielen Dank für Deine ausführliche Antwort.

Ich denke aber, dass mein Problem nichts mit dem verwendeten Terminal, SSH-Client oder anderen lokalen Einstellungen zu tun hat. Ich verwende den CLI ssh Client im Terminal Programm von MacOS (TERM=xterm), manchmal auch Putty oder andere Emulationen.

Ich habe mehrer Boxen, alle mit Freetz und u. a. dropbear und bash
Auf alle Boxen kann ich mich von der selben lokalen Terminalemuation mit ssh verbinden.
Bei allen Boxen habe ich ein history, kann Autocomplete und die anderen oben beschrieben Funktionen verwenden, nur bei einer nicht.

Dass das history file versteckt ist (mit einem . am Anfang) weiß ich. Deswegen verwende ich ls -la im Homeverzeichnis.
Bei allen Boxen sehe ich dann u. a. eine Datei .bash_history, nur bei dieser einen eben nicht. Da die history im Homeverzeichnis des root-Users liegt, sollte dieser dort auch Schreibzugriff haben.

Aufgrund dieser Beobachtungen gehe ich davon aus, dass ich an dieser bestimmten Box noch was konfigurieren muss (und nicht lokal am Clientrechner).
Gegoogelt und im Forum gesucht habe ich natürlich schon, aber leider nichts hilfreiches gefunden.
Falls ich noch Informationen beitragen kann, bitte Bescheid sagen.
 
Ich schrieb ja bereits, daß auch die lokalen Einstellungen auf der Box (denn da liegt ja die TERM-Variable im Environment) passen müssen. Ob der verwendete Benutzer tatsächlich das richtige Home-Verzeichnis eingestellt hat, läßt sich ja ebenfalls überprüfen. Die Tatsache, DASS er eines hat, sagt auch noch nichts darüber aus, ob/dass er da auch tatsächlich Schreibzugriff hat.

------------------------------------------------------------------------------------------------

Ansonsten drängt sich mir jetzt ein ganz anderer Verdacht auf ... immerhin sind all diese Funktionen auch "abschaltbar" beim Build der Bash. Wer eine solche mit "FREETZ_PACKAGE_BASH_MINIMAL" oder ohne "FREETZ_PACKAGE_BASH_READLINE" bauen läßt, der muß sich über das Fehlen dieser Funktionen dann auch nicht wirklich wundern. Aber das wirst Du ja bereits geprüft haben ... angesichts mehrerer Boxen wäre es ja auch einigermaßen überraschend, wenn nur die Bash für diese eine Box ohne diese Features erstellt wurde.

Um welche Modelle es sich jeweils handelt, ist aber bis jetzt auch nicht geklärt und ggf. ist diese eine, spezielle FRITZ!Box ja doch ein anderes Modell und das Freetz-Image dafür wurde - trotz der bisher gesammelten Erfahrungen - lediglich am Ende mit einer "falschen" .config-Datei erstellt? Dann würde jedenfalls ein Herumkonfigurieren an der FRITZ!Box auch nichts mehr bringen ...
 
Moin


Als ich freetz nutzte, hab ich unter "busybox" die "ash" so konfiguriert, dass diese eine ".ash_history" nutzte.
Die wird als Loginshell genutzt und trägt auch nicht so auf.
...der Speicher einer 7113 oder 7360SL war/ist doch ziemlich begrenzt.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.