Linux bash горячие клавиши

Обновлено: 12.07.2024

В этой статье я собрал наиболее полезные комбинации клавиш («Горячие клавиши») командной оболочки bash, которая обширно используется в *nix-подобных системах.

Перемещение:

Ctrl + A — перемещение курсора в начало командной строки
Ctrl + E — перемещение курсора в конец командной строки.
Alt + B — переместить курсор назад на одно слово.
Alt + F — переместить курсор вперед на одно слово.

Удаление:
Ctrl + K — удаление всех символов от курсора до конца командной строки.
Ctrl + U — удаление всех символов от курсора до начала командной строки.
Ctrl + W — удаление символов от курсора до начала слова слева.
Alt + D — удаление символов от курсора до конца слова.

Вставка:
Ctrl + Y — вставляет символ, слово или текст который был удален при помощи сочетаний клавиш приведенных в разделе к комбинациями удаления.

Смена регистра букв:
Alt + C — превращает под курсором букву в заглавную.
Alt + U — переводит все буквы от курсора и до конца слова в заглавные.
Alt + L — переводит все буквы от курсора и до конца слова в нижний регистр.

Работа с историей:
Ctrl + R — вход в режим поиска команды в истории.
Ctrl + G — выход из режима поиска в истории.
Ctrl + P — предыдущая команда в истории (шаг назад по истории). Можно использовать клавишу со стрелкой вверх.
Ctrl + N — следующая команда в истории (шаг вперед по истории). Можно использовать клавишу со стрелкой вниз.
Alt + . — использовать последнее слово предыдущей команды.

Работа с выводом на экран:
Ctrl + L — очистка экрана.
Ctrl + S — остановить вывод на экран.
Ctrl + Q — возобновить вывод на экран, если раньше он был приостановлен командой выше.

Управление выполнением программы:
Ctrl + C — прекратить, прервать выполнение текущей команды.
Ctrl + Z — приостановить, остановить выполнение текущей команды. Приостановленную команду можно снова вернуть к жизни командой fg, либо запустить её в фоновом режиме командой bg.

Полезные горячие клавиши для Bash

Bash является оболочкой командной строки по умолчанию в большинстве дистрибутивов Linux, от Ubuntu и Debian до Red Hat и Fedora. Bash также является оболочкой по умолчанию, входящей в состав macOS, и вы можете установить среду bash на базе Linux в Windows 10.

В оболочке bash имеется большое количество сочетаний клавиш, которые вы можете использовать. Они будут работать в bash в любой операционной системе. Некоторые из них могут не работать при удаленном доступе к bash через сеанс SSH или telnet, в зависимости от того, как сопоставлены ваши ключи.

Управление запущенными процессами

Эти сочетания позволяют управлять процессами, запущенными в командной строке.

Ctrl+C: Закрывает текущий процесс, запущенный в терминале. Некоторые приложения могут его игнорировать.

Ctrl+D: Закрывает bash оболочку вместе с процессами. Схожа с командой exit .

Ctrl+Z: Сворачивает текущий процесс. Его можно возобновить с помощью команды fs process_name .

Управление экраном

Следующие команды позволяют контролировать вывод в оболочке bash .

Ctrl+L: Производит быструю очистку экрана. Похожа на команду clear .

Ctrl+S: Останавливает весь вывод на экране. Это полезно когда необходимо временно остановить запущенный процесс.

Ctrl+Q: Продолжает работу и отображение вывода после ее остановки.

Управление курсором

Используйте следующие комбинации чтобы быстро управлять курсором в текущей линии пока печатаете команду.

Ctrl+A или Home: Курсор идет в начало строки.

Ctrl+E или End: Курсор идет в конец строки.

Alt+B: Курсор двигается к началу на одно слово.

Ctrl+B: Курсор двигается к началу на один символ.

Alt+F: Курсор двигается в конец на одно слово.

Ctrl+F: Курсор двигается в конец на один символ.

Ctrl+XX: При повторном исполнении команды, курсор будет двигаться между началом линии и текущей позиции курсора.

Удаление текста

Используйте следующие команды для быстрого удаления текста:

Ctrl+D или Delete: Удаляет символ находящийся на курсоре.

Alt+D: Удаляет все символы находящиеся после курсора на текущей линии

Ctrl+H или Backspace: Удаляет символ, находящийся перед курсором.

Переставление

Alt+T: Переставляет текущее слово и предыдущее.

Ctrl+T: Переставляет два предыдущих символа перед курсором. Можно использовать, когда например написал cta вместо cat .

Ctrl+_: Делает отмену последней нажатой клавиши. Можно повторять несколько раз.

Вырезка и вставка текста

Ctrl+W: Делает вырезку слова перед курсором и добавляет его в буфер.

Ctrl+K: Вырезает весь текст после курсора и добавляет его в буфер.

Ctrl+U: Вырезает весь текст перед курсором и добавляет его в буфер.

Ctrl+Y: Вставляет последний контент из буфера.

Регистр

Alt+U: После курсора слово переводится в верхний регистр.

Alt+L: После курсора слово переводится в нижний регистр.

Alt+C: После курсора первый символ слова переводится в верхний регистр.

Перебор команд из истории

bash также позволяет делать прокрутки недавно запущенных команд, которые хранятся в истории.

Ctrl+P или Up Arrow: Показывает предыдущую введеную команду. Можно несколько раз прожимать, чтобы проходить через историю.

Ctrl+N или Down Arrow: Показывает следующую введеную команду.

bash также имеет особый режим поиска команд которые были введены прежде.

Ctrl+R: Вызывает последнюю команду, которая соответствует введенной ключевой фразе.

Ctrl+O: Запускает найденную команду в этом режиме.

Ctrl+G: Выход из режима.

Режим

Описанные выше команды предполагают использование стандартной конфигурации в терминале. По умолчанию bash использует комбинации в стиле редактора emacs . Можно переключать в режим редактора vi , если он является предпочтительнее.


bash (Bourne again shell) - усовершенствованная и модернизированная вариация командной оболочки Bourne shell (sh).

Горячие клавиши Bash (hotkeys bash)

Таблица комбинаций клавиш консоли Bash (терминала Linux).

ctrl+u удалить все символы от курсора до начала строки ctrl+k удалить все символы от курсора до конца строки ctrl+t поменять местами символ слева от курсора и под курсором ctrl+y вставляет последнюю удалённую с помощью ctrl+u или ctrl+k строку ctrl+o выполняет команду, при этом оставляя её в командной строке для дальнейшего использования Tab+Tab выводит список команд. При наличии какого нибудь символа(-ов) выводит команды по введённым символам. ctrl+s стоп режим. Блокирует вывод на консоль. При этом все данные отображённые на экране остаются неизменными.

Конфигурационные файлы инициализации Bash

Когда Bash вызывается как интерактивная оболочка, первым делом он читает и вызывает команды из файла /etc/profile, если этот файл существует. После чтения этого файла, он смотрит следующие файлы в данном порядке:

/.profile, читает и вызывает команды из них. При выходе Bash читает и выполняет команды из файла

/.bash_logout. Также Bash использует команды из файла

/.bashrc. Это может быть отменено опцией –norc. Опция –rcfile заставит Bash использовать команды из

Синтаксис.

Оператор точка позволяет включать код находящийся в другом файле (после точки и перед именем загружаемого файла ставится пробел). Этот оператор часто используют для включения конфигурационных параметров, находящихся во внешних файлах. Двойные кавычки - экранирует пробелы в значении переменных, например echo "This UID=$UID". Знак $ и обратные кавычки (``), заключенные в двойные кавычки, сохраняют свойства специальных символов. Обратные одинарные кавычки `` служат для подстановки данных. В том месте где будет использована подстановка, будет подставляться то, что программа вывела бы на стандартный вывод. Вместо кавычек можно использовать круглые скобки со знаком $. Ниже команды идентичны: Символ ; Оболочка bash допускает последовательное выполнение команд - одна за другой. Для этого серия команд вводится одной строкой, и разделяется символом ;. В этом случае сначала выполняется команда 1, по ее завершении команда 2 и т.д. Например не типизированы (значения в переменных считаются строками, и только если переменная будет использоваться в математическом выражении, будет происходить проверка типа переменной), область видимости переменных - весь код программы (если переменная будет определена в функции, она все равно будет глобальной переменной и к ней можно будет обращаться из любого места программы), при обращении к неопределенной переменной не выдаются ошибки,

Настройка переменных среды bash

Введите команду export и два раза нажмите клавишу Таb, получим список переменных в этом сеансе bash, которые можно изменить или просмотреть командой echo. export - добавить переменную окружения pp=1. С помощью команды export присваивается переменной окружения определённое значение. Если переменная не существует, она будет немедленно создана. Если переменная уже имеет какое-то значение, оно будет потеряно.

Чтобы старое значение переменой не терялось, например нужно добавить в переменную PATH новый каталог, нужно использовать такую конструкцию:

Временно изменить редактор по умолчанию vi на nano

Для постоянного применения нового редактора, нужно добавить в строку файл $HOME/.bashrc

.bash_aliases

Для применения изменений выполните команду

Цветной терминал (консоль) в Linux

В Debian 8 достаточно для root раскоментировать строки в /root/.bashrc

Для пользовательской консоли включить force_color_prompt=yes в файле /home/<username>/.bashrc

При вызове команды или сценария с аргументами, имя команды и её аргументы являются позиционными переменными. Позиционными они называются, потому что внутри сценария обращение к ним происходит по позиции в командной строке.

$0 … $9 - при запуске допускается не более 9 параметров передавать в скрипт. Переменная $0 является именем скрипта и путь к скрипту. Для получения только имени скрипта смотрите код ниже: $? - код возврата программы. echo $? - вывести ошибку с которой закончил выполняться предыдущий скрипт (программа), например, выведет 0 (true) если имя пользователя root $* и $@ - все параметры командной строки. echo $* - выведет все значения параметров. $! - PID программы, запущенной в background режиме.

Для отладки скриптов bash можно использовать встроенный набор команд. Можно включать и выключать режим отладки используя следующие команды внутри скрипта:

set -x - (set -o xtrace) показывать команды и параметры, которые выполняются; set -v - (set -o verbose) печатает входные строки сразу по мере их считывания; set -f - (set -o noglob) отключается генерация имени файла с помощью метасимволов (подстановка).

В одном и том же скрипте вы можете включать и выключать отладочный режим столько раз, сколько это необходимо. Символ "-" используется для активации параметра командной оболочки, а символ "+" - для его деактивации.

Пример. Отладка прервется после первого выполнения цикла, что будет видно в результате выполнения этого скрипта.

При выполнении оператора read, на экране терминала появится курсор и пользователю даётся возможность ввести данные. Ввод завершается нажатием на кнопку "Enter". Если оператор read вызывать без указания переменной, он все данные, введенные пользователем, поместит в переменную по умолчанию - REPLAY.

select

Команда select используется для создания интерактивного меню вашего скрипта. Синтаксис команды select (можно применять утилиту tput):

Список слов, следующих за in, расширяется, генерируя список элементов. Если в операторе select список in list не задан, то в качестве списка будет использоваться список аргументов ($@), передаваемый сценарию или функции.

Пример 1.

/.b* выводится список файлов текущие директории начинающиеся на .b Из них формируется меню.

Пример 2

Пример 3

Команда test предназначена для проверки следующих типов условий:

проверка логических условий (логическое И - "&&", и логическое ИЛИ - "||").

С использованием этой команды формируются операторы выбора и цикла языка shell. Два возможных формата команды:

удобней пользоваться вторым вариантом, т.е. вместо того, чтобы писать перед условием слово "test", будем заключать условие в скобки, что более привычно для программистов. Например

На самом деле shell будет распознавать эту команду по открывающей скобке "[", как слову, соответствующему команде "test". Уже этого достаточно, чтобы предупредить о распространенной ошибке начинающих:

Между скобками и содержащимся в них условием обязательно должны быть пробелы.
[ -e /путь к / файлу ]- истина если файл существует
[ -s /путь к / файлу ]- истина если файл существует и имеет не нулевую длину
[ -f /путь к / файлу ]- истина если обычный файл существует
[ -h /путь к / файлу ]- истина если файл существует и является символической ссылкой
[ -w /путь к / файлу ]- истина если файл существует и и доступен для записи
[ -z STRING ]- истина, если длина строки "STRING" равна нулю
[ -n STRING ] или [ STRING ]- истина, если длина строки "STRING" ненулевая
[ STRING1 == STRING2 ]- истина, если строки равны; для более строгого соответствия POSIX вместо "==" можно использовать "="
[ STRING1 != STRING2 ]- истина, если строки не равны
[ STRING1 < STRING2 ]- истина, если в текущей локали при лексикографической сортировке "STRING1" оказывается перед "STRING2"
[ STRING1 > STRING2 ]- истина, если в текущей локали при лексикографической сортировке "STRING1" оказывается после "STRING2"
[ ARG1 OP ARG2 ]"OP" - один из операторов -eq, -ne, -lt, -le, -gt или -ge. Эти арифметические двоичные операторы возвращают значение истина, если операнд "ARG1" соответственно равен, не равен, меньше, меньше или равен, больше или больше или равен операнду "ARG2". "ARG1" и "ARG2" являются целыми числами
Проверка логических условий. Логическое И - "&&", и логическое ИЛИ - "||". Наиболее часто их применяют, когда необходимо проверить условие и, если оно истинно, выполнить одну команду или наоборот – не выполнять.

Поскольку проверяется логическое И, необходимо чтобы оба условия были истинной. И поэтому, если первое условие истина, то будет проверяться второе условие, т.е. будет вызвана программа rm.

В этом примере проверяется наличие файла file. Если его не существует (первое условие ЛОЖЬ), вызывается программа touch, которая его создает. Для того что бы получилась ИСТИНА, хотя бы одно из условий должно возвратить значение ИСТИНА. Поэтому, если файл существует (ИСТИНА), программа touch не будет вызываться, так как нет необходимости в проверки второго условия. Если файл не существует (ЛОЖЬ), необходимо проверить второе условие – будет выполнена программа touch.

Элементарная конструкция if выглядит так:

if проверяет код возврата выполнения программы: 0- выполнено, любая цифра отличная от нуля - программа не выполнилась.

Более короткая запись.

Если в качестве условия оператора if используется выражение, помещенное в квадратные скобки, для разрешения этого условия будет вызвана программа test. If будет проверять код возврата программы test

Циклы. Цикл for-in.

Оператор for-in предназначен для поочередного обращения к значениям перечисленным в списке. Каждое значение в списке поочерёдно присваивается переменной. Синтаксис следующий:

Если ключевое слово do находится в одной строке со словом for, то после списка аргументов (перед do) необходимо ставить точку с запятой.

Рассмотрим небольшой пример:

В переменную $i поочерёдно подставляются значения из списка и в цикле идёт работа со значением этой переменной.

Элементы в списке могут разделяться символами пробела или табуляции. Если список не помещается на одну строку, его можно продолжить на следующей, но перед тем как нажать на Enter, поставьте символ "\" для экранирования значения символа перевода строки.

Циклы. Цикл while-do.

Цикл while сложнее цикла for-in и используется для повторения команд, пока какое-то выражение истинно( код возврата = 0). В цикле while выполняются строки, расположенные между do и done, до тех пор, пока условие истинно или пока не встретится оператор break. Синтаксис оператора:

Пример работы цикла рассмотрим на следующем примере:

Цикл выполняется до тех пор, пока мы не введем что-то отличное от "yes". Между do и done можно описывать любые структуры, операторы и т.п., все они будут выполнятся в цикле. Но следует быть осторожным с этим циклом, если вы запустите на выполнение в нём какую-либо команду, без изменения переменной выражения, вы можете попасть в бесконечный цикл.

Теперь об условии истинности. После while, как и в условном операторе if-then-else можно вставлять любое выражение или команду, которая возвращает код возврата, и цикл будет исполнятся до тех пор, пока код возврата = 0! Оператор "[" аналог команды test, которая проверяет истинность условия, которое ей передали.

Циклы. Цикл until-do.

Оператор case всегда завершается ключевым словом esac.

Оператор case поочерёдно сравнивает строку с шаблонами. Если шаблон совпадает, то выполняется группа операторов, находящихся между шаблоном и специальными символами ";;". После выполнения всех строк управление передается операторам, находящимся за ключевым словом esac.

Пустой оператор ":" . Ничего не делает. Возвращает значение "0".

Функцию в shell можно определить двумя способами: при помощи оператора function или после имени функции написать открывающую и закрывающую круглые скобки. Тело функции располагается между фигурными скобками.

Транслирует список аргументов, из списка, в команды.

Пример. Демонстрация команды eval

getopts - это встроенная в shell команда, позволяющая разобрать командную строку, передаваемую программе. Она понимает только параметры, написанные в стиле Что такое POSIX, т.е "-v -t -f file" и т.п.

Команда trap позволяет переопределить стандартную реакцию программы на получаемые сигналы. Бывает необходимо защитить выполнение программы от прерывания. Формат команды trap:

Если в системе возникнут прерывания, чьи сигналы перечислены через пробел в "сигналы", то будет выполнен "список команд", после чего (если в списке команд не была выполнена команда "exit") управление вернется в точку прерывания и продолжится выполнение командного файла.

Наиболее часто приходится встречаться со следующими прерываниями, соответствующими сигналам:

Например, если перед прекращением по прерываниям выполнения какого то командного файла необходимо удалить файлы в "/tmp", то это может быть выполнено командой "trap":

которая предшествует прочим командам файла. Здесь, после удаления файлов будет осуществлён выход "exit" из командного файла.

Команда "trap" позволяет и просто игнорировать прерывания, если "список команд" пустой. Так например, если команда "cmd" выполняется очень долго, а пользователь решил отключиться от системы, то для продолжения выполнения этой команды можно написать, запустив команду в фоновом режиме:

Mar 2, 2017 11:17 · 471 words · 3 minute read console

Давайте разберемся с комбинациями клавиш, которые могут существенно упростить жизнь администраторам, работающим в консоли!

Все описанные комбинации работают в bash ‘e, часть из них проверил в csh и zsh . Коллеги также говорят, что они работают и в cisco (cisco 2600, 7500, 2800, 7200, 7600, catalyst 3560, 3750G, 3750E).

Комбинации клавиш с Ctrl:

  • Ctrl + a — перевод курсора в начало строки;
  • Ctrl + b — перевод курсора на 1 символ назад;
  • Ctrl + c — посылает программе SIGINT и прерывает текущую задачу;
  • Ctrl + d — удаляет символ под курсором;
  • Ctrl + e — перевод курсора в конец строки;
  • Ctrl + f — перевод курсора на 1 символ вперёд;
  • Ctrl + k — удаляет все символы до конца строки (EOL);
  • Ctrl + l — очищает экран (аналог команды clear );
  • Ctrl + r — поиск в истории;
  • Ctrl + j — остановка поиска и редактирование найденной команды;
  • Ctrl + t — замена символа под курсором на предыдущий;
  • Ctrl + u — удаляет все символы слева от курсора до начала строки;
  • Ctrl + w — удаляет символы слева от курсора до начала слова;
  • Ctrl + xx — переходит от текущей позиции курсора в начало строки и обратно;
  • Ctrl + x @ — показывает возможные дополнения имени хоста (берутся из /etc/hosts );
  • Ctrl + z — приостанавливает выполнение текущей задачи;
  • Ctrl + x; Ctrl + e — открывает $EDITOR для изменения введённой строки. После сохранения изменений, команда отправляется на исполнение.

Комбинации клавиш с Alt:

  • Alt + < — переход к первой команде в истории;
  • Alt + > — переход к последней команде в истории;
  • Alt + ? — выводит список возможных дополнений команды (аналог tab-tab );
  • Alt + * — вставляет все возможные дополнения команды в строку команд;
  • Alt + / — предлагает дополнить имя файла (аналогично tab-tab );
  • Alt + . — вставляет последний аргумент предыдущей команды;
  • Alt + b — перевод курсора влево на 1 слово;
  • Alt + c — делает букву под курсором большой, а остальные, до конца слова, маленькими;
  • Alt + d — удаляет символы с текущей позиции курсора и до конца слова;
  • Alt + f — перевод курсора вправо на 1 слово;
  • Alt + l — делает все буквы с текущей позиции курсора и до конца слова маленькими;
  • Alt + t — меняет местами слова под курсором и предыдущее;
  • Alt + u — переводит буквы с текущей позиции курсора и до конца слова в верхний регистр;
  • Alt + backspace — удаляет символы с текущей позиции курсора до начала слова.

Комбинации клавиш с использованием табуляции (двойное нажатие, далее tab-tab ):

Читайте также: