Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
![cat /dev/cheat-sheet >> /dev/head](https://habrastorage.org/r/w1560/getpro/habr/post_images/f34/6dd/f1f/f346ddf1f195e613d686ffa964342b3a.png)
В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в 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, которое я рекомендую прочитать всем заинтересовавшимся.
![cat /dev/cheat-sheet >> /dev/head](https://habrastorage.org/getpro/habr/post_images/f34/6dd/f1f/f346ddf1f195e613d686ffa964342b3a.png)
Краткое вступление
В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в 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, которое я рекомендую прочитать всем заинтересовавшимся.