Eu tenho usado o comando:
reset
para limpar meu terminal. Embora eu tenha certeza de que não é isso que eu deveria estar fazendo. Redefinir, como o nome sugere, redefine todo o terminal (altera muitas coisas). Aqui está o que eu quero:
Basicamente, eu quero usar o comando clear
. No entanto, se você limpar e depois rolar para cima, ainda receberá toneladas de material de antes. Em geral, isso não é um problema, mas estou vendo logs brutos longos e quero ter certeza de que estou apenas visualizando o mais recente. Eu sei que eu poderia usar more
ou algo parecido, mas eu prefiro essa abordagem.
clear && printf '\033[3J'
. Sem redefinição de terminal, apenas limpando o texto na tela. Veja esta postagem: superuser.com/questions/555554/…Respostas:
O buffer de rolagem não é um recurso do bash, mas do programa do terminal. Você não disse qual terminal está usando.
Se você estiver usando o xterm, poderá limpar as linhas salvas ecoando ESC-c no terminal.
Isso pode ou não funcionar em qualquer programa de terminal que você esteja usando.
No Linux, isso provavelmente funcionará:
no FreeBSD echo não aceita -e para que você possa tentar:
fonte
echo ESC-c
?ESC
. Leia os artigos "Caractere de escape" e "Caractere de controle" na Wikipedia -ESC
geralmente é usado para indicar o caractere ASCII 0x1B, que você pode inserir pressionando^V
seguido deEsc
.\0143
invés dec
?Use a ferramenta certa para cada trabalho:
Use
clear
para limpar a janela do terminal.Use
reset
para redefinir seu terminal quando ele estiver bagunçado pelas seqüências de controle.Use
cat
somente quando desejar transmitir muitos dados de um lugar para outro sem interrupção .Use um programa de pager como
less
oumost
para visualizar as páginas de saída.Use
tail -f /var/log/foo.log /var/log/bar.log
para assistir a vários arquivos de log diferentes.tail
, a-F
opção é melhor porque pode continuar acompanhando o arquivo mesmo quando um novo arquivo aparecer em seu lugar, como é comum nos arquivos de log.fonte
cat
ler qualquer coisa, mas para arquivos pequenos, na verdade, faz muito sentido paracat
elas, em vez de usarless
. Depois que o arquivo for despejado no terminal, você poderá olhar / rolar de volta para o arquivo quantas vezes quiser, em vez de precisar descartarless
antes de fazer qualquer outra coisa.Apenas para fornecer a resposta técnica:
reset
reinicialize o terminal, como se tivesse sido reaberto do zero.stty sane
fará a mesma funcionalidade (sem a redefinição). É o mesmo que^L
(Ctrl + L) (irrc) etput clear
. Apesar do que o pôster anterior (@grawity) disse,clear
não gera muitas novas linhas. Ele envia aTERM
redefinição como definida emterminfo
outermcap
, para mim, usandognome-terminal
(xterm) é igual ao comandoperl -e'print "\33[H\33[2J"'
.Se você quiser apenas limpar o buffer - em comparação com a reposição de todo o terminal, tente isso
tput reset
. Ele deve ser muito rápido, e fazer o que quiser. (Embora você realmente deva ler arquivos comless
)tput reset
, envia o valor terminfo para redefinir - no meu terminal (xterm) é o mesmo queperl -e'print "\33c"'
fonte
clear
produz um monte de novas linhas. Eu apenas forneci um comando como uma alternativa a ele, porqueclear
apenas limpa a tela, mas não o buffer de rolagem. (Não em PuTTY ou Konsole, pelo menos.)clear
como nome de sinal para um sinal e outro que mapeiareset
para um sinal - e somente o último resulta em um buffer de rolagem de retorno limpo.reset
envia o último, acima fazendo outras coisas divertidas.clear
que não redefinir sua scrollback. (ESC c
trabalha emxterm
e baseado em VTE, mas não em PuTTY e Konsole.) Ele também não quer usarreset
, pois redefine mais do que deseja. (Eu não sei qual terminal que ele usa - mas compararstty
antes e após a reposição.)tput reset
, que envia o sinal de redefinição para o terminal - sem realmente reinicializar o termo. "reset - Em vez de colocar as strings de inicialização, as strings de reset do terminal serão emitidas se presentes (rs1, rs2, rs3, rf). Se as strings de reset não estiverem presentes, mas as strings de inicialização estiverem, as strings de inicialização serão exibidas. Caso contrário, redefinir atua de forma idêntica ao init. " Aqui, redefinimos as strings para que as strings init não sejam executadas.tput reset
é bastante lento (o mesmo quereset
).printf '\033\143'
é muito mais rápido. Existe alguma razão para o método printf ser perigoso / ruim?Outro terminal é o iTerm2, e possui uma sequência de escape um tanto estranha usada para limpar a rolagem. Em um shell Bash, eu uso algo como:
em um script. Então, basicamente, é um caractere ESC, seguido por "
]50;ClearScrollback
" e, em seguida, um caractere BEL.fonte
clear
ereset
não. Esta não é realmente a melhor resposta para a pergunta, no entanto. Acho que a resposta certa para esse caso é o que quer que as ofertas de aplicação de terminais, como o comando-K em iTerm2, controle-K em outros, etc.Provavelmente, a melhor maneira de limpar tudo é usar a função do terminal:
Dessa forma, os dois buffers são limpos e o estado do terminal é redefinido exatamente para o que estava na inicialização (o que pode ou não ser o mesmo que usar
reset
).fonte
gnome-terminal
no momento) ... Veja "Ferramentas" e outros menus.+F
é para "seguir", semelhante a,tail -f
mas permite que você role novamente.Todos os terminais baseados em vte (GNOME, Xfce, Roxterm) e KDE Konsole permitem que você use a roda de rolagem para rolar para dentro
less
. Acho isso bastante conveniente.Alternativa para
clear
:fonte
No Mac OS X Terminal.app:
Ver -> Limpar rolagem (ou command- K)
fonte
Não é um problema "Bash". Depende do terminal que você usa. Por exemplo, eu uso "iterm2" com o macbook para conectar uma máquina Linux remota. Você pode usar "command + K" para limpar o buffer ou, no menu, escolha "Edit" -> "Clear Buffer".
fonte
Para limpar a tela do console e o buffer de rolagem ao executar o PuTTY, isso funciona para mim:
Na verdade, são 2 sequências "Esc" que agem independentemente ... elas podem ser usadas em qualquer ordem:
O uso
echo -en "\ec"
que redefine o terminal pode alterar algumas de suas outras configurações. Em vez de "Redefinir", você pode fazer o seguinte:Você pode colocar isso em um script de shell e funciona muito bem.
Caso haja algumas dependências do sistema:
Estou usando o PuTTY Connection Manager (versão 0.7.1 BETA (build 136)), com o PuTTY (versão 0.60).
Digitando:
relatórios:
fonte
Para limpar o buffer de tela do hardware TTY no FreeBSD, você pode usar "vidcontrol - utilitário de configuração e controle do console do sistema" com o parâmetro -C Limpe o buffer de histórico.
vidcontrol -C
o comando apagará todo o buffer de tela do console atual, acima do que você vê no momento. Você pode querer "limpar" primeiro, ou não - depende de você.
fonte
Se você quiser ter certeza de que está vendo as entradas mais recentes em um arquivo de log, provavelmente é melhor usar cauda em vez de
clear
/cat
que eu assumo que você esteja usando.fonte
Hummm. Acho que se você estiver executando o konsole, estará sem sorte. Costumava ser apenas "limpar o scrollback". O Konsole não permitirá mais que você faça isso. Você também deve redefini-lo, para matar qualquer programa em execução. Acho que preciso de um novo programa de terminal ......
fonte