Недавно задался вопросом, как можно украсить сам интерпритатор bash, полазив по инету нашел несколько трюков.
Собственно часть статьи тут (
http://habrahabr.ru/blogs/linux/37272/)
ОсновыBash настраивается редактированием 3х текстовых файлов, которых находятся в домашней папке пользователя:
.bash_profile (.profile), .bashrc,.bash_logout.При отсутствии этих файлов используются настройки по-умолчанию, хранящиеся в файлах
/etc/profile и /etc/bash.bashrc.~/.bash_profile — читается при каждом входе в систему;
~/.bashrc — читается при каждом запуске дочернего шелла;
~/.bash_logout — читается при выходе из системы.
Таким образом, изменения внесенные в profile будут применены при следующем входе в систему, а в bashrc — при запуске нового терминала.
Частично изменить это можно с помощью команды source /config/file. В этом случае изменения будут применены немедленно.
Кастомизация приветствияВнешний вид системного приветствия изменяется с помощью изменения значения переменной PS1.
Редактировать мы будем
~/.bashrc.
По-умолчанию, системное приветствие выглядит примерно так:
user@hostname:~$что соответствует следующему значению переменной PS1:
PS1='\u@\h:\w$'
Рассмотрим список допустимых параметров:
Параметр | Значение |
\a | an ASCII bell character (07) |
\d | дата в формате ''День_недели, Месяц, Число''. |
\e | an ASCII escape character (033) |
\h | имя хоста до первой точки. |
\H | имя хоста |
\j | количество задач, работающих в шелле в настоящее время |
\l | название терминала |
\n | переход на новую строку |
\r | возврат каретки на начало строки |
\s | название шелла (будет выведено, например, «bash» |
\t | время в 24-часовом формате (ЧЧ: MM: СС) |
\T | время в 12-часовом формате (ЧЧ: ММ: СС) |
\@ | время в 12-часовом формате (AM/PM) |
\u | имя активного пользователя |
\v | номер версии bash |
\V | номер версии bash, номер релиза, номер патча |
\w | текущая директория (будет выведено в формате /path/to/work_dir_name) |
\W | имя текущей директории (будет выведено в формате «dir_name\») |
\! | номер команды в истории |
\# | системный номер команды |
\$ | if the effective UID is 0, a #, otherwise a $ |
\\ | обратный слэш |
\[ | начало последовательности непечатаемых символов (см. примеры в разделе «Цвета и стилизация». |
\] | конец последовательности символов |
$ ( ) | внешняя комманда |
Кроме стандартных параметров, при настройке приветствия можно использовать внешние скрипты и команды.
Пример:
Изменим стандартное приветствие так, чтобы дополнительно выводилась дата в формате (ДД/ММ/ГГГГ).
PS1='[\u@\h] $(date +%m/%d/%y) \w $'
Результат будет выглядеть следующим образом:
[user@host] 08/17/08 /work/dir $Цвета и стилизация— Внешний вид и стиль надписей в шелле настраивается с помощью ASCII-свойств.
Рассмотрим следующие таблицы:
Название стиля | Код |
Сбросить все свойства | 0 |
Повышенная яркость | 1 |
Пониженная яркость | 2 |
Подчеркнутый | 4 |
Нормальная яркость | 5 |
Инвертированный | 7 |
Скрытый | 8 |
ЦветаНазвание цвета | Текст | Фон |
Черный | 30 | 40 |
Красный | 31 | 41 |
Зеленый | 32 | 42 |
Желтый | 33 | 43 |
Синий | 34 | 44 |
Маджента | 35 | 45 |
Циановый | 36 | 46 |
Белый | 37 | 47 |
Свойства текста задаются в формате
[свойство_фона;цвет_фона;свойство_текста;цвет_текста]
В случае, если цвет фона менять не надо — первые два параметра можно опустить.
Пример:
\[\033[0;40;4;31m\]vrootmnelogi\[\033[0m\]!!111
Результатом будет
— вывод строки ''vrootmnelogi'' красным подчеркнутым текстом на черном фоне.
— вывод строки ''!!111'' стандартным для терминала шрифтом.
Структура примера:
\[\033[ m\] — устанавливает свойства последующего текста
0;40;4;31 — см. выше
\[\033[0m\] — сбрасывает свойства
Балуемся с EchoЭто уже само как то пришло.
Echo можно пихать куда угодно, я запихнул в начало файла bashrc
Пример:
echo '___|____|____|____|____|__
_|____|____|____|____|____|
___|____|____|____|____|__
_|____|____|____|____|____|
___|____|____|____|____|__
_|____|____|____|____|____|
___|____|бицца|____|____|
_|____| галавой |____|____|
___|____|сюда|____|____|__
_|____|____|____|____|____|
___|____|____|____|____|__
_|____|____|____|____|____|
___|____|____|____|____|__'
При запуске Bash будет выводится данное сообщение.
Если хорошо подумать можно написать еще много интересных вещей связанных с этим файлом.