Qualcosa che ho notato in Ubuntu da molto tempo che mi ha frustrato è quando sto digitando un comando sulla riga di comando che diventa più lungo (più largo) della larghezza del terminale, invece di passare a una nuova riga, torna a colonna 1 sulla stessa riga e inizia a sovrascrivere l'inizio della mia riga di comando. (In realtà non sovrascrive il comando effettivo, ma visivamente, sta sovrascrivendo il testo visualizzato).
È difficile da spiegare senza vederlo, ma supponiamo che il mio terminale abbia una larghezza di 20 caratteri (il mio è più simile a 120 caratteri - ma a titolo di esempio) e voglio fare eco all'alfabeto inglese. Quello che scrivo è questo:
echo abcdefghijklmnopqrstuvwxyz
Ma come appare il mio terminale prima di premere il tasto è:
pqrstuvwxyzghijklmno
Quando premo invio, echo
abcdefghijklmnopqrstuvwxyz
quindi so che il comando è stato ricevuto correttamente. Ha appena terminato la mia digitazione dopo la "o" e ricominciato sulla stessa riga.
Quello che mi sarei aspettato che accadesse, se avessi digitato questo comando su un terminale di soli 20 caratteri sarebbe questo:
echo abcdefghijklmno
pqrstuvwxyz
Background: sto usando bash come shell e ho questa riga nel mio ~ / .bashrc:
set -o vi
per poter navigare nella riga di comando con i comandi VI. Attualmente sto usando il server Ubuntu 10.10 e mi sto collegando al server con Putty.
In qualsiasi altro ambiente in cui ho lavorato, se digito una lunga riga di comando, verrà aggiunta una nuova riga sotto la riga su cui sto lavorando quando il mio comando supera la larghezza del terminale e quando continuo a digitare posso vedere il mio comando su 2 linee diverse. Ma per tutto il tempo che ricordo di aver usato Ubuntu, i miei comandi lunghi occupano solo 1 riga.
Questo succede anche quando torno ai comandi precedenti nella cronologia (premo Esc, quindi "K" per tornare ai comandi precedenti) - quando arrivo a un comando precedente che era più lungo della larghezza del terminale, la riga di comando ottiene distrutto e non so dire dove mi trovo nel comando.
L'unica soluzione che ho trovato per vedere l'intero comando lungo è premere "Esc-V", che apre il comando corrente in un editor VI.
Non credo di avere qualcosa di strano nel mio file .bashrc. Ho commentato la riga "set -o vi" e ho ancora avuto il problema.
Ho scaricato una nuova copia di Putty e non ho apportato alcuna modifica alla configurazione: ho appena digitato il mio nome host per connettermi e ho ancora il problema, quindi non penso che sia qualcosa con Putty (a meno che non sia necessario apportare alcune modifiche alla configurazione)
Qualcun altro ha avuto questo problema e qualcuno può pensare a come risolverlo?
modificare
Era il mio file .bashrc. Ho copiato lo stesso profilo da una macchina all'altra e ho usato caratteri speciali nel mio $ PS1 che in qualche modo lo stanno gettando via. Ora sto rispettando le variabili bash standard per il mio $ PS1.
Grazie a @ ændrük per il suggerimento su .bashrc!
... Fine modifica ...
tput smam
/etc/skel/.bashrc
. Tieni presente che dovrai riconnetterti per rendere effettive le modifiche e assicurati di mantenere un backup del tuo .bashrc.