Como “terminar” um comando no terminal?

0

Quando executo comandos e quero sair, basta pressionar Ctrl + C e ele funciona. Mas há momentos em que isso não funciona, e a única maneira de executar outro comando é fechar o terminal e abrir um novo. Eu gostaria de saber como forçar a saída. Por exemplo, acontece quando eu corro:

git log 

Ele começa a relatar todos os commits, e se eu pressionar ESC ou END eu posso ler as palavras END e ESC na parte inferior, mas nada acontece se eu pressioná-los. Então o que isso significa? Qual é a maneira de terminar qualquer comando?

    
por gal007 01.05.2017 / 17:02

2 respostas

1

No exemplo git log , apenas pressione a tecla q . Q encerra a ação atual. Q também funciona no comando more e em outros.

    
por heynnema 01.05.2017 / 17:16
1

Depende se o processo em execução respeita o sinal específico que está sendo dado. Por exemplo, nos sistemas Linux, o "ctrl + c" fornece um SIGINT. Você também pode tentar um "ctrl + z" para ver se ele respeita um SIGTSTP. Isso na verdade não mata o processo, então depois, se você quiser terminar, terá que encontrar o ID do trabalho e matá-lo. Um comando padrão kill envia um SIGTERM e um kill -9 envia um SIGKILL. Naturalmente, para os comandos kill você precisa abrir um novo terminal e determinar o ID do processo que deseja matar. No final, não há "bala de prata". O SIGKILL é frequentemente considerado o mais "strong", mas também é o mais severo e é recomendado apenas como último recurso, uma vez que não permite que o processo seja encerrado normalmente. Aqui está um link para uma lista mais completa de sinais:

link

Muitos projetos considerarão um bug se não manipularem certos sinais adequadamente. Portanto, é sempre uma opção registrar um bug com o projeto que não está respondendo a um "ctrl + c" e ver se eles vão consertá-lo para lidar com o SIGINT de uma forma esperada.

    
por TopHat 01.05.2017 / 17:16