Questão Como realmente limpar o terminal?


Eu posso emitir o clear comando ou pressione Ctrl + eu 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 PgUP e PgDown chaves é 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 limpe o terminal para não ver os resultados do comando anterior?


322
2018-02-06 21:51


origem


Pressione Ctrl + L duas vezes e você fica em branco! - Pandya


Respostas:


Sim, o comando que você está procurando é

reset

Em contraste com clearou Ctrl+eu, reset vai realmente 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 bash Estado é 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 para reset o terminal, como explicado por towolf.

  • Se você está correndo Kubuntu, e seu terminal é o Konsole, você precisa ir para Editar → Limpar histórico, Desde a reset não funciona da mesma maneira, como notas do UncleZeiv.


392
2018-02-06 21:55



Provavelmente não importa para a maioria dos usuários, mas o comportamento de reset depende do terminal. - cthom06
Pessoalmente eu não me importo que algo é deixado "para cima" ao longo do scroller quando eu bati ^L. Eu não vejo isso (é o que eu quero!), Eu não sinto, e se de repente eu necessidade para restaurar o que estava lá - não há problema. reset Em contraste, é muito mais difícil ferramenta - eu vou usá-lo quando algo deu errado com o terminal - como, quando estranhas seqüências de escape acidentalmente arruinou a tela completamente. - ulidtko
@ulidtko: importa quando você executa sessões consecutivas de programas com toneladas de saída. Se você rolar para trás, é fácil ficar confuso sobre qual execução imprimiu algo. Eu sei perfeitamente que soluções mais sofisticadas podem ser usadas nesses casos, mas, mesmo assim, é um cenário que acontece com bastante frequência em sessões de depuração rápidas e sujas. - UncleZeiv
As âncoras prontas coloridas do @UncleZeiv geralmente me ajudam a encontrar rapidamente o local necessário. Embora tudo isso seja apenas um hábito. - ulidtko
Há também tput reset que visivelmente faz a mesma coisa, mas completa instantaneamente (enquanto reset pode levar cerca de 2 segundos antes que o prompt reapareça). - Ponkadoodle


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 OS X e acredita que funciona bem na maioria dos terminais * nix.

Para curioso, esta parte '\e[3J' é um comando de escape de terminal.


76
2018-05-29 05:51



Hmm, funciona no xterm, Konsole e Linux VT, mas não no gnome-terminal ... - Ruslan
Obrigado, isso é super útil! O que printf '\e[3J' significar? Como isso limpa o buffer? - Filip Spiridonov
Ótimo achado! E para aqueles que querem a redefinição de estilo Bash no mac: nano ~/.bashrc e adicione alias reset="clear && printf '\e[3J'" - Michael Deal
cuidado aliasing reset - faz mais do que apenas limpar o terminal. por exemplo, se você imprimir acidentalmente um arquivo binário com lixo aleatório que corrompa o terminal (por exemplo, desativa o eco dos caracteres digitados), reset geralmente pode consertar isso. Claro aliasing é bom, desde que você saiba como \override um comando shadow-alias. - RubyTuesdayDONO
Esta é a única resposta que funciona para limpar a rolagem do Putty ao acessar alguns SSH via Winders. - dhaupin


Você também pode atribuir um atalho no gnome-terminal, indo para Editar → Atalhos de teclado. eu usoMudança+Ctrl+Alt+C.

reset and clear shortcut


37
2018-02-08 22:46



+1. Eu sempre tenho o Menubar escondido; Então, mesmo depois de anos e anos usando o gnome, nunca pensei em procurar por isso. Obrigado :-) - Stefano Palazzo♦
“Reset” não faz nada para mim e “Reset and Clear” limpa tudo, mas não exibe novamente o prompt. Nenhuma dessas entradas de menu se comporta como o comando “reset” de um terminal. - Hibou57
Como disse @ Hibou57, meu atalho de teclado para "Reset" não parece fazer nada. Esta funcionalidade está quebrada em 14.04? - Michael Martin-Smucker
“Esta funcionalidade está quebrada em 14.04?”: Isto é o mesmo com 12.04. - Hibou57
@ Hibou57 "Reset and Clear" não é esperado para re-exibir o prompt, mas se você pressionar Enter depois, ele deve exibir novamente o prompt. Isso funciona para você? - Don Hatch


execute este comando:

reset

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


15
2018-02-06 21:55



Ao usar putty, depois de correr reset, Eu ainda posso rolar para cima e ver as coisas anteriores. Isso é um problema com PuTTY em vez de reset? - Svish
@svish - isso é apenas uma questão ou decisão de implementação. - belacqua
@jgbelacqua, Deal :) - Svish


Cross postando minha resposta de stackoverflow.

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

printf "\033c"

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

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

alias cls='printf "\033c"'

Explicação

\033 == \x1B == 27 == ESC

Então isso se torna <ESC>c que é o código de escape 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 seqüê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 tenho o comando de limpeza de rolagem para trás Aqui.


8
2017-10-13 08:08





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


5
2018-02-07 16:27





Meu favorito é printf "\ec". Isso também pode ser printf "\033c" 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 Ubuntu 14.04, então eu não sei porque as pessoas estão adicionando e prepedendo coisas como clear && echo -ne "\033c. printf "\ec" sempre trabalhou para mim.

Além disso, na minha .bashrc Eu tenho uma ligação como esta:

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

Agora eu pressiono ctrlt o tempo todo.


5
2018-05-01 09:32



Você sabe como um mapeamento pode ser criado usando a tecla do Windows? Este snippet é realmente ótimo, funciona exatamente como o Command-K no mac. Obrigado. - Niloct
@Nococt você pode ver se o terminal suporta com xev (apenas digite xev em um terminal dentro de uma sessão x). Pelo que pude perceber, o urxvt não suporta isso; Enquanto eu não tentei em um tty, estou confiante de que não seria suportado. Eu também duvido que o xterm ou o gnome-terminal suportaria isso. É complicado com ansi-escapes. Felicidades e desculpe pela resposta tardia. - dylnmc
Tudo bem, @dylnmc, eu agradeço. Obrigado pelo comentário. - Niloct


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

alias clc="echo -en '\033c\033[3J'"

Você pode usar cls para manter a tradição do Windows, use a versão Matlab clcou um dos seus. Boa sorte!


3
2018-04-29 22:26





Alternativamente para reset, você pode fazer echo -e "\033c", ou tem em seu .bashrc, algo como alias cls="echo -ne '\033c'"

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


2
2017-07-09 08:55