23 дек. 2008 г.

Bash HotKeys Tutorial

Давно уже собирался или найти изобретенный велосипед, или скомпилить на коленке свой, тьфу, забыл export $велосипед = bash_hotkey_manual. Вот. И сегодня, поискивая вроде бы совсем другой сабж, наткнулся на очень приличную компиляцию горячих клавиш. Это конечно не избавляет от чтения официальной документации, но в качестве шпаргалки для повседневного использования очень даже ничего. Оговариваюсь, что придумал и собрал не сам, а цельностянул отседова, за что аффтару респект и трям. Итак, сопсно, сабж:
CTRL-команды:
Ctrl + a - переход к началу строки
Ctrl + b - аналог стрелки влево
Ctrl + c - отменить редактирование команды или прекратить работу
Ctrl + d - аналог Delete. Если строка пустая - выход из shell
Ctrl + e - переход к концу строки
Ctrl + f - аналог стрелки вправо
Ctrl + g - выход из режима дополнения
Ctrl + h - аналог BackSpace
Ctrl + i - аналог Tab
Ctrl + k - удалить всё до конца строки
Ctrl + l - очистить экран (набранная строка и даже позиция курсора остаётся)
Ctrl + r -  поиск по истории набранных команд
Ctrl + R - поиск по истории набранных команд назад (это когда есть несколько вариантов и проскочили нужный)
Ctrl + t - поменять местами текущий символ с предыдущим
Ctrl + u - удалить всё до начала строки
Ctrl + v - преобразует следующую клавишу в её символьное отображение (Enter - ^M, Esc - ^[ и т.д.)
Ctrl + w - удалить от курсора до начала слова
Ctrl + x дважды - скачок между началом строки и текущей позицией курсора
Ctrl + x @ - Показывает возможные варианты дополнения доменного имени
Ctrl + y - вставить из буфера (все удаляемое по горячим клавишам удаляется не просто так, а в буфер)
Ctrl + z - притормозить/остановить выполнение команды в фон
Ctrl + _ - отмена последнего изменения
ALT-команды
Alt + < - к первой команде в истории (вообще к самой первой в .bash_history) Alt + > - к последней команде в истории
Alt + ? - показать весь список вариантов дополнения (аналог 2Т - см. ниже)
Alt + * - вставить все возможные варианты дополнения
Alt + / - попытатся дополнить имя файла (из имеющихся в текущем каталоге)
Alt + . - вставить последний аргумент из предыдущей команды
Alt + b - влево на слово
Alt + c - сделать первую букву слова заглавной (и перейти к следующему слову)
Alt + d - удалить от текущей позиции до конца слова
Alt + f - вправо на слово
Alt + l - сделать все буквы слова строчными (или часть букв справа от курсора до конца слова) и перейти к следующему слову
Alt + n - искать по истории (но не сразу, а после полного ввода и нажатия Ентер)
Alt + p - искать по истории назад
Alt + r - очистить всю строку
Alt + t - поменять слова местами
Alt + u - сделать все буквы заглавными от текущей позиции до конца слова
Alt + BackSpace - Удалить от текущей позиции до начала слова
Esc-команды
Esc+d - удалить от курсора до конца слова
Esc+f - вправо на слово
Esc+b - влево на слово
Esc+t - поменять местами слова
Tab-команды
2T обозначает дважды нажатый Tab
2T - все доступные команды (это тоже все знают)
(string)2T - все доступные команды начинающиеся на string
/2T - все каталоги, включая скрытые. Для текущего надо набрать ./2Т
*2T - каталоги, кроме скрытых
~2T - все пользователи, присутствющие в /etc/passwd
~f2T - все пользователи, присутствющие в /etc/passwd, начинающиеся на f
$2T - все системные переменные
@2T - все записи в /etc/hosts
=2T - вывод наподобии ls или dir
Просто команды
!! - выполнить последнюю команду в истории
!abc - выполнить последнюю команду в истории, начинающуюся на abc
!a:p - напечатать последнюю команду в истории, начинающуюся на a
!n - выполнить n-ную команду в истории
!$ - посдедний аргумент последней команды
!^ - первый аргумент последней команды
^abc^xyz - заменить abc на xyz в последней команде и выполнить результат
Бум учить и пользовать ;)
В заключение - классный ресурс по сабжу различных bash-трюков, реально упрощающих жизнь.

7 комментариев:

  1. отличный tutorial, что доктор прописал !!!

    ОтветитьУдалить
  2. поправка: Сtrl+K удаляет все от начала строки до курсора, а не до конца строки. (это делает Ctrl+U)

    ОтветитьУдалить
  3. delayer@crazytower:~$ bash --version
    GNU bash, version 3.2.39(1)-release (i486-pc-linux-gnu)
    Copyright (C) 2007 Free Software Foundation, Inc.
    Проверил - ctrl + K -> удаляет от курсора до конца строки, ctrl + U -> от курсора до начала строки

    ОтветитьУдалить
  4. Alt+l делает все буквы слова строчными, а не только первую, исправьте, пожалуйста (по крайней мере, в bash 4.5.1).

    ОтветитьУдалить
  5. esc-p -- like ctrl-r lets you search through the previously given commands.
    esc-. -- gives the last command you typed.

    ОтветитьУдалить
  6. esc-p -- like ctrl-r lets you search through the previously given commands.
    esc-. -- gives the last command you typed.

    ОтветитьУдалить