Введение / Зачем это нужно
Знание сочетаний клавиш в Bash — это как владение скоростной клавиатурой для пилота. Вы сможете управлять командной строкой, не отрывая рук от клавиатуры, что сокращает время выполнения задач на 50% и более. В этом гайде собраны самые полезные и часто используемые комбинации, которые работают в большинстве дистрибутивов Linux по умолчанию. После освоения вы перестанете зависеть от мыши и начнёте работать в терминале по-настоящему быстро.
Требования / Подготовка
Для использования этих сочетаний вам потребуется:
- Терминал (GNOME Terminal, Konsole, xterm, Alacritty и т.д.)
- Оболочка Bash (обычно установлена по умолчанию в большинстве дистрибутивов)
- Базовое понимание работы командной строки
Никакой дополнительной настройки или установки пакетов не требуется — все сочетания работают «из коробки».
Шаг 1: Навигация по строке ввода
Эти сочетания позволяют перемещать курсор внутри текущей команды или текста, который вы вводите.
| Сочетание клавиш | Действие | Пример использования |
|---|---|---|
Ctrl + A | Переместить курсор в начало строки | Вы вводите git commit -m "fix bug", нажимаете Ctrl+A — курсор оказывается перед git. |
Ctrl + E | Переместить курсор в конец строки | После Ctrl+A курсор в начале, Ctrl+E вернёт его в конец. |
Alt + B или Esc затем B | Переместить курсор на одно слово назад (к началу) | В строке cd /var/log/apache2 нажимаете Alt+B — курсор перескакивает на /. |
Alt + F или Esc затем F | Переместить курсор на одно слово вперёд (к концу) | Обратное действие к Alt+B. |
Ctrl + XX | Переключение между началом строки и текущей позицией курсора | Быстрый способ вернуться к началу и обратно, не теряя места. |
💡 Совет: На многих клавиатурах Alt может называться Meta. Если Alt+B не работает, попробуйте Esc (отпустите его), а затем B.
Шаг 2: Редактирование текста
Эти команды помогают быстро вносить правки без использования клавиши Backspace или Delete.
| Сочетание клавиш | Действие |
|---|---|
Ctrl + U | Удалить весь текст от текущей позиции курсора до начала строки. |
Ctrl + K | Удалить весь текст от текущей позиции курсора до конца строки. |
Ctrl + W | Удалить слово, находящееся перед курсором (от начала слова до курсора). |
Alt + D или Esc затем D | Удалить слово, находящееся после курсора (от курсора до конца слова). |
Ctrl + Y | Вставить (откатить) последний удалённый текст (аналог Ctrl+V в текстовых редакторах). |
Ctrl + T | Поменять местами два символа перед курсором (например, если написали sl, нажмёте Ctrl+T — станет ls). |
Пример: Вы написали git comit -m "message". Поставите курсор после comit, нажмёте Alt+D — удалится it. Затем начнёте вводить mit или используйте автодополнение.
Шаг 3: Работа с историей команд
Bash сохраняет историю всех введённых команд. Эти сочетания позволяют быстро находить и повторять их.
| Сочетание клавиш | Действие |
|---|---|
Ctrl + R | Инкрементальный поиск по истории. Начните вводить часть команды (например, git), и Bash будет показывать последние совпадения. Повторное нажатие Ctrl+R — следующее совпадение. Enter — выполнить, Esc или стрелки — редактировать. |
Ctrl + P или ↑ | Предыдущая команда в истории (аналог стрелки вверх). |
Ctrl + N или ↓ | Следующая команда в истории (аналог стрелки вниз). |
Alt + . (точка) | Вставить аргумент (последний параметр) из предыдущей команды. Полезно для cd: cd /some/long/path, затем ls Alt+. → ls /some/long/path. |
Ctrl + G | Выйти из режима поиска (Ctrl+R) без выполнения команды. |
⚠️ Важно: По умолчанию Bash хранит историю в файле ~/.bash_history. Размер истории настраивается переменной HISTSIZE.
Шаг 4: Управление фоновыми задачами
Когда вы запускаете процесс (например, ping или top), эти сочетания позволяют управлять им без открытия нового терминала.
| Сочетание клавиш | Действие |
|---|---|
Ctrl + C | Прервать текущий процесс (отправить сигнал SIGINT). |
Ctrl + Z | Остановить процесс (приостановить, сигнал SIGTSTP) и вернуться в оболочку. Процесс остаётся в памяти. |
fg | Вернуть остановленный процесс на передний план (foreground). |
bg | Запустить остановленный процесс в фоновом режиме (background). |
jobs | Показать список остановленных и фоновых задач в текущей сессии. |
Ctrl + D | Выход из оболочки (эквивалент команды exit). Если ввод строки пуст, закрывает терминал. |
Пример: Запустили долгую команду find / -name "*.log". Нажали Ctrl+Z → процесс остановлен. Ввели bg → процесс продолжается в фоне, вы можете работать дальше.
Шаг 5: Дополнительные полезные сочетания
Эти комбинации упростят повседневные задачи.
| Сочетание клавиш | Действие |
|---|---|
Tab | Автодополнение имён файлов, команд, путей. Нажмите один раз для дополнения, два раза — показать все варианты. |
Ctrl + L | Очистить экран терминала (аналог команды clear). |
Ctrl + I | То же, что Tab (редко используется). |
Ctrl + H | Удалить один символ перед курсором (аналог Backspace). |
Ctrl + S | Остановить вывод на экран (XOFF). Полезно, когда ls выводит слишком много. |
Ctrl + Q | Возобновить вывод на экран (XON) после Ctrl+S. |
💡 Совет: Комбинация Ctrl+S может казаться «зависанием» терминала. Если экран перестал реагировать на ввод, попробуйте Ctrl+Q, чтобы разблокировать.
Проверка результата
Вы освоили сочетания, если можете:
- Быстро перемещаться по длинной команде с помощью
Ctrl+A/E,Alt+B/F. - Удалять целые слова (
Ctrl+W,Alt+D) и восстанавливать их (Ctrl+Y). - Находить в истории прошлые команды через
Ctrl+Rбез их полного перебора. - Останавливать (
Ctrl+Z) и возобновлять (fg/bg) процессы. - Использовать
Tabдля автодополнения иCtrl+Lдля очистки экрана.
Практика: Откройте терминал, наберите сложную команду (например, с несколькими путями) и попробуйте все сочетания из шагов 1-5. Поиграйте с историей: выполните несколько команд, затем нажмите Ctrl+R и начните вводить их первую букву.
Возможные проблемы
1. Сочетания не работают в моём терминале
Чаще всего проблема в настройках самого эмулятора терминала. Например, в GNOME Terminal зайдите в Правка → Настройки клавиш и убедитесь, что сочетания не переназначены. Также проверьте, не включён ли «Режим совместимости» (например, для Ctrl+Shift+C/V).
2. Alt+B/Alt+F ничего не делают
На некоторых системах клавиша Alt используется для вызова меню. Попробуйте нажать Esc, отпустить, а затем B или F. Это эквивалент Alt+<клавиша>. Если и это не работает, проверьте переменную оболочки $TERM (должна быть xterm-256color или подобной).
3. Конфликт с другими программами (например, screen/tmux)
Если вы используете tmux или screen, они могут перехватывать некоторые сочетания (особенно Ctrl+B в tmux). В таком случае нужно использовать их префикс (например, Ctrl+B затем [ для режима копирования в tmux). Для обычного Bash вне мультиплексеров проблем быть не должно.
4. История не сохраняется между сессиями
По умолчанию Bash сохраняет историю только при нормальном выходе (exit или Ctrl+D). Если терминал закрыть «кнопкой крестик», история может потеряться. Чтобы этого избежать, добавьте в ~/.bashrc:
# Сохранять историю после каждой команды, а не при выходе
shopt -s histappend
PROMPT_COMMAND='history -a'
После этого каждая команда будет сразу записываться в ~/.bash_history.