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

Я решил потрясти интернет на предмет горячих клавиш shell - а то кроме <Ctrl>-R особо ничем не пользовался. Информации оказалось довольно много, но в разных местах - разная и иногда даже противоречивая. Так что пришлось переводить, проверять работу и систематизировать. Зато список получился довольно объёмным, теперь даже сам буду пользоваться :-)

Горячие клавиши bash можно разделить на несколько больших групп:

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 в последней команде и выполнить результат

Интересно, удастся ли найти ещё что-то? :-)