web-dev-qa-db-fra.com

Pourquoi utilisons-nous ctrl + c / ctrl + x / ctrl + z dans le terminal?

Pourquoi devons-nous utiliser tout ce raccourci pour quitter les programmes dans terminalname__?

Par exemple :

  • ctrl+c pour quitter topname__
  • ctrl+z pour quitter manname__
  • ctrl+x pour quitter nanoname__

ctrl+c n'est pas supposé tuer le programme?

5
Thomas Ayoub

Parce qu'il est spécifié dans POSIX, la norme IEEE pour les systèmes informatiques de type Unix.

Vérifiez Section 10.2 - Périphériques de sortie et types de terminal de la spécification POSIX.1 2008 (dernière version) pour tous les raccourcis disponibles.

Pour ajouter à votre question, voici une brève explication de ce que ces raccourcis font réellement.

Lorsque vous appuyez sur Ctrl- [lettre], vous envoyez un signal au processus. Un signal est un "drapeau" que vous fournissez au processus qui est interprété et associé à une action.

  • Ctrl-C envoie SIGINT, un signal qui provoque la fin du processus.

  • Ctrl-Z envoie SIGTSTP, un signal qui provoque l’interruption du processus. Dans ce cas, il est résumable - essayez d’exécuter une commande qui prendra un moment et appuyez sur Ctrl-Z; vous verrez quelque chose dans les lignes de

    [1]+ Stopped [your command].

    Tapez fg dans votre terminal et vous verrez le processus reprendre, s'il ne s'est pas terminé avant de le reprendre.

  • Ctrl-X, dans ce cas, est le raccourci utilisé par nano pour quitter le processus. Incidemment, il existe un signal associé à Ctrl-x, mais ce n’est pas lié au nano.

TL; DR C'est spécifié dans POSIX.

9

+ z et + c sont des signaux Shell.

ctrl+z ne tue pas le programme, il lui envoie un signal (SIGTSTP) à suspendre. Tapez fg pour le reprendre. ctrl+c est un autre signal, cette fois le SIGINT à se terminer. kbd+x est juste une liaison de clé nano.

2
noleti