terminal Ctrl + s versus Ctrl + z

3

Eu tenho, por exemplo, um comando tar cvf /backup/backup.tar de execução longa e detalhado que gera muito texto na tela *. Eu não necessariamente quero ver toda a saída o tempo todo. Eu gostaria de interromper a saída de texto, fazer outras coisas, depois voltar a ela e "resumir" para ver até onde ela está no processo de backup. Eu esperava que ele se comportasse como

/files/big_file_1
/files/big_file_2
/files/big_file_3
# Ctrl+s
# Do other stuff
# Ctrl+q , notice big jump in progress
/home/user/.bash_history
/home/user/small_file_1
/home/user/small_file_2
/home/user/small_file_3
...

Ctrl + s pára a saída para a tela (e Ctrl + q retoma a saída para a tela), enquanto Ctrl + z suspende o processo e estou de volta a um prompt do PS1. Minha pergunta é: Ctrl + s mantém o comando em execução?

Durante o comando tar acima mencionado, eu destacaria o último arquivo TARred, deixe-o ficar por alguns minutos, Ctrl + q, e os próximos arquivos pareciam estar no mesmo diretório, ou pelo menos em um diretório relativamente próximo .

* Estou usando o Putty no Windows, então se o comportamento for diferente entre ele e um terminal padrão no Linux / Unix, peço desculpas.

    
por user208145 29.03.2018 / 23:23

1 resposta

4

My question is, does Ctrl+s keep the command running?

Sim, até o ponto em que os buffers do sistema são preenchidos e o processo começa a ser bloqueado para poder gravar no terminal. Então, não será executado indefinidamente. Além disso, você não poderá executar mais nada no mesmo terminal, pois a saída está bloqueada.

Para sair do programa enquanto ainda é possível voltar, as opções são:

  • Executar outro terminal ao lado (outro Putty, outra conexão SSH)
  • Execute screen ou tmux para multiplexar várias "janelas" dentro do mesmo terminal
  • Redirecione a saída para um arquivo, execute o comando em segundo plano e, em seguida, espie o arquivo quando quiser: tar cvf ... > /tmp/tar.out & e tail /tmp/tar.out
por 29.03.2018 / 23:32