Etwas, das ich in Ubuntu seit langem bemerkt habe und das mich frustriert hat, ist, wenn ich einen Befehl in der Befehlszeile eingebe, der länger (breiter) als die Terminalbreite ist, anstatt in eine neue Zeile zu brechen Spalte 1 in derselben Zeile und überschreibt den Anfang meiner Befehlszeile. (Der eigentliche Befehl wird nicht überschrieben, aber der angezeigte Text wird visuell überschrieben.)
Es ist schwer zu erklären, ohne es zu sehen, aber nehmen wir an, mein Terminal war 20 Zeichen breit (meins ist mehr wie 120 Zeichen - nur zum Beispiel), und ich möchte das englische Alphabet wiederholen. Was ich tippe ist das:
echo abcdefghijklmnopqrstuvwxyz
Aber wie mein Terminal aussieht, bevor ich die Taste drücke, ist:
pqrstuvwxyzghijklmno
Wenn ich die Eingabetaste drücke, ertönt ein Echo
abcdefghijklmnopqrstuvwxyz
Ich weiß also, dass der Befehl ordnungsgemäß empfangen wurde. Es hat meine Eingabe nach dem "o" einfach umbrochen und in derselben Zeile von vorne begonnen.
Was ich erwarten würde, wenn ich diesen Befehl auf einem Terminal mit einer Breite von nur 20 Zeichen eingeben würde, wäre dies:
echo abcdefghijklmno
pqrstuvwxyz
Hintergrund: Ich verwende bash als Shell und habe diese Zeile in meinem ~ / .bashrc:
set -o vi
in der Befehlszeile mit VI-Befehlen navigieren zu können. Ich verwende derzeit Ubuntu 10.10 Server und verbinde mich mit dem Server mit Putty.
In jeder anderen Umgebung, in der ich gearbeitet habe, wird, wenn ich eine lange Befehlszeile eingebe, eine neue Zeile unter der Zeile eingefügt, in der ich gerade arbeite, wenn mein Befehl länger als die Terminalbreite ist und wenn ich weiter tippe, kann ich meinen Befehl sehen 2 verschiedene Zeilen. Aber solange ich mich erinnern kann, Ubuntu verwendet zu haben, belegen meine langen Befehle nur 1 Zeile.
Dies passiert auch, wenn ich zu vorherigen Befehlen im Verlauf zurückkehre (ich drücke Esc, dann 'K', um zu vorherigen Befehlen zurückzukehren) - wenn ich zu einem vorherigen Befehl komme, der länger als die Terminalbreite war, wird die Befehlszeile aufgerufen verstümmelt und ich kann nicht sagen, wo ich im Befehl bin.
Die einzige Abhilfe, die ich gefunden habe, um den gesamten langen Befehl zu sehen, ist das Drücken von "Esc-V", wodurch der aktuelle Befehl in einem VI-Editor geöffnet wird.
Ich glaube nicht, dass ich etwas Seltsames in meiner .bashrc-Datei habe. Ich habe die Zeile "set -o vi" auskommentiert und hatte immer noch das Problem.
Ich habe eine neue Version von Putty heruntergeladen und keine Änderungen an der Konfiguration vorgenommen. Ich habe nur meinen Hostnamen eingegeben, um eine Verbindung herzustellen, und ich habe immer noch das Problem einige Konfigurationsänderungen vornehmen)
Hat jemand anderes dieses Problem gehabt und kann sich jemand vorstellen, wie man es behebt?
Bearbeiten
Es war meine .bashrc-Datei. Ich habe das gleiche Profil von Computer zu Computer kopiert und Sonderzeichen in meiner PS1 verwendet, die es irgendwie abschrecken. Ich halte mich jetzt an die Standard-Bash-Variablen für meine PS1.
Danke an @ ændrük für den Tipp zum .bashrc!
... Bearbeiten beenden ...
/etc/skel/.bashrc
. Denken Sie daran, dass Sie erneut eine Verbindung herstellen müssen, damit die Änderungen wirksam werden, und stellen Sie sicher, dass Sie eine Sicherungskopie Ihrer eigenen .bashrc-Datei erstellen.