🎹 Signaux clavier dans un terminal Linux
| Combinaison | Nom du signal | Description |
|---|---|---|
Ctrl+C | SIGINT (2) | Interrompt (interruption) le processus en cours. C’est le classique “stopper un programme”. |
Ctrl+Z | SIGTSTP (20) | Suspend (pause) le processus courant (le met en arrière-plan, stoppé). Peut être repris avec fg. |
Ctrl+\ | SIGQUIT (3) | Termine le processus et crée un core dump (utile en débogage). |
Ctrl+D | EOF (End Of File) | Ce n’est pas un signal mais une indication d’entrée terminée (fin de fichier). Elle peut arrêter cat, read, etc. |
Ctrl+S | (XOFF) | Fige le terminal (pause de l’affichage). |
Ctrl+Q | (XON) | Reprend l’affichage après un Ctrl+S. |
Ctrl+L | (aucun signal) | Efface l’Ă©cran du terminal (Ă©quivalent Ă clear). |
Ctrl+U | (aucun signal) | Supprime tout ce que tu as tapé sur la ligne actuelle. |
Ctrl+W | (aucun signal) | Supprime le dernier mot tapé. |
Ctrl+A | (aucun signal) | Déplace le curseur au début de la ligne. |
Ctrl+E | (aucun signal) | Déplace le curseur à la fin de la ligne. |
Ctrl+K | (aucun signal) | Supprime du curseur jusqu’à la fin de la ligne. |
Ctrl+C
arrête définitivement le processus en cours!
etudiant@ordi:~/Works/TP0_LINUX$ sleep 300
^C
etudiant@ordi:~/Works/TP0_LINUX$
on voit que le travail , ici dormir 300 secondes est interrompu pour toujours avec SIGINT
autre dĂ©mo avec la commande yes , qui permet de boucler Ă l’infini soit y avec yes seul , ici surprise:
etudiant@ordi:~/Works/TP0_LINUX$ yes "Caroline Dorian"
Caroline Dorian
...
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Do^C
etudiant@ordi:~/Works/TP0_LINUX$
Permet d’arrêter totalement le processus
Ctrl+Z
Stop le processus en cours .. mais pas définitivement !
etudiant@ordi:~/Works/TP0_LINUX$ yes "Caroline Dorian"
Caroline Dorian
..
..
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian^Z
[1]+ Arrêté yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$
on a repris la main !! mais le processus est juste stoppé
la preuve :
etudiant@ordi:~/Works/TP0_LINUX$ jobs
[1]+ Arrêté yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$
intĂ©rĂŞt c’est qu’on repris la main !
et maintenant on dispose de 2 fonctions bg (background) fg (foreground)
etudiant@ordi:~/Works/TP0_LINUX$ jobs
[1]+ Arrêté yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$ fg %1 #%1 job 1
Caroline Dorian
Caroline Dorian
Caroline Dorian
.....
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Dorian
Caroline Do^Z
[1]+ Arrêté yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$
etudiant@ordi:~/Works/TP0_LINUX$ jobs
[1]+ Arrêté yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$ jobs
[1]+ Arrêté yes "Caroline Dorian"
etudiant@ordi:~/Works/TP0_LINUX$ bg %1
il passe en background mais ça affiche tellement qu’on a plus la main
Solution: ouvrir un autre terminal ! et avec la fonction kill (tuer) on va envoyer le signal 9 a ce processus
etudiant@ordi:~$ ps -ax
PID TTY STAT TIME COMMAND
1 ? Ss 0:04 /sbin/init splash
2 ? S 0:00 [kthreadd]
3 ? S 0:00 [pool_workqueue_release]
...
6673 pts/4 Ss 0:00 -bash
6698 ? R 0:00 [kworker/u2:2-events_unbound]
6712 pts/3 R 0:01 yes Caroline Dorian
6714 pts/4 R+ 0:00 ps -ax
etudiant@ordi:~$ kill -9 6712
etudiant@ordi:~$
on retrouve la main ! sur l’autre OUF ! on garde le contrĂ´le
si on fait -20 , c’est juste un stop !!
Amusant tout ça non ?
