Parece que você adicionou isso ao final do arquivo .bashrc
em seu diretório pessoal:
export PS1="3[0;33m\h:\W \u\$ \e[m"
Você deve usar isso:
export PS1="\[3[0;33m\]\h:\W \u\$ \[\e[m\]"
Ou seja, envolve sequências de escape que informam ao terminal como exibir texto (neste caso, que realiza a colorização) com \[
e \]
. Este informa ao shell Bash que eles não devem ser contados quando o número de caracteres visíveis você entrou é determinado. (Veja também esta questão e esse .
Raramente é útil exportar PS1
, a propósito. Todo shell Bash interativo recém-executado que deve usar o seu prompt irá ler .bashrc
e definir o prompt para si mesmo. Portanto, eu recomendo omitir export
e apenas usar esta linha:
PS1="\[3[0;33m\]\h:\W \u\$ \[\e[m\]"
Embora essa tenha sido a única parte do seu .bashrc
em que notei um problema, convém comparar o arquivo com o "original":
diff /etc/skel/.bashrc ~/.bashrc
Isso mostra as alterações em comparação com o arquivo .bashrc
que seria criado para um novo usuário em seu sistema. Geralmente que tem o efeito de mostrar apenas suas próprias alterações, mas às vezes /etc/skel/.bashrc
muda entre versões do Ubuntu, então se sua conta de usuário foi criada antes de uma atualização, então pode haver outras mudanças. Note que nem tudo que isso mostra é um erro! Mas essas são as partes que eu recomendo que você inspecione.
(Você pode incluir a saída desse comando diff
em sua pergunta se não tiver certeza de como interpretá-lo ou se uma determinada linha alterada contiver algo que deveria ser escrito de forma diferente.)
Finalmente, embora eu suspeite que isso resolva completamente o seu problema, eu devo mencionar que normalmente o comportamento quando você pressiona Enter não é realmente afetado por isso . Mais comumente, omitir \[
e \]
apenas faz com que o shell não atinja as linhas >>, de modo que, se você digitar algo maior que a largura do terminal, ele volte ao início de a mesma linha.