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