Я не редактировал / создавал файл .screenrc некоторое время, но это то, что я сейчас использую:
# Turn off the screen startup message
startup_message off
# Define format of bottom navigation/status/date/etc. line
hardstatus alwayslastline "%{yk}[ %H ] %-Lw%50>%{gk}(%{-}%n-%t%{gk})%{-}%+Lw%< %=%{yk}[ %c %d.%m.%Y ]"
# Increase scrollback buffer to 30000 lines
defscrollback 30000
Честно говоря, я не помню, что означает все в моей строке hardstatus, но я хочу выяснить, как я могу изменить цвет имени хоста в зависимости от пользователя, который вошел в систему. Возможно ли это? Прямо сейчас, имя хоста желтое, когда я вошел под любым пользователем; но я хочу, чтобы он был красным, если я root. Это то, что можно изменить в моем файле .bashrc? У меня есть это в моем .bashrc, чтобы изменить новые имена окон экрана на имя хоста сервера, к которому я подключен:
# Set screen window title
case "$TERM" in
screen)
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
;;
esac
Спасибо за любую помощь!
РЕДАКТИРОВАТЬ
Я попытался добавить это в мой файл .bashrc, но он просто помещает код ANSI перед именем хоста в моем экранном жестком статусе:
case "$TERM" in
screen)
if (( $UID == 0 )); then
PROMPT_COMMAND='echo -ne "\033k$FRED$HOSTNAME$RS\033\\"'
else
PROMPT_COMMAND='echo -ne "\033k$HOSTNAME\033\\"'
fi
;;
esac
РЕДАКТИРОВАТЬ 2
Я также добавил фактические цветовые коды ANSI (ex:) \[\033[31m\]
и экранирующие коды (ex:) %kr
к приведенному выше заявлению в моем .bashrc
, но ни один из них не сработал.
РЕДАКТИРОВАТЬ 3
Если я использую это в качестве командной строки, имя хоста будет отображаться красным перед моим PS1:
PROMPT_COMMAND='echo -ne "\033[31m$HOSTNAME\033\\"'
Если я использую следующую подсказку, имя окна изменится на имя хоста (ДА!); но цвет остается по умолчанию (НЕТ!):
PROMPT_COMMAND='echo -ne "\033[31m\033k$HOSTNAME\033\\"'
Я также пытался заменить \033[31m
(и просто [31m
) на экранирование цвета экрана (% kr), но это тоже не сработало.
Ответы:
Взгляните на это U & L Q & A.
Конкретно этот ответ, https://unix.stackexchange.com/a/16433/7453 .
Общая идея заключается в том, что вы поддерживаете 2 разных
screenrc
файла с цветами и, основываясь на$USER
своемbashrc
файле, указываете переменную окруженияSCREENRC
для данного пользователя.источник
.screenrc
файла работать одновременно? Например, если я открою экран как сам, а затемsudo -s
получу root на другом компьютере в рамках этого сеанса экрана, будут ли мои другие окна экрана оставаться желтыми, а имя (имя хоста) окна, которое я только что стал root, станет красным?.screenrc
. С двумя отдельными экземплярами экрана было бы просто сделать это, просто две отдельные конфигурации.