четверг, 29 января 2009 г.

Красивая консоль

Bash is the shell, or command language interpreter, for the gnu operating system. The name is an acronym for the ‘Bourne-Again SHell’, a pun on Stephen Bourne, the author of the direct ancestor of the current Unix shell sh, which appeared in the Seventh Edition Bell Labs Research version of Unix.

Основы

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:

Рассмотрим список допустимых параметров:

Параметр - Значение
\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 $
\\ - обратный слэш
\[ - начало последовательности непечатаемых символов (см. примеры в разделе «Цвета и стилизация».
\] - конец последовательности символов
$ ( ) - внешняя комманда

Кроме стандартных параметров, при настройке приветствия можно использовать внешние скрипты и команды.

Пример:

Изменим стандартное приветствие так, чтобы дополнительно выводилась дата в формате (ДД/ММ/ГГГГ).
Результат будет выглядеть следующим образом:

Цвета и стилизация

— Внешний вид и стиль надписей в шелле настраивается с помощью ASCII-свойств.

Рассмотрим следующие таблицы:

Название стиля - Код
Сбросить все свойства - 0
Повышенная яркость - 1
Пониженная яркость - 2
Подчеркнутый - 4
Нормальная яркость - 5
Инвертированный - 7
Скрытый - 8

Цвета - Название цвета Текст Фон

Черный - 30 40
Красный - 31 41
Зеленый - 32 42
Желтый - 33 43
Синий - 34 44
Маджента - 35 45
Циановый - 36 46
Белый - 37 47

Свойства текста задаются в формате [свойство_фона;цвет_фона;свойство_текста;цвет_текста].

В случае, если цвет фона менять не надо — первые два параметра можно опустить.

Пример:

Результатом будет

— вывод строки ''vrootmnelogi'' красным подчеркнутым текстом на черном фоне.

— вывод строки ''!!111'' стандартным для терминала шрифтом.

Структура примера:

\[\033[ m\] — устанавливает свойства последующего текста
0;40;4;31 — см. выше
\[\033[0m\] — сбрасывает свойства

Настройка цветного вывода ls

Делается это следующим образом:

1. Открываем ~/.bashrc и дописываем:

if [ «$TERM» != «dumb» ]; then

[ -e «$HOME/.dircolors» ] && DIR_COLORS=«$HOME/.dircolors»

[ -e «$DIR_COLORS» ] || DIR_COLORS=«»

eval «`dircolors -b $DIR_COLORS`»

alias ls='ls —color=auto'2. Импортируем и открываем для редактирования стандартную цветовую схему:
dircolors -p ~/.dircolors
nano ~/.dircolors Выгядит она примерно так:.tgz 01;31

.svgz 01;31

.arj 01;31

.taz 01;31

.lzh 01;31

.lzma 01;31

3. Меняем цвета и стили, сверяясь с таблицей из предыдущего раздела.

4. Сохраняем изменения, запускаем новый шелл.

Если добавить в файл .bashrc, что в домашнем каталоге, строчку:
PS1="\[\033[0;33;40m[\t]\033 \[\033[1;31;40m[\033[1;32;40m\u@\h:\033[1;33;40m\w\033[1;31;40m]\033[1;35;40m $\033[0;37;0m\] " export PS1
То привычный вид черно-белой консоли становится интересней :-)

PS1='\[\033[02;34m\]\D{%H.%M} \u@\h\[\033[00m\] \w\n\$ '
PS1 лучше всего задавать в $HOME/.bashrc

Добавляем для обычного пользователя следующее:
COLOR1="\[\033[1;32;40m\]" #зеленый
COLOR2="\[\033[1;34;40m\]" #синий
COLOR3="\[\033[1;37;40m\]" #белый
PS1="$COLOR1\u@\h: $COLOR2\w \$ $COLOR3"

COLOR1="\[\033[1;31;40m\]" #красный
COLOR2="\[\033[1;34;40m\]" #синий
COLOR3="\[\033[1;37;40m\]" #белый
PS1="$COLOR1\u@\h: $COLOR2\w \$ $COLOR3"

Цветные man страницы

Устанавливаем:
apt-get install most

в .bashrc добавим:
export PAGER=most

и после перезапуска (login/logout или в сразу в консоли сделайте export) проверяем:
$man dpkg

man most - для дополнительной инфы


Комментариев нет:

Отправить комментарий