Você pode executar ctl-z para fazer o segundo plano e depois matar o PID.
$ ctl z (para o fundo)
$ kill -9 {pid} 'do processo que acabou de ser obtido em segundo plano'
Estou procurando, de alguma forma, parar a saída para STDOUT quando percebo que um comando está errado. Por exemplo, se eu acidentalmente gato um arquivo muito grande. Normalmente, ele acabará parando se você pressionar ctrl + c , mas isso levará muito tempo.
Existe uma maneira de interromper a saída mais imediatamente?
Você pode executar ctl-z para fazer o segundo plano e depois matar o PID.
$ ctl z (para o fundo)
$ kill -9 {pid} 'do processo que acabou de ser obtido em segundo plano'
Muitas vezes, os dados já foram enviados para o monitor, e o "longo tempo" é o terminal que tenta exibir os dados. Fazer qualquer coisa na tarefa não ajudará (ou seja, Ctrl + Z ou Ctrl + C ), você vai precisar de um terminal mais rápido ou algo para armazenar os dados.
Eu canalizo saídas grandes através de less
e tail
dependendo se eu quero ver a parte superior ou inferior do arquivo, já que ambas permitem controlar facilmente a quantidade de dados sendo enviados para o terminal e fechar a programa se não é o que eu quero.
Mudando para um Terminal diferente (via CTRL + F1 para F6 no modo de texto, ou abrindo uma nova janela em screen
via CTRL + A , C ) depois de ter pressionado CTRL + Z ou < kbd> CTRL + C fará com que o terminal original pule a tentativa de fazer todos os feeds de linha e pule diretamente para a última linha de saída em um tempo menor
Você deve conseguir canalizá-lo para more
ou less
cat large_file.txt | less
Nesse ponto, você pode paginar a resposta e sair com um :q
Você também pode usar grep
para ajudar a classificar sua resposta, caso esteja procurando um erro / problema específico.
Tags command-line stdout cat linux unix