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

Разные цвета подсказок для разных машин при использовании терминала / ssh?

У меня есть 5 машин, на которые я постоянно использую ssh для работы. Когда я даю неправильные команды неправильным ящикам, становится все неприятнее. К счастью, я еще не сделал ничего плохого. Я хотел знать, есть ли какой-нибудь взлом, который я могу жестко запрограммировать, который будет отображать мое приглашение разными цветами в зависимости от машины, на которой я использую ssh? Например, синий для рабочего стола1, фиолетовый для ноутбука, красный для сервера и т. Д.? Это возможно?

В настоящее время я использую эту команду export PS1 = "\ e [0; 31m [\ u @ \ h \ W] \ $ \ e [m", взятую отсюда http://www.cyberciti.biz/faq/bash-shell-change-the-color-of-my-shell-prompt-under-linux-or-unix/ но он явно не работает через ssh.

Кроме того, если у вас есть другие полезные советы по bash, которые помогут мне облегчить мое зрение, это будет замечательно. Я получил этот совет, который раскрашивает страницы руководства.

http://linuxtidbits.wordpress.com/2009/03/23/less-colors-for-man-pages/

В метод, который я использую заключается в генерации цвета имени хоста из имени хоста. На выбор не так много цветов, поэтому он может легко вызвать конфликты, но он полезен для небольшого количества машин, которыми я управляю.

hostnamecolor=$(hostname | od | tr ' ' '\n' | awk '{total = total + $1}END{print 30 + (total % 6)}')

PS1='\[\e]0;\w\a\]\n\[\e[32m\]\u@\[\e[${hostnamecolor}m\]\]\h \[\e[32m\]\w\[\e[0m\]\n$ '

Первая строка генерирует число от 30 (inc) до 36 (exc) из имени хоста машины. Вторая строка применяет его к подсказке с именем пользователя и путем, выделенными зеленым (32), и именем хоста, выделенным сгенерированным цветом.

Цвета фона не заданы, и я исключаю голубой (36) и белый (37) из переднего плана, чтобы избежать конфликтов с фоном терминалов, которые я использую.

Ты на правильном пути. Я использовал метод, описанный на странице, на которую вы ссылаетесь, и подробно, как именно в моем блоге. У меня он работает, используя PuTTY из окна Windows, а также SSH с одного сервера CentOS на другой. Если это не работает для вас, и вы уверены, что синтаксис правильный, это может быть связано с вашим SSH-клиентом.

На моей работе есть разные этапы серверов

постановка производства

Я использую красную подсказку в качестве подсказки, а зеленую - для постановки. Теперь все промежуточные машины имеют stg в домене.

Так что прод будет

web1.domain.com
web2.domain.com

Постановка / разработка будет

stg-web1.domain.com
stg-web2.domain.com
dev-web1.domain.com
etc

Это действительно будет работать только для redhat / centos

Но для прод-серверов у меня в

/etc/sysconfig/bash-prompt-xterm

Внутри

export PS1="\[[\e[1;31m\]\u@\[\e[1;31m\]\h\[\e[0m\] \W] "

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

if [ "$PS1" ]; then
    case $TERM in
        xterm*)
                if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
                        PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
                else
                        PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
                fi
                ;;

Что если блок должен быть там .. Я только что изменил цвет в другой части на зеленый .. 33 зеленый

Вы можете изменить bash.rc на каждой машине чтобы дать им разные цвета подсказки. Или, если у вас достаточно прав, измените конфигурацию sshd, чтобы разрешить передачу пользовательской среды через PermitUserEnvironment директива.

Мы работаем над более полным решением на основе контрольной суммы строки имени хоста в это суть вкл. Совместимость 256 цветов. Помимо случая, когда вы на самом деле заинтересованы в определении определенного цвета для каждого из ваших серверов самостоятельно, я считаю, что это одна из тех проблем «это то, что у нас есть компьютеры», поэтому получение «случайных» цветов, определенных для вас на основе контрольные суммы должны быть хорошим подходом.