В этой статье наиболее полезные способы быстрой и продуктивной работы с коммандной строкой 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
Избежать добавления команды в историю можно начав её с пробела. Тогда исполненная инструкция в историю не попадает.