В этой статье наиболее полезные способы быстрой и продуктивной работы с коммандной строкой bash. Предполагается, что читатель уже несколько знаком с коммандной строкой, поэтому совсем тривиальных вещей, вроде использования Tab
для автодополнения, здесь нет. В комментарии приветствуются другие полезные «твики» bash
.
Алиасы
Листинги
1 2 | alias ll= 'ls -l' alias l= 'ls -lA' |
Часто эти опции уже включены в .bashrc
, но закомментированы. В Debian
, например, в конфиге это реализовано так
1 2 3 4 5 | # export LS_OPTIONS='--color=auto' # eval "`dircolors`" # alias ls='ls $LS_OPTIONS' # alias ll='ls $LS_OPTIONS -l' # alias l='ls $LS_OPTIONS -lA' |
Остается раскомментировать нужные строчки. При этом в нагрузку получаем цветовую подсветку директорий.
Часто используемая команда по поиску процесса с определенным именем:
1 | alias pg= 'ps aux | grep ' |
Просмотр наибольших файлов/директорий в гигабайтах и мегабайтах соответственно:
1 2 | alias dug= 'du -h | grep ^[0-9.]*G | sort -rn' alias dum= 'du -h | grep ^[0-9.]*M | sort -rn' |
Полезности для скриптов
Иногда бывает полезным поймать сигналы, посылаемые ОС скрипту. Например, при нажатии Ctrl-C
.
1 2 | trap control_c SIGINT trap control_c SIGTERM |
Часто используемые команды
Часто бывает необходимо найти файл, в котором имеется определённая подстрока. Сделать это можно с помощью стандарной утилиты grep
командой:
1 | grep -rl |
Горячие клавиши bash
Ctrl+w
— удаляет слово перед курсором в строке,Ctrl+u
— удаляет все символы до начала строки,Ctrl+k
— удаляет все символы до конца строки,Ctrl+y
— вставляет удалённые вышеуказанными сочетаниями символы,Ctrl+r
— производит обратный поиск по истории команд,Ctrl+l
— очищает экран,Ctrl+z
— останавливает исполнение текущей команды (продолжить можно с помощьюbg
илиfg
),Ctrl+d
— выход из сессии.
История команд bash
В администрировании Linux (да и UNIX тоже) очень удобно пользоваться командами из истории. Содержание истории просматривается с помощью вызова history
. Команду из истории можно выполнить по её номеру в списке например так:
1 2 | history | less !45 |
При этом последняя команда вызывается более просто, без указания номера выполнением !!
.
Обратный поиск по истории команд вызывается с помощью Ctrl+R
, например:
1 | (reverse-i-search)`smart': smartctl -x /dev/sdd | less |
Взять аргументы из одной из предыдущих команд можно сочетанием Alt+.
.
По умолчанию длина истории небольшая и если нет повышенных требований к безопасности её можно несколько увеличить добавлением в .bashrc
строки:
1 | export HISTFILESIZE=5000 |
Длинная история несколько понижает безопасность системы, особенно если в неё попадают всякие «интересные» команды. Поэтому, на критичных системах размер истории большой делать не стоит. Сбросить историю можно
1 | history -c |
Избежать добавления команды в историю можно начав её с пробела. Тогда исполненная инструкция в историю не попадает.