Раскрашивает терминалы, определяются на двух шагах:
Xterm имеет escape-последовательность для изменения значения цвета, связанного с номером цвета. Я не помню, поддерживает ли PuTTY эту последовательность; я знаю, что Mintty делает.
set_color_value () {
printf "\\e]4;$1;$2\\a"
}
set_color_value 4 '#6495ed' # set color 4 (blue) to CornflowerBlue
Эти настройки не переживут терминальный сброс. Можно преодолеть эту трудность путем добавления конфигурации курсора, изменяющей последовательность на строку сброса терминала.
infocmp >>~/etc/terminfo.txt
. Отредактируйте описание для изменения rs1
(основной сброс) последовательность, например, замена rs1=\Ec
rs1=\Ec\E]4;4;#6495ed\E\\
. С некоторыми программами и настройками, Вы, возможно, должны измениться rs2
(полный сброс) также. Затем скомпилируйте terminfo описание с tic ~/etc/terminfo.txt
(это пишет в соответствии с каталогом $TERMINFO
, или ~/.terminfo
если сброшено)./etc/termcap
). Изменитесь is
(основной сброс) и rs
(полный сброс), упорядочивает для добавления настроек, например. :is=\Ec\Ec\E]4;4;#6495ed\E\\:
. Установите TERMCAP
переменная среды к отредактированному значению (начало и окончание :
).Теперь можно вставить что-то вроде этого Ваш ~/.profile
:
if [ "$(ps -p $PPID -o comm=)" = sshd ] &&
[ "$TERM" = "xterm" ]; then
set_color_value … # set color scheme
TERMCAP=… # if necessary
fi
Используя su
без -l
или -
запускается bash
как интерактивное, но оболочка невхода в систему, которая не читает ни из одного из файлов, которые Вы указали. Используйте -l
или -
опция или помещенный соответствующая конфигурация в /root/.bashrc
.
Быстрая сводка файлов конфигурации:
-l
/--login
) чтения /etc/profile
во-первых, и затем первое это находит: ~/.bash_profile
, ~/.bash_login
, и ~/.profile
. -i
) чтения /etc/bash.bashrc
и ~/.bashrc
, в том порядке (если --rcfile
опция используется и говорит этому смотреть в другом месте). -l
или -i
флаги, читает файл, указанный в BASH_ENV
переменная среды. sh
как оболочка входа в систему, это будет читать /etc/profile
и ~/.profile
, в том порядке.sh
как интерактивный невход в систему, это читает файл, указанный в ENV
.Bash ведет себя по-другому в зависимости от того, если он полагает, что это - оболочка входа в систему, т.е. первая оболочка, выполненная, когда Вы входите в систему. Это только читает .bash_profile
если это - оболочка входа в систему. Если Вы помещаете PATH
- изменение кода в .bashrc
вместо этого, это будет выполнено для всех интерактивных оболочек удара, не только войдет в оболочки.
] Если я использую окружение Gnome в Scientific Linux 6 (или предположительно RHEL 6), запустите терминал. Перейдите на вкладку [] Edit[
] -> [] Profile Preferences[
] -> [] "Title and Command"[
] tab. Убедитесь, что флажок "Run command as a login shell" установлен. Я обнаружил, что терминальное приложение Gnome игнорирует мой [].bash_profile[
], если я этого не сделаю.[