6

在 Windows 中使用 putty,您可以保存连接到某个主机并使用某种文本颜色的会话......这对我来说非常有用,因为我使用了一堆远程主机,我想知道是否有(必须是)一种让终端(在雪豹中)模仿这种行为的方法。

我想知道我会如何 1. 保存一个连接(例如 username@hostname.com)并让该连接始终以某种文本颜色打开(例如 #00ff00) 2. 理想情况下,让任何终端窗口检测它所在的主机并相应地改变它的颜色。因此,如果我在常规终端环境中并发出了成功的ssh username@hostname.com,它会自动将该终端窗口(或选项卡)的文本颜色更改为 #00ff00

告诉我,谢谢!

4

2 回答 2

10

好的,如果您坚持从命令行调用 ssh,那么这里应该可以解决问题:编写一个 shell 脚本并将其保存为colorssh.sh. 当它运行时,它会查看匹配主机的参数并适当地设置活动终端窗口的颜色。然后它调用真正的 ssh,传递这些参数。当 ssh 返回执行脚本时,它会将颜色设置回正常。

由于您可能想继续输入ssh而不是colorssh.sh,因此您可以在.profile.

至于剧本本身?这是代码:

#!/bin/bash

function setTerminalColors {
    osascript \
        -e "tell application \"Terminal\"" \
        -e "tell selected tab of front window" \
        -e "set normal text color to $1" \
        -e "set background color to $2" \
        -e "end tell" \
        -e "end tell"
}

for ARG in $*
do
    case "$ARG" in
        host.example.com)
        username@host.example.com)
            setTerminalColors "{0,65535,65535}" "{65535,0,0}"
            ;;
        username@otherhost.example.com)
            setTerminalColors "{65535,65535,0}" "{0,65535,0}"
            ;;
    esac
done

ssh $*

# back to normal
setTerminalColors "{0,0,0}" "{65535,65535,65535}" 

您必须编辑脚本以添加新的主机/颜色组合。

请注意,颜色必须指定为 0-65535 范围内的 RGB 三元组整数。我知道,很奇怪,对吧?

从技术上讲,AppleScript 部分更改了已弃用的属性。您应该通过其“设置集”属性更改窗口的颜色,但我怀疑这会更改使用该设置集的所有窗口,而不仅仅是当前的。

此外,此脚本假定白底黑字是您的“正常”设置。如果不是这种情况,您可以更改脚本以在运行之前保存当前值或使用默认设置集中的颜色。

于 2009-12-15T08:01:24.753 回答
5

在终端中,您可以定义具有不同窗口背景颜色、不透明度等的配置文件。此外,在配置文件中,您可以指定启动命令。您可以使用“ssh me@thathost”启动命令为您使用的每个主机设置不同的配置文件,但这仅适用于新窗口。配置文件很容易通过 Shell -> New Window 获得。

于 2009-12-15T07:05:20.047 回答