Por que usamos ctrl + c / ctrl + x / ctrl + z no terminal? [duplicado]

4

Por que precisamos usar todo esse atalho para sair dos programas em terminal ?

Por exemplo:

  • ctrl + c para sair do top
  • ctrl + z para sair de man
  • ctrl + x para sair de nano
ctrl + c não é suposto matar o programa?

    
por Thomas Ayoub 05.09.2014 / 15:06

2 respostas

8

Porque é especificado em POSIX, a norma IEEE para sistemas de computadores do tipo Unix.

Verifique Seção 10.2 - Dispositivos de Saída e Tipos de Terminais da especificação POSIX.1 2008 (a mais recente) para todos os atalhos disponíveis.

Para adicionar sua pergunta, esta é uma breve explicação do que esses atalhos realmente fazem.

Quando você pressiona Ctrl- [letra], você está realmente enviando um sinal para o processo. Um sinal é um "sinalizador" fornecido ao processo que é interpretado e associado a uma ação.

  • Ctrl-C envia SIGINT, um sinal que faz com que o processo termine.

  • Ctrl-Z envia SIGTSTP, um sinal que faz com que o processo suspenda a execução. Nesse caso, é recuperável - tente executar um comando que demorará um pouco e pressione Ctrl-Z ; você verá algo nas linhas de

    [1]+ Stopped [your command] .

    Digite fg no seu Terminal e você verá o processo ser retomado, se não terminar antes de retomar.

  • Ctrl-X, nesse caso, é o atalho que o nano usa para sair do processo. Aliás, há um sinal associado ao Ctrl-x, mas não está relacionado ao nano.

TL; DR É especificado em POSIX.

    
por Manuel A. Fernandez 05.09.2014 / 15:37
2

+ z e + c são sinais de shell.

ctrl + z não está matando o programm, ele está enviando um sinal (SIGTSTP) para suspender. Digite fg para continuar. ctrl + c é outro sinal, desta vez o SIGINT para finalizar. kbd + x é apenas uma ligação de chave nano.

    
por noleti 05.09.2014 / 15:17