Назад | Перейти на главную страницу

Цвета подсказки Bash Ubuntu

Я пытаюсь использовать простой сценарий оболочки на базовой установке сервера Ubuntu 12.04, чтобы установить цвета подсказок для пользователей в системе.

Я бы хотел, чтобы Puppet поместил файл color.sh в /etc/profile.d/ - с разрешением 744

но файл вообще не получен пользователями. ~ / .bashrc, похоже, отменяет это.

    if [[ ${EUID} == 0 ]] ; then
        PS1="\\[\\033[01;31m\\]\\h\\[\\033[01;34m\\] \\W \\$\\[\\033[00m\\] "
else
        PS1="\\[\\033[01;32m\\]\\u@\\h\\[\\033[01;34m\\] \\w \\$\\[\\033[00m\\] "
fi

Я бы предпочел не манипулировать файлами ~ / .bashrc с помощью Puppet, а вместо этого работал бы глобально с помощью скрипта profile.d.

По умолчанию Ubuntu ~ / .bashrc перезапишет любые более ранние значения PS1, которые вы видите. Вы можете сделать PS1 только для чтения

declare -r PS1=...

но это приведет к тому, что по умолчанию ~ / .bashrc будет выдавать

-bash: PS1: переменная только для чтения

что может быть нежелательно. Вы можете отредактировать /etc/skel/.bashrc, чтобы удалить строки, которые устанавливают PS1, чтобы новые пользователи не получали сценарии инициализации, которые по умолчанию пытаются перезаписать ваше глобальное определение PS1. Это не помешает им добавить собственные определения PS1, но сообщение об ошибке укажет им на это.