Полезные комбинации клавиш (хоткеи) и небольшие хитрости, которые сделают Вашу работу в Linux более эффективной.
Горячие клавиши» Bash с Ctrl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
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, для ввода команды. Полезно для многострочных команд. |
Изменить заглавные на строчные и наоборот
1 2 3 |
Esc + u — преобразовать буквы от курсора до конца строки в заглавные буквы. Esc + l — преобразовать буквы от курсора до конца строки в нижний регистр. Esc + c — заменить букву под курсором на заглавную. |
Запустить предыдущую команду ещё раз
1 2 3 4 |
Запустить команду из истории по номеру (например, 53) !53 !! — запуск последней команды. sudo !! — запустить предыдущую команду с sudo. |
Запускает последнюю команду и меняет какой-то параметр. Например, меняем
1 2 3 4 5 6 7 8 9 10 11 |
"aaa" на "bbb": # Последняя команда: echo 'aaa' $ ^aaa^bbb $ echo 'bbb' bbb Важно: предыдущая команда заменит только первое вхождение "aaa". Если вы хотите заменить все вхождения, используйте :&: ^aaa^bbb^:& # или !!:gs/aaa/bbb/ |
Запустить последнюю команду, которая начинается с…
1 2 3 4 5 |
Например, до этого в истории команд была команда cat filename: !cat # или !c — запускает cat filename ещё раз. |
Указание файлов по шаблону в Bash
1 2 3 4 |
/etc/pa*wd → /etc/passwd — символ * означает "несколько любых символов". /b?n/?at → /bin/cat — символ ? означает "один любой символ". ls -l [a-z]* — вывести список файлов, содержащих только буквы латинского алфавита. В квадратных скобках [] перечисляются символы, которые будут искаться. А символ * после [] означает "хоть сколько раз". ls {*.sh,*.py} — вывести все .sh и .py файлы. {} используется для группировки нескольких шаблонов по принципу "или". |
Полезные переменные окружения Bash
Короткие переменные:
1 2 3 4 5 6 7 |
$0 — оболочка командной строки или путь до запускаемого файла. $1, $2, $3, ... — аргументы запуска скрипта. $# — число аргументов, переданных в скрипт из терминала. $? — код завершения последней команды. $- — текущие опции, установленные для оболочки. $$ — идентификатор текущего процесса. $! — идентификатор процесса, завершённого последним. |
Более длинные, но тоже полезные переменные:
1 2 3 4 5 6 7 8 |
$DESKTOP_SESSION — текущий менеджер дисплеев. $EDITOR — редактор текста по умолчанию. $LANG — используемый системой язык. $PATH — список директорий, в которых будут искаться исполняемые файлы. $PWD — текущая директория. $SHELL — текущая оболочка командной строки. $USER — имя текущего пользователя. $HOSTNAME — имя текущего хоста (компьютера). |