Команда работает дольше, чем нужно, и приглашение не возвращается. Вернуть его можно одним сочетанием клавиш.
Пока программа работает, приглашения нет: оболочка ждёт, когда программа закончит. Это ещё не зависание — программа может считать, ждать данных или ждать клавишу.
Ctrl+C посылает работающей программе сигнал прерывания. Обычно программа на этом завершается, и оболочка печатает приглашение. sleep 30 ничего не делает, только ждёт 30 секунд — запусти её и нажми Ctrl+C, не дожидаясь конца:
Прерывание останавливает программу там, где её застал сигнал.
Ctrl+C в терминале прерывает программу и текст не копирует. Чтобы скопировать, выдели текст мышью и нажми Ctrl+Insert или выбери «Копировать» в меню правой кнопки. Вставить — Shift+Insert или «Вставить» в том же меню.
Команда копирует сто файлов в каталог backup. На сороковом файле ты нажал Ctrl+C. Что будет в backup?
-
Копирование исходные файлы не трогает, и прерывание этого не меняет: они остаются на месте.
-
Сигнал прерывания обычно завершает программу сразу, без доработки. В backup будет столько файлов, сколько она успела скопировать.
-
Прерывание останавливает программу, а уже записанные файлы не удаляет: скопированное до Ctrl+C остаётся в backup.
Ctrl+C останавливает программу на том месте, где она была, и ничего не откатывает. Файлы, которые успели скопироваться, остаются в backup, и после прерывания результат нужно проверить.
Главное в шаге
- Нет приглашения — работает программа. Ctrl+C прерывает её и возвращает приглашение.
- Ctrl+C ничего не откатывает: сделанное до прерывания остаётся.