special
  •  #StandWithUkraine Ukraine flag |
  • ~507650+1390
     Enemy losses on 828th day of War in Ukraine

This webpage has been robot translated, sorry for typos if any. To view the original content of the page, simply replace the translation subdomain with www in the address bar or use this link.

Горячие клавиши в шелле

Горячие клавиши в шелле

Краткое вступление

В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.

Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).

Сочетания

Сначала немного сочетаний клавиш с ctrl.

  • Ctrl + a — переход в начало строки (cisco, csh, zsh)
  • Ctrl + b — переход на 1 символ назад (cisco, csh, zsh)
  • Ctrl + c — посылает программе SIGINT. Обычно, прерывает текущее задание (csh, zsh)
  • Ctrl + d — удаляет символ под курсором (аналог delete) (cisco, csh, zsh)
  • Ctrl + e — переход к концу строки (cisco, csh, zsh)
  • Ctrl + f — переход на 1 символ вперёд (cisco, csh, zsh)
  • Ctrl + k — удаляет всё, до конца строки (EOL, а не на экране!) (cisco, csh, zsh)
  • Ctrl + l — очищает экран. Аналог команды clear. (csh, zsh)
  • Ctrl + r — поиск по истории. Повторение поиска (листание результатов поиска). То есть инкрементальный поиск. (zsh)
  • Ctrl + j — прекращает поиск и позволяет отредактировать найденную команду. Если поиск не производился, то аналогично нажатию return. (в zsh выполняет команду)
  • Ctrl + t — меняет символ под курсором на предыдущий. Или, если хотите, тянет предыдущий символ к концу строки. (cisco, csh, zsh)
  • Ctrl + u — удаляет все символы слева от курсора до начала строки. (cisco, в csh, zsh удаляет всю строку)
  • Ctrl + w — удаляет символы слева от курсора до начала слова. (cisco, csh, zsh)
  • Ctrl + xx — переходит от текущей позиции курса в начало строки и обратно. На циске работает аналогично ctrl + u. (csh)
  • Ctrl + x @ — показывает возможные дополнения имени хоста (имена берутся из /etc/hosts)
  • Ctrl + z — suspend'ит текущую задачу (csh, zsh)
  • Ctrl + x; Ctrl + e — открывает $EDITOR для изменения введённой строки. После сохранения изменений, команда отправляется на исполнение. Если переменная не задана, то открывается системный текстовый редактор (для линукса это, зачастую, nano)

Теперь немного о сочетаниях с альтом.

  • Alt + < — переход к первой команде в истории команд (zsh)
  • Alt + > — переход к последней команде в истории
  • Alt +? — показывает список возможных дополнений команды(аналогично tab-tab) (в csh, zsh аналог which string)
  • Alt + * — вставляет все возможные дополнений команды в строку команд
  • Alt + / — пытается дополнить имя файла (аналогично табуляции)
  • Alt +. — вставляет последний аргумент предыдущей команды (аналог !$, только не надо делать :p, чтобы проверить )
  • Alt + b — сдвигает курсор влево на 1 слово (cisco, csh, zsh)
  • Alt + c — делает букву под курсором большой, а остальные, до конца слова, маленькими. (cisco, csh, zsh)
  • Alt + d — удаляет символы с текущей позиции курсора и до конца слова. (cisco, csh, zsh)
  • Alt + f — передвигает курсор на одно слово вперёд (cisco, csh, zsh)
  • Alt + l — делает все буквы с текущей позиции курсора и до конца слова маленькими (cisco, csh, zsh)
  • Alt + t — меняет местами слова под курсором и предыдущее (zsh)
  • Alt + u — переводит буквы с текущей позиции курсора и до конца слова в верхний регистр (cisco, csh, zsh)
  • Alt + back-space — удаляет символы с текущей позиции курсора до начала слова (cisco, csh, zsh)

В следующем абзаце я, для краткости, буду писать «2Т» чтобы обозначить двойное нажатие табуляции.

  • 2T — дополнение команды. Если нажать при пустой строке — выведет список всех доступных команд
  • (string)2T — выведет список возможных дополнений
  • (dir)2T — покажет подпапки папки dir
  • *2T — покажет подпапки исключая скрытые (имена которых начинаются с точки)
  • ~2T — выведет всех пользователей из /etc/passwd. Дополнив имя пользователя можно перейти в его домашний каталог. Например ?~oxpa/
  • $2T — выводит список дополнений для системных переменных
  • @2T — дополняет имена хостов содержащимися в /etc/hosts
  • =2T — листинг текущей директории, аналогичный ls.

Небольшое заключение

Так как в своей работе я чаще всего использую bash и cisco'вский шелл, то просто подписал сочетания, которые, я знаю, работают и для других шеллов. Возможности csh, zsh наверняка не меньше башевских, просто я меньше с ними работал.

Вышеприведённый список будет неправильно показывать без пояснения: все эти горячие клавиши в bash'e можно переназначать. Есть действия, которые по умолчанию не назначены на горячие клавиши. Подобные «трюки» описаны в руководстве bash'a, которое я рекомендую прочитать всем заинтересовавшимся.


Created/Updated: 25.05.2018