"Горячие клавиши" 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
— имя текущего хоста (компьютера).