"Горячие клавиши" Bash с Ctrl
Ctrl + n— то же самое, что и стрелка вниз.Ctrl + p— то же самое, что и стрелка вверх.Ctrl + r— поиск по предыдущим командам из истории команд (history). Продолжайте нажиматьCtrl + r, чтобы искать дальше.Ctrl + Shift + r— поиск в другую сторону.Ctrl + s— остановить вывод в терминал.Ctrl + q— восстановить вывод в терминал послеCtrl + s.Ctrl + a— перейти к началу строки (аналог клавишиHome).Ctrl + e— перейти к концу строки (аналог клавишиEnd).Ctrl + d— если вы ввели что-то, тоCtrl + dудаляет символ под курсором. В противном случае означает конец ввода и завершает текущую сессию Bash.Ctrl + k— удалить весь текст от курсора до конца строки.Ctrl + x+backspace— удалить весь текст от начала строки до курсора.Ctrl + t— переставить символ до курсора на символ под курсором. НажмитеEsc + tдля перестановки двух слов до курсора.Ctrl + w— удалить слово до курсора; затемCtrl + y, чтобы вставить его.Ctrl + u— удалить строку перед курсором;Ctrl + yдля вставки его.Ctrl + _— отменить ввод.Ctrl + l— очищает окно терминала. То же самое, что и clear.Ctrl + x+Ctrl + e— запускает редактор, определённый в переменной $EDITOR, для ввода команды. Полезно для многострочных команд.
Изменить заглавные на строчные и наоборот
Esc + u— преобразовать буквы от курсора до конца строки в заглавные буквы.Esc + l— преобразовать буквы от курсора до конца строки в нижний регистр.Esc + c— заменить букву под курсором на заглавную.
Запустить предыдущую команду ещё раз
Запустить команду из истории по номеру (например, 53)
!53
!!— запуск последней команды.sudo !!— запустить предыдущую команду с sudo.
Запускает последнюю команду и меняет какой-то параметр. Например, меняем "aaa" на "bbb":
# Последняя команда: echo 'aaa'
$ ^aaa^bbb
$ echo 'bbb'
bbb
Важно: предыдущая команда заменит только первое вхождение "aaa".
Если вы хотите заменить все вхождения, используйте `:&`:
^aaa^bbb^:&
# или
!!:gs/aaa/bbb/
Запустить последнюю команду, которая начинается с...
Например, до этого в истории команд была команда cat filename:
!cat
# или
!c
— запускает cat filename ещё раз.
Указание файлов по шаблону в Bash
/etc/pa*wd→/etc/passwd— символ*означает "несколько любых символов"./b?n/?at→/bin/cat— символ?означает "один любой символ".ls -l [a-z]*— вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках[]перечисляются символы, которые будут искаться. А символ*после[]означает "хоть сколько раз".ls {*.sh,*.py}— вывести все .sh и .py файлы.{}используется для группировки нескольких шаблонов по принципу "или".
Полезные переменные окружения Bash
Короткие переменные:
$0— оболочка командной строки или путь до запускаемого файла.$1,$2,$3, ... — аргументы запуска скрипта.$#— число аргументов, переданных в скрипт из терминала.$?— код завершения последней команды.$-— текущие опции, установленные для оболочки.$$— идентификатор текущего процесса.$!— идентификатор процесса, завершённого последним.
Более длинные, но тоже полезные переменные:
$DESKTOP_SESSION— текущий менеджер дисплеев.$EDITOR— редактор текста по умолчанию.$LANG— используемый системой язык.$PATH— список директорий, в которых будут искаться исполняемые файлы.$PWD— текущая директория.$SHELL— текущая оболочка командной строки.$USER— имя текущего пользователя.$HOSTNAME— имя текущего хоста (компьютера).