如何让 PuTTY 的字体自动改变颜色(连接到 Linux 服务器时),就像我使用后台批处理脚本对 Windows cmd.exe 所做的那样?

如何让 PuTTY 的字体自动改变颜色(连接到 Linux 服务器时),就像我使用后台批处理脚本对 Windows cmd.exe 所做的那样?

在 @dbenham 和 @Woody 的帮助下,我能够创建一个 Windows 命令提示符,每隔约 1.5 秒自动更改其文本颜色。我每天都会使用 PuTTY,几乎比 Windows 命令提示符还多,所以出于好玩,我还想弄清楚如何在 PuTTY 中执行相同的操作,无论我连接到哪个服务器(因此,希望有一种方法可以在本地读取 auto-change-text-color.bat,而不必将其放在我连接到的任何服务器上)。我连接的所有服务器都是通过 SSH 连接的 Linux 发行版。

我的 Windows 命令提示符解决方案在这里:https://superuser.com/a/700041/210421(下面是我制作的一个 GIF,用于展示它在做什么:http://i.minus.com/iZC4WapYtRVad.gif

有没有办法通过 Linux 上的 PuTTY 做到这一点?我可以制作这个批处理文件的(可能经过修改的)版本,或者在我打开的每个 PuTTY 会话的后台运行一个 perl 脚本吗?我保存了 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

您可以通过两种方式来实现这一点。

首先,也许是最简单的,从配置中设置 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

相关内容