Раскраска логин-шелла

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Гость
проходил мимо

Раскраска логин-шелла

Непрочитанное сообщение Гость » 2012-09-23 5:34:06

При добавлении в /etc/profile следующий код раскрасит любой sh-совместимый логин-шелл (sh, bash, и т.д.) для пользователя:

Код: Выделить всё

bg_black=40
fg_red=31
fg_green=32
fg_yellow=33
fg_magenta=35
fg_cyan=36

case `id -u` in
 0) PS1=`echo -e '\E[${fg_red};${bg_black}m'"\033[1m# \033[0m"`;;
 *) PS1=`echo -e '\E[${fg_green};${bg_black}m'"\033[1m> \033[0m"`;;
esac
Но как сделать чтобы зайдя через su или sudo цвет приглашения сохранялся?
Последний раз редактировалось f_andrey 2012-09-23 8:51:28, всего редактировалось 1 раз.
Причина: Автору, выбирайте пожалуйста раздел соответствуюший тематике вашего сообщения.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Гость
проходил мимо

Re: Раскраска логин-шелла

Непрочитанное сообщение Гость » 2012-09-23 6:11:17

С sudo прокатывает такая штука в /etc/profile:

Код: Выделить всё

export SUDO_PS1=`echo -e '\E[${fg_yellow};${bg_black}m'"\033[1m# \033[0m"`
Но только один (первый) раз! Если теперь находясь в судо-шелле запустить sh, то получается такая некрасивость:

Код: Выделить всё

[color=#00BF00]>[/color] sudo -s
[color=#FFFF00]#[/color] sh
fg_yellow};${bg_black}m[color=#FFFF00]#[/color]
Как сделать просто эскейп без echo в приглашении который будет работать во всех sh-совместимых шеллах?

Гость
проходил мимо

Re: Раскраска логин-шелла

Непрочитанное сообщение Гость » 2012-09-23 6:16:28

P.S.: шелл юзверя - баш, шелл рута - системный sh.
P.P.S.: не знал что в коде теги не работают. :cz2:

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35456
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Раскраска логин-шелла

Непрочитанное сообщение Alex Keda » 2012-09-23 15:25:35

код затем и придуман =)
Убей их всех! Бог потом рассортирует...

Гость
проходил мимо

Re: Раскраска логин-шелла

Непрочитанное сообщение Гость » 2012-09-23 22:22:06

Разобрался: оказалось, что во фряхе родной /bin/sh - это Korn Shell.
у него эскейп-коды заключаются в $' '

И чтобы цвета были во всех логин-шеллах в системе надо прописать:

Код: Выделить всё

# red=31
# green=32
# yellow=33
# magenta=35
# cyan=36
# white=37

export SUDO_PS1=$'\e[33m'"# "$'\e[0m'

case `id -u` in
 0) PS1=$'\e[31m'"# "$'\e[0m'
 ;;
 *) PS1=$'\e[32m'"> "$'\e[0m'
 ;;
esac
так у юзеров будет >, у рута #, а при sudo -s должно быть #. но у меня почему то коричневый.
вставить в эскейп-коды переменные не получилось :(