Это не статья, а краткий how to по кастомизации bash'a.
Думаю каждый, не очень опытный, пользователь производных от линукса систем работает с консолью, и иногда сталкивается с разными проблемами или неудобностями. Однажды, точнее сегодня утром, я подумал «хватит это терпеть» и нагуглил путь к интересному файлу, который помог мне решить все мои проблемы:
~/.bashrc
Если вы о нем не знали, то загляните под кат, там найдете пару костылей
Небольшое оглавление:
1. Подсветка
2. Алиасы
3. Функции
3. Все сломалось, как вернуть?
Подсветка
Проблема возникла при частом подключении по ssh на разные сервера, иногда просто забывал на каком я сервере и сначала вводил что-то не то. Подумав решил, что данную проблему исправит подсветка имени пользователя, машины и пути. Было:
Стало:
Для начала определим цвета:
COLOR_RED='e[1;31m'
COLOR_GREEN='e[1;32m'
NONE_COLOR='e[0m'
На чвертьминуту остановимся на определении цвета: 'e[1;31m' Сам цвет тут это число "31", изменив цифру, как ни странно, изменится цвет, так что если вам надо дргие цвета — подбирайте; предшествует числу цвета цифра жирности: "1" если изменить её на «0», то шрифт будет не жирный, а обычный(правда смотрится он не очень).
Собственно, как поменять цвет для вывода имени пользователя и прочих:
export PS1="[${COLOR_GREEN}]u@h:w $ [$(tput sgr0)]"
Кодом выше мы закрасили все в зелёный. С этим нам помогло подстановка строки "${COLOR_GREEN}" в нужное место.
Все это хорошо, но если выделить другим цветом путь, то будет более наглядно:
export PS1="[${COLOR_GREEN}]u@h:${COLOR_RED}w ${COLOR_GREEN}$ [$(tput sgr0)]"
Алиасы
Аилас — это замена одной команды на другую, например по дефолту ubuntu предлагает такие алиасы:
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
Исходя из строк выше можно сделать вывод, что алиас задается так:
alias вводимая_команда='исполняемая_команда с_параметрами_можно'
Например можно для удобства сделать такую замену:
alias my='mysql -u USER_NAME -p WORK_DATABASE'
Функции
Функции, это чучуть круче алиасов, тут можно описывать множество действий. Объявляются они так:
function foo()
{
# Команды
}
Например:
function hello()
{
echo -e "${GREEN}И тебе привет${NC}"
}
Что интересно, оно даже понимает кирилицу в имени ф-ции:
function ололо()
{
echo -e "${GREEN}Трололо${NC}"
}
Так что можно русифицировать bash))
Все сломалось, как вернуть?
У многих бывает:)
cp .bashrc-backup .bashrc
Вот и все. Собственно, по запросу «Customizing Bash» в гугле можно найти еще много чего где обо всем этом можно нормально почитать.
Автор: IgaIst