Pourquoi devons-nous utiliser tout ce raccourci pour quitter les programmes dans terminal
name__?
Par exemple :
top
name__man
name__nano
name__ctrl+c n'est pas supposé tuer le programme?
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.
+ 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.