Limpar a saída do terminal apenas do último comando


13

Em vez de rolar centenas de linhas de saída para ver o histórico de comandos anterior, a saída do último comando pode ser limpa? Por exemplo, após a execução ls, limpe sua saída porque você não precisa mais dela.

EDITAR:

Este não é o seu habitual clearou ctrl+Loperação. A idéia é rolar para trás no histórico procurando a saída de um comando anterior, mas sem ter que rolar além de uma carga de ls, ou cat, ou sudo apt-get installsaída, a menos que eu realmente queira. Pode ser algo como isto:

cat fileIWantToRemember
ls directoryIWantToForget
# some command that wipes the output of ls
# scroll back to see the output of cat immediately

Você deseja limpar a saída ou remover o comando do seu histórico de comandos? Se você deseja modificar seu histórico de comandos, talvez este tópico aborde o que você está procurando?
ernie 24/09

O terminal apenas exibe um fluxo de texto e armazena alguns em seu próprio buffer interno. Não tem como saber ou discriminar entre a saída do comando. O terminal rxvt-unicode possui um interpretador perl que pode implementar algo parecido com isto. Mas até onde eu sei, não está feito.
Keith

Há muito tempo, usei um emulador de terminal no Mac OS X que tinha esse recurso, mas não me lembro mais como ele era chamado. Não era grátis, no entanto. No entanto, ao fazer uma rápida pesquisa no Google, encontrei o finalterm.org , que parece estar tentando implementar esse recurso. No entanto, "O termo final está em desenvolvimento pesado e não é estável nem está completo!", Então eu não tentei. Parece interessante, no entanto. A pesquisa do Google, para o que vale a pena, foiterminal emulator output folding
rici

O Termo Final é desenvolvido o suficiente para dobrar comandos (e muitas outras coisas incríveis), e quando houver um atalho de teclado para fazer isso, o problema será resolvido. Eu estava começando a pensar que eu era louco ...
nacnudus

1
não é sua resposta exata, mas, nesses casos, para visualizar o conteúdo de arquivos grandes, uso o comando 'less' em vez de 'cat'. Outra coisa é que, se algum comando fornecer um grande número de linhas como saída para o console, você poderá evitá-lo escrevendo "$ the-command | less".
Devasish 29/01

Respostas:


4

Graças ao @rici, esse comportamento pode ser chamado de "dobrável". A saída dos comandos não é esquecida, mas você pode ocultá-la até precisar dela novamente. Dobrar é comum em editores de texto, mas parece ser raro em emuladores de terminal.

Final Term é um novo emulador de terminal que inclui dobrar entre muitos outros truques sofisticados. Cuidado: "O Termo Final está em desenvolvimento pesado e nem estável nem completo!" Foi desenvolvido o suficiente para dobrar meus comandos quando o testei, mas instável demais para não travar. Um para assistir.


0

Eu acho que você está procurando o comando claro ...

clear

"clear" limpa seu último comando da vista. Você pode rolar para cima no terminal para vê-lo novamente, se necessário.


A questão é não ter que passar por ela ao procurar em outra história seu histórico.
Nacnudus

Você quer dizer suprimir a saída do comando? Se sim, isso pode ajudá-lo: stackoverflow.com/questions/617182/…
phe0113

2
Isso é ótimo se eu nunca quiser ver a saída. Quero ver a saída pela primeira vez e depois esquecê-la. Portanto, no exemplo que dei, quero inspecionar a saída lspor algum motivo, mas quero me livrar dela para que não precise continuar passando a página para encontrar a saída do gato. Obviamente, eu poderia simplesmente fazer gato de novo, mas posso imaginar querer reter uma sequência de comandos, e seria bom não ter que repeti-los todos.
Nacnudus 25/09

0

No bash, você pode pressionar o atalho Ctrl + Lpara limpar a tela, semelhante ao clearcomando. ( http://ss64.com/bash/syntax-keyboard.html )

Ou você pode usar history | tail -3para ver os três últimos comandos. ( http://www.howtogeek.com/howto/44997/how-to-use-bash-history-to-improve-your-command-line-productivity/ )


Veja meu comentário para @ Justin abaixo, o ponto não é ter que passar por ele ao procurar na história outra coisa. Algo como HISTCONTROL=ignorespaceno seu segundo link que você pode usar após o fato seria bom.
Nacnudus

Estou um pouco perdido com o que você deseja alcançar. Outro pensamento: em muitos consoles que usei, você geralmente pode usar as setas para navegar no histórico de comandos no bash, isso se aplica à sua situação?
Pho0113

Minha edição esclarece a pergunta?
Nacnudus

@nacnudus, sim, eu entendo seu ponto agora :)
phe0113

0

Parece que você deseja remover itens do seu histórico. Para fazer isso, primeiro você precisa habilitar a gravação do histórico em tempo real, e não no logout, editando seu ~ / .bashrc e adicionando:

shopt -s histappend; export PROMPT_COMMAND='history -a';'

Em seguida, para excluir itens, você pode:

history -d offset, em que deslocamento é a entrada do histórico que você deseja excluir

Com base neste tópico do fórum .


Isso parece excluí-lo do arquivo de histórico, o que é quase a idéia certa, mas ele pode ser apagado do terminal atual?
Nacnudus
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.