Pull to refresh

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

Reading time 3 min
Views 113K
Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
cat /dev/cheat-sheet >> /dev/head

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


В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в 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/ — домашний каталог пользователя oxpa
$2T — выводит список дополнений для системных переменных
@2T — дополняет имена хостов содержащимися в /etc/hosts
=2T — листинг текущей директории, аналогичный ls.

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



Так как в своей работе я чаще всего использую bash и cisco'вский шелл, то просто подписал сочетания, которые, я знаю, работают и для других шеллов. Возможности csh, zsh наверняка не меньше башевских, просто я меньше с ними работал.
Вышеприведённый список будет неправильно показывать без пояснения: все эти горячие клавиши в bash'e можно переназначать. Есть действия, которые по умолчанию не назначены на горячие клавиши. Подобные «трюки» описаны в руководстве bash'a, которое я рекомендую прочитать всем заинтересовавшимся.
Tags:
Hubs:
+140
Comments 59
Comments Comments 59

Articles