Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Украшаем Bash  (Прочитано 14461 раз)

0 Пользователей и 2 Гостей просматривают эту тему.

Оффлайн zi0n

  • Автор темы
  • Участник
  • *
  • Сообщений: 188
    • Просмотр профиля
Украшаем Bash
« : 27 Апреля 2009, 21:57:42 »
Недавно задался вопросом, как можно украсить сам интерпритатор 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$'
Рассмотрим список допустимых параметров:
ПараметрЗначение
\aan ASCII bell character (07)
\dдата в формате ''День_недели, Месяц, Число''.
\ean 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

Цвета

Название цветаТекстФон
Черный3040
Красный3141
Зеленый3242
Желтый3343
Синий3444
Маджента3545
Циановый3646
Белый3747

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

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

Пример:
\[\033[0;40;4;31m\]vrootmnelogi\[\033[0m\]!!111

Результатом будет
— вывод строки ''vrootmnelogi'' красным подчеркнутым текстом на черном фоне.
— вывод строки ''!!111'' стандартным для терминала шрифтом.

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

Балуемся с Echo

Это уже само как то пришло.
Echo можно пихать куда угодно, я запихнул в начало файла bashrc

Пример:

echo '___|____|____|____|____|__
_|____|____|____|____|____|
___|____|____|____|____|__
_|____|____|____|____|____|
___|____|____|____|____|__
_|____|____|____|____|____|
___|____|бицца|____|____|
_|____| галавой |____|____|
___|____|сюда|____|____|__
_|____|____|____|____|____|
___|____|____|____|____|__
_|____|____|____|____|____|
___|____|____|____|____|__'

При запуске Bash будет выводится данное сообщение.

Если хорошо подумать можно написать еще много интересных вещей связанных с этим файлом.
« Последнее редактирование: 27 Апреля 2009, 21:59:21 от zi0n »

Оффлайн s0n1k

  • Активист
  • *
  • Сообщений: 269
    • Просмотр профиля
Re: Украшаем Bash
« Ответ #1 : 21 Мая 2009, 20:26:50 »
Меня вот интересует что ковырять в ~/.bashrc чтобы снова заработала остановка выполнения команы по ^C

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Украшаем Bash
« Ответ #2 : 21 Мая 2009, 21:23:57 »
s0n1k, это наверно в настройках хоткеев gnome-terminal.

Оффлайн s0n1k

  • Активист
  • *
  • Сообщений: 269
    • Просмотр профиля
Re: Украшаем Bash
« Ответ #3 : 22 Мая 2009, 00:12:18 »
Там потыкал - нет, не работает.

Пользователь решил продолжить мысль 21 Мая 2009, 22:18:34:
Цитировать
sonic@ubuntu:~$ cat /dev/urandom | grep ubuntu
ссссссссссссссчччччччччччччяяяяяяяяяяяяяяяя

Вот то что после команды, тоесть всяик там "ссссссссссссссчччччччччччччяяяяяяяяяяяяяяяя" это результат нажатий в гномовском терминале CTRL + [Z,X,C]

Пользователь решил продолжить мысль 22 Мая 2009, 00:20:10:
Хм, это становица интереснее...
xterm:
Цитировать
sonic@ubuntu:~$ cat /dev/urandom | grep ubuntu
^C
sonic@ubuntu:~$
« Последнее редактирование: 22 Мая 2009, 00:20:10 от s0n1k »

 

Страница сгенерирована за 0.042 секунд. Запросов: 25.