Gostaria de emitir um comando de um script bash para limpar o terminal a partir do qual ele está sendo executado:
- eu não queropara limpar o histórico do bash (history -c)
- eu não queropara emitir o comando clear (que move o terminal para o último prompt, dando a impressão de que o terminal foi limpo, mas a saída anterior permanece visível se você rolar para cima)
- Eu queroremover completamente todas as saídas anteriores do meu terminal e limpá-lo como se eu estivesse abrindo um novo
Obrigado.
Responder1
Tentar printf '\033c'
. Isso envia uma sequência de escape para o terminal, geralmente limpando todo o conteúdo, incluindo o buffer de rolagem.
Responder2
clear
Limpa a tela do terminal. Acho que você está acessando o Terminal a partir de uma interface gráfica e, portanto, está usando uma interface para o console, não o console real. Esta interface "salva" automaticamente seu histórico de saída (o que você vê ao rolar para cima). Em um console real (sem interface gráfica), você não pode simplesmente rolar para cima. Neste caso, o terminal é apenas um programa que mantém registros da saída do console.
Se você abrir uma nova janela do Terminal e fechar a atual, você começará com uma nova janela. (Você também pode reinicializar manualmente acessando Terminal -> Reinicializar e limpar)
Terminal em execução no ambiente de trabalho:
Console sem ambiente de desktop:
Responder3
Verificaresta postagem SU referenciando os comandos Bash reset e clear
Além da reset
resposta também descreve mais uma maneira de limpar o terminal.
Responder4
Uma opção pode ser ver se o terminal pode ser iniciado com a rolagem desabilitada. Por exemplo, xterm -sl 0
iniciará um xterm com 0 saveLines. Veja o arquivo man:
-sl number
This option specifies the number of lines to save that have
been scrolled off the top of the screen. This corresponds to
the saveLines resource. The default is 64.