Мне удалось создать командную строку Windows, которая автоматически меняет цвет текста на белом фоне каждые ~ 1,5 секунды, благодаря помощи @dbenham и @Woody. Я также использую PuTTY каждый день, почти больше, чем командная строка Windows, поэтому для удовольствия я также хотел бы выяснить, как сделать то же самое в PuTTY, независимо от того, к какому серверу я подключаюсь (поэтому, надеюсь, есть способ автоматически change-text-color.bat для локального чтения вместо необходимости помещать его на сервер, к которому я подключаюсь). Все серверы, к которым я подключаюсь, являются дистрибутивами Linux через SSH.

Мое решение для командной строки Windows находится здесь: https://superuser.com/a/700041/210421 (и вот быстрый GIF, который я сделал, чтобы показать, что он делает: http://i.minus.com/iZC4WapYtRVad.gif)

Есть ли способ сделать это через PuTTY с Linux? Могу ли я сделать (возможно, измененную) версию этого пакетного файла, или, может быть, Perl-скрипт будет запускаться в фоновом режиме каждого сеанса PuTTY, который я открываю? У меня есть 10 сохраненных соединений SSH, и многие другие будут добавлены в будущем. Поэтому, если есть способ заставить PuTTY найти изменяющий цвет файл .bat локально, вместо того, чтобы размещать этот файл на каждом сервере, это было бы очень удобно. Решение, при котором я должен разместить его на каждом сервере, также было бы полезно, если бы это был единственный способ.

Если не с PuTTY, может быть, с другим обычным SSH-клиентом?

Спасибо за любую помощь!

Решение для Windows также цитируется здесь:


Я использовал эту команду в качестве команды auto-change-text-color.bat, потому что мне захотелось изменить только текст, и я избавился от некоторых цветов, которые не очень хорошо смотрелись на белом фоне:
@echo off
:loop
set NUM=1 2 3 4 5 6 8 9 A B C D
for %%x in (%NUM%) do ( 
    color F%%x
    >nul ping localhost -n 4
)
goto loop

Что касается моего ярлыка командной строки Windows, он запускается в моем каталоге разработки, и "цель":

%COMSPEC% /t:F9 /s /k cd scripts && start /b %COMSPEC% /c auto-change-text-color.bat <nul && cd .. && env

Он открывается в каталоге сценариев моей среды разработки, запускает сценарий изменения цвета в фоновом режиме, который хранится в моей папке сценариев, затем возвращается в родительскую папку и запускает другой пакетный файл, задающий все переменные среды. Это идеально.


1 ответ1

1

Вы можете сделать это двумя способами.

Во-первых, и, возможно, проще всего, установить цвета в PuTTy из конфигурации

Ваш второй вариант - записать цвета в .bashrc.

Это то, что я использую (в .bashrc)

################################
### Colors ###
################################

BLACK='\e[0;30m'
BLUE='\e[0;34m'
GREEN='\e[0;32m'
CYAN='\e[0;36m'
RED='\e[0;31m'
PURPLE='\e[0;35m'
BROWN='\e[0;33m'
LIGHTGRAY='\e[0;37m'
DARKGRAY='\e[1;30m'
LIGHTBLUE='\e[1;34m'
LIGHTGREEN='\e[1;32m'
LIGHTCYAN='\e[1;36m'
LIGHTRED='\e[1;31m'
LIGHTPURPLE='\e[1;35m'
YELLOW='\e[1;33m'
LIGHTYELLOW='\e[0;33m'
WHITE='\e[1;37m'
NC='\e[0m' # No Color


# Set Less Colors for Man Pages
if [ -x /usr/bin/less ]; then
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;38;5;74m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode
export LESS_TERMCAP_se=$'\E[0m' # end standout-mode
export LESS_TERMCAP_so=$'\E[38;5;246m' # begin standout-mode - info box
export LESS_TERMCAP_ue=$'\E[0m' # end underline
export LESS_TERMCAP_us=$'\E[04;38;5;146m' # begin underline
fi

# NEW. FANCY PROMPT
if [[ $EUID == 0 ]] ; then
PS1='\[\033[01;31m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #RED
else
PS1='\[\033[01;32m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #Green

# PS1='\[\033[01;34m\]\u\[\033[01;30m\]@\[\033[01;34m\]\h\[\033[01;30m\]:\[\033[01;34m\]\w\[\033[00m\]\$' #Blue
fi

Смотрите также https://wiki.archlinux.org/index.php/Color_Bash_Prompt

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .