Ctrl+Dпри вводе в начале строки на терминале означает конец ввода. Это не сигнал в смысле Unix: когда приложение читает с терминала и пользователь нажимает Ctrl+D, приложение уведомляется о том, что достигнут конец файла (как если бы он читал из файла и прошел последний байт).
Ctrl+Cдействительно посылает сигнал, SIGINT . По умолчанию SIGINT (сигнал прерывания) убивает приложение переднего плана, но приложение может перехватить сигнал и реагировать по-другому (например, сама оболочка ловит сигнал и прерывает строку, которую вы начали печатать, но это не так). t выход, он показывает новое приглашение и ждет новой командной строки).
Вы можете изменить символы, связанные с концом файла и SIGINT, с помощью sttyкоманды, например stty eof a, сделать aсимвол конца файла и stty intr ^-отключить символ SIGINT. Это редко полезно.
Ctrl+DCtrl и заглавная D или это не имеет значения?