Почему завис терминал и не реагирует на клавиши — и при чём тут Ctrl+S

Ты печатаешь команду — а на экране ничего. Жмёшь Enter, ещё раз. Тишина. Курсор стоит, буквы не появляются, приглашение $ пропало. Кажется, всё сломалось.
Почти всегда ничего не сломалось. Терминал либо ждёт тебя, либо ты его сам поставил на паузу. Причём иногда — привычным сочетанием, которым в редакторе сохраняешь файл.
Ниже три причины, на которые натыкаются почти все новички. Начнём с самой частой. У каждой: как узнать и как починить.
Причина 1. Команда ждёт твоего ввода
Самый частый случай. Ты запустил программу, а она не зависла — она читает с клавиатуры и ждёт, что ты что-то напишешь.
Типичные примеры:
catилиgrep ошибкабез имени файла. Они ждут текст прямо из терминала.- Скрипт с вопросом внутри:
npm init, «Продолжить? (y/n)». - Открылась листалка:
git log,git diffилиmanпоказывают текст постранично. - Git-коммит без
-mоткрыл редактор — Vim или nano.
Как проверить. Напечатай пару букв. Если они появляются на экране, а приглашения $ нет — программа жива и ждёт ввода. Внизу видна строка : или (END) — это листалка. Вверху или внизу видны тильды ~ или подсказки вида ^X Exit — это редактор.
Как починить. Выбери выход по ситуации:
Ctrl+C— прервать почти любую команду.Ctrl+D— сказать «ввод закончился». Так корректно завершаютсяcat,pythonв интерактивном режиме и всё, что читает до конца ввода.q— выйти из листалки (less,git log,man).Esc, потом:q!иEnter— выйти из Vim без сохранения. В nano —Ctrl+X.
Отдельный случай: ты запустил dev-сервер вроде pnpm dev. Он и не должен возвращать приглашение — он работает, пока ты его не остановишь. Ctrl+C его выключит. Если закрыть вкладку без Ctrl+C, сервер может остаться жить и держать порт — а это уже история про занятый порт.
Причина 2. Незакрытая кавычка
Ты набрал команду с кавычкой, а вторую забыл:
git commit -m "fix login
Жмёшь Enter — и вместо результата видишь в начале строки знак >. Ещё Enter — снова >. Похоже на зависание.
На самом деле bash вежливо ждёт конец строки. Он видит открытую кавычку и думает, что ты пишешь многострочный текст. То же бывает с незакрытой скобкой и с heredoc, у которого метка конца не распознана.
Как проверить. Строка начинается с > вместо обычного приглашения.
Как починить. Ctrl+C. Команда отменится целиком, ничего не выполнится. Набери её заново с закрытой кавычкой.
Причина 3. Ты нажал Ctrl+S
Самая неожиданная. Ты привык жать Ctrl+S, чтобы сохранить файл. Нажал по привычке в терминале — и он замёрз. Ни буквы, ни реакции на Enter.
Это не баг, а функция из эпохи телетайпов. Ctrl+S во многих терминалах Linux и macOS означает «стоп вывод». Терминал перестаёт показывать что-либо на экране. При этом он всё принимает: всё, что ты напечатал после, копится и ждёт.
Как проверить. Вспомни, не жал ли ты Ctrl+S. Если нет ни >, ни листалки, а на буквы нет реакции — почти наверняка это оно. Включена ли такая пауза вообще, покажет stty -a | grep ixon: слово ixon без минуса значит «включена».
Как починить. Ctrl+Q — «продолжить вывод». Терминал оттает, и разом выплеснется всё, что ты набрал. Осторожно: если ты в панике печатал команды и жал Enter, они тоже выполнятся.
Чтобы это не повторялось, отключи паузу насовсем. Добавь строку в ~/.bashrc или ~/.zshrc:
stty -ixon
Откуда вообще взялись такие правила у окна с текстом — в разборе что такое TTY.
Если не помогло ничего
Бывает, что программа и правда зависла и на Ctrl+C не реагирует. Тогда открой вторую вкладку и найди её:
ps aux | grep имя-программы
kill 12345
Где 12345 — номер процесса из второй колонки. Не помогло — kill -9 12345. Это грубо, но надёжно. Последнее средство — закрыть вкладку терминала целиком.
Что значит [1]+ Stopped после Ctrl+Z?
Ctrl+Z не закрывает программу, а ставит её на паузу в фоне. Вернуть её на экран — команда fg. Закрыть — fg и потом Ctrl+C.
Почему агент ИИ «завис» в терминале?
Чаще всего по причине 1: команда задала вопрос, а ответить некому. Хорошие агенты добавляют флаги вроде --yes, но не всегда. Посмотри последнюю строку вывода — там обычно и вопрос.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





