Ctrl+D, lorsqu'il est tapé au début d'une ligne sur un terminal, signifie la fin de l'entrée. Ce n'est pas un signal au sens unix: lorsqu'une application lit à partir du terminal et que l'utilisateur appuie sur Ctrl+D, l'application est notifiée que la fin du fichier a été atteinte (comme si elle lisait un fichier et avait passé le dernier octet).
Ctrl+C envoie un signal, SIGINT . Par défaut, SIGINT (le signal d'interruption) tue l'application de premier plan, mais l'application peut intercepter le signal et réagir d'une manière différente (par exemple, le shell lui-même capte le signal et abandonne la ligne que vous avez commencé à taper, mais il ne le fait pas '' t quitter, il affiche une nouvelle invite et attend une nouvelle ligne de commande).
Vous pouvez modifier les caractères associés à la fin du fichier et SIGINT avec la commande stty
, par ex. stty eof a
ferait de a
le caractère de fin de fichier et stty intr ^-
désactiverait le caractère SIGINT. C'est rarement utile.
Votre deuxième point regroupe deux choses complètement différentes ensemble.
Vous recherchez ce dernier.