Como realmente limpar o terminal?

315

Eu posso emitir o comando clear ou pressionar Ctrl + L para limpar o terminal atual do Ubuntu, mas isso apenas desloca a saída anterior para cima e se você usar o scroll do mouse ou as chaves PgUP e PgDown é difícil distinguir onde a saída do comando anterior termina e a saída do comando atual começa.

Existe uma maneira de realmente limpar o terminal para que eu não veja os resultados dos comandos anteriores?

    
por Stann 06.02.2011 / 22:51

11 respostas

382

Sim, o comando que você está procurando é

reset

Em contraste com clear , ou Ctrl + L , reset irá, na verdade, reinicializar completamente o terminal , em vez de apenas limpar a tela. No entanto, ele não irá re-instanciar o shell (bash). Isso significa que o estado de bash é o mesmo de antes, como se você estivesse apenas limpando a tela.

Como @Wallacoloo menciona nos comentários, esse comando deve fazer a mesma coisa mais rapidamente:

tput reset

Das outras respostas:

  • Você pode definir um atalho de teclado como reset do terminal, como explicado por towolf .

  • Se você está executando o Kubuntu , e seu terminal é o Konsole, você precisa ir para Editar → Limpar histórico , já que reset não funcionam da mesma maneira, como o UncleZeiv anota .

por Stefano Palazzo 06.02.2011 / 22:55
69

Eu estava procurando por isso há algum tempo e encontrei um gênio que postou isso:

clear && printf '\e[3J'

Limpa todo o buffer de tela, muito limpo. Funciona no OSX e acredita que funciona bem na maioria dos terminais * nix.

Espero que alguém ache isso tão útil quanto eu fiz:)

    
por Goran 29.05.2014 / 07:51
37

Você também pode atribuir um atalho no gnome-terminal indo em Editar → Atalhos de teclado . Eu uso Shift + Ctrl + Alt + C .

    
por towolf 08.02.2011 / 23:46
15

execute este comando:

reset

Isso tem o mesmo efeito que o lançamento de um novo terminal.

    
por dv3500ea 06.02.2011 / 22:55
8

Cruzando minha resposta de stackoverflow .

Use o seguinte comando para fazer uma tela clara em vez de simplesmente adicionar novas linhas ...

printf "3c"

sim, isso é um 'printf' no prompt do bash.

Você provavelmente desejará definir um alias embora ...

alias cls='printf "3c"'

Explicação

3 == \x1B == 27 == ESC

Então, isso se torna <ESC>c , que é o código de escape do VT100 para redefinir o terminal. Aqui , há mais algumas informações sobre códigos de escape de terminal.

Editar

Aqui estão algumas outras maneiras de fazer isso ...

printf "\ec" #\e is ESC in bash
echo -en "\ec" #thanks @Jonathon Reinhart.
# -e    Enable interpretation of of backslash escapes
# -n    Do not output a new line

KDE

O acima não funciona no console do KDE (chamado Konsole), mas há esperança! Use a seguinte sequência de comandos para limpar a tela e o buffer de rolagem para trás ...

clear && echo -en "\e[3J"

Ou talvez use o seguinte alias no KDE ...

alias cls='clear && echo -en "\e[3J"'

Eu recebi o comando de limpeza de rolagem para trás de aqui .

    
por Sandeep Datta 13.10.2015 / 10:08
5

Bem, isso realmente depende, se você estiver usando Konsole , por exemplo, mesmo reset não impede que você passe da primeira linha. Nesse caso, você tem que usar algum recurso do terminal em particular que você está usando. Por Konsole , é Edit > Clear History .

    
por UncleZeiv 07.02.2011 / 17:27
4

Meu favorito é printf "\ec" . Isso também pode ser printf "3c" ou printf "\x1bc" . Essa é uma seqüência de escape ansiosa que milagrosamente limpa a tela e o buffer para a saída do terminal (para a maioria dos terminais padrão nos quais trabalhei parece - eu sei que funciona como gnome-terminal, terminator, xterm, etc. no Ubuntu-like Linuxes)

Eu sei que isso funciona no Linux Mint e no Ubuntu 14.04, então eu não sei porque as pessoas estão adicionando e prepedendo coisas como clear && echo -ne "3c . printf "\ec" sempre funcionou para mim.

Além disso, no meu .bashrc , tenho uma ligação assim:

bind -x '"\C-t": printf "\ec"';

Agora eu pressiono ctrl t o tempo todo.

    
por dylnmc 01.05.2015 / 11:32
3

Eu encontrei o seguinte para ser bem sucedido com o Kubuntu:

alias clc="echo -en '3c3[3J'"

Você pode usar cls para manter a tradição do Windows, use a versão do Matlab clc ou uma das suas próprias. Boa sorte!

    
por Charles Bell 30.04.2015 / 00:26
2

Como alternativa a reset , você pode fazer echo -e "3c" ou ter em .bashrc algo como alias cls="echo -ne '3c'"

O UNIX / Linux StackExchange, tem uma discussão sobre isso: Como limpar completamente o terminal ? (unix.stackexchange.com) , assim como SuperUser: Limpar terminal usando atalho de teclado (superuser.com) .

    
por Hibou57 09.07.2014 / 10:55
2

Outra alternativa à resposta do @Hibou57:

# The Octal Way
alias clear="echo -e '3c\c'"

OR

# The Hex Way
alias clear="echo -e '\x1b\c'"

Basicamente, isso terá exatamente o mesmo efeito, imprimirá o caractere ^[ (que limpa seu terminal) e não exibirá a nova linha à direita.

    
por TwystO 30.10.2014 / 22:26
1

Se você estiver usando o yakuake ou o Konsole, tente Ctrl + Deslocamento + K .

Fonte: link

    
por Wojciech Sidor 06.10.2015 / 18:21