Algo que notei no Ubuntu por um longo tempo que foi frustrante para mim é que, quando estou digitando um comando na linha de comando que fica mais longo (mais largo) que a largura do terminal, em vez de agrupar em uma nova linha, ele volta para coluna 1 na mesma linha e começa a sobrescrever o início da minha linha de comando. (Na verdade, não substitui o comando real, mas visualmente, substitui o texto que foi exibido).
É difícil de explicar sem vê-lo, mas digamos que meu terminal tenha 20 caracteres de largura (o meu é mais parecido com 120 caracteres - mas por uma questão de exemplo), e quero repetir o alfabeto inglês. O que eu digito é este:
echo abcdefghijklmnopqrstuvwxyz
Mas a aparência do meu terminal antes de eu pressionar a tecla é:
pqrstuvwxyzghijklmno
Quando eu apertei enter, ele ecoa
abcdefghijklmnopqrstuvwxyz
então eu sei que o comando foi recebido corretamente. Apenas enrolou minha digitação após o "o" e recomeçou na mesma linha.
O que eu esperava que acontecesse, se eu digitasse este comando em um terminal com apenas 20 caracteres de largura, seria o seguinte:
echo abcdefghijklmno
pqrstuvwxyz
Background: Estou usando o bash como meu shell e tenho esta linha no meu ~ / .bashrc:
set -o vi
para poder navegar na linha de comandos com os comandos VI. Atualmente, estou usando o servidor Ubuntu 10.10 e me conectando ao servidor com o Putty.
Em qualquer outro ambiente em que trabalhei, se eu digitar uma linha de comando longa, ela adicionará uma nova linha abaixo da linha na qual estou trabalhando quando meu comando ultrapassa a largura do terminal e, quando eu continuar digitando, posso ver meu comando 2 linhas diferentes. Mas enquanto me lembro de usar o Ubuntu, meus comandos longos ocupam apenas 1 linha.
Isso também acontece quando estou retornando aos comandos anteriores da história (pressione Esc, depois 'K' para retornar aos comandos anteriores) - quando chego a um comando anterior que era maior que a largura do terminal, a linha de comando fica mutilado e não posso dizer onde estou no comando.
A única solução alternativa que encontrei para ver todo o comando longo é pressionar "Esc-V", que abre o comando atual em um editor de VI.
Acho que não tenho nada de estranho no meu arquivo .bashrc. Eu comentei a linha "set -o vi" e ainda tinha o problema.
Fiz o download de uma nova cópia do Putty e não fiz nenhuma alteração na configuração - apenas digitei o nome do host para me conectar e ainda tenho o problema, por isso não acho que haja nada com o Putty (a menos que precise faça algumas alterações na configuração)
Alguém já teve esse problema e alguém pode pensar em como corrigi-lo?
Editar
Era o meu arquivo .bashrc. Copiei o mesmo perfil de máquina para máquina e usei caracteres especiais no meu $ PS1 que, de alguma forma, estão jogando fora. Agora estou aderindo às variáveis padrão do bash para o meu $ PS1.
Obrigado a @ ændrük pela dica sobre o .bashrc!
... Finalizar edição ...
tput smam
/etc/skel/.bashrc
. Lembre-se de que você precisará se reconectar para que as alterações tenham efeito e mantenha um backup próprio .bashrc.