Задать вопрос
smarteq
@smarteq
Web developer, System administrator

Разный фон консоли для разных серверов?

Доброго времени суток, Хабр!


Думаю каждый из тех, кто пользуется из под линукса встроеным консольным ssh клиентом хоть раз да путался и выполнял на серваке команду, которую должен был на локальной машине или наоборот или вообще путал сервера. В общем вы поняли к чему я ;)


Есть идеи как перекрасить фон консоли чтобы допустим для сервера А он был черный, сервера B серый и т.д.
  • Вопрос задан
  • 4085 просмотров
Подписаться 11 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 7
@gribozavr
Сделайте разные подсказки на разных серверах, тогда эта настройка будет независима от используемого эмулятора терминала. Например, [19:13:13; user@host; dir]$, можно user@host выделять разными цветами.
Ответ написан
@Eddy_Em
По-моему, достаточно в PS1 вписать имя сервера:
\[\033[1;33;41m\h>\]\[\033[1;32;40m \D{%d.%m, %H:%M}\] \[\033[1;33;40m\w\]\[\033[1;32;40m\]\[\033[0;37;40m\n

А цвет поменять тоже можно при помощи PS1.
Подобрать нужные цвета удобно при помощи скриптика:
#!/bin/sh
# Создан 17-го Июль 2009 года в 10:43
#
echo "
********* СВОЙСТВА **********
Название стиля 		| Код
------------------------|----
Сбросить все свойства 	| 0
Повышенная яркость 	| 1
Пониженная яркость 	| 2
Подчеркнутый		| 4
Нормальная яркость 	| 5
Инвертированный 	| 7
Скрытый 		| 8
********** ЦВЕТА ***********
Название цвета 	|Текст	|Фон
----------------|-------|---
Черный		| 30	| 40
Красный 	| 31	| 41
Зеленый 	| 32	| 42
Желтый		| 33 	| 43
Синий		| 34 	| 44
Маджента 	| 35	| 45
Циановый 	| 36	| 46
Белый		| 37 	| 47
----------------------------
Цвета задаются в формате [свойство;цвет_текста;цвет_фона] (можно указывать только один пар.),
например: \033[37;40m - белый текст на черном фоне
"
HEADER="\t\t"
for B in `seq 40 47`
do
	HEADER=`echo -e "$HEADER Фон $B\t\c"`
done

for A in 1 2 4 5 7 8
	do
	echo -e "\033[0m\n\n Свойство $A:\n$HEADER\c"
	for B in `seq 30 37`
		do
		echo -e "\n Текст $B\t\c"
		for C in `seq 40 47`
			do
				echo -e "\033[$A;$B;$C""m Буквы\t\c"
			done
		echo -e "\033[0m\c"
		done
	done
echo -e "\033[0m\n\n"
Ответ написан
frol
@frol
Линуксоид
5 серверов во вкладках и получаем мечту эпилептика. :)
Я пользуюсь разукраской цвета шрифта приветствия "[lapatopa frol:~]$", обычно зелёный + название машины выделяю красным/жёлтым (в данном случае lapatopa — мой локальный ноутбук, поэтому он у меня зелёный). На продакшен серверах у меня название сервера выделено красным :)
Ответ написан
Комментировать
У меня не много серверов. я выхожу из положения, настроив Профили в Терминале Gnome.
В качестве команды для каждого профиля стоит ssh user@server.com.
На вкладке Цвета настраиваешь нужное оформление.
Ответ написан
Комментировать
karabanov
@karabanov
Системный администратор
Может быть поможет:

$ setterm -foreground green -background black -store

Если сработает, то в .bashrc добавить (ну или какую вы оболочку используете) и всё.

PS
Есть сомнение, что не сработает (вот запустите, допустим, top, а он возьмёт да и поменяет все цвета обратно), а проверить не могу: не чем.
Ответ написан
charon
@charon
кроме вывода имени сервера в приглашении я также выделяю разные вкладки для разных машин: 3-локальная, 4-продакшн-сервер
Ответ написан
Комментировать
romik
@romik
Я одно время таким пользовался:

ssh () { echo -ne '\033]50;colorscheme=BlackOnWhite\a'; =ssh $*; _exitcode=$?; echo -ne '\033]50;colorscheme=Linux\a'; return $_exitcode }

Заточено под konsole/yakuake, позволяет отличать локальную машину от ssh.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы