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.