macos - 当我 ssh 到特定服务器时,如何使苹果终端窗口自动更改配色方案

标签 macos terminal osx-leopard

当我 ssh 到远程生产服务器时,我希望终端窗口的配色方案更改为明亮而可怕的颜色,最好是红色,以警告我正在触摸实时可怕的服务器。

如何让它自动检测到我已通过 ssh 连接到某处,并且如果该某处位于特定列表中,则更改颜色方案?

我想更新 Terminal.app 的方案,不知道如何在纯 linux/unix 环境中执行此操作

最佳答案

将以下脚本放入 ~/bin/ssh 中(确保在 PATH 中的 /usr/bin/ 之前检查 ~/bin/ ):

#!/bin/sh

HOSTNAME=`echo $@ | sed s/.*@//`

set_bg () {
  osascript -e "tell application \"Terminal\" to set background color of window 1 to $1"
}

on_exit () {
  set_bg "{0, 0, 0, 50000}"
}
trap on_exit EXIT

case $HOSTNAME in
  production1|production2|production3) set_bg "{45000, 0, 0, 50000}" ;;
  *) set_bg "{0, 45000, 0, 50000}" ;;
esac

/usr/bin/ssh "$@"

记住通过运行chmod +x ~/bin/ssh使脚本可执行

上面的脚本从“username@host”行中提取主机名(假设您使用“ssh user@host”登录到远程主机)。

然后根据主机名设置红色背景(对于生产服务器)或绿色背景(对于所有其他服务器)。因此,您的所有 ssh 窗口都将具有彩色背景。

我假设您的默认背景是黑色,因此当您从远程服务器注销时,脚本会将背景颜色恢复为黑色(请参阅“trap on_exit”)。

但请注意,此脚本不会跟踪从一台主机到另一台主机的 ssh 登录链。因此,如果您先登录测试服务器,然后从它登录生产服务器,背景将为绿色。

关于macos - 当我 ssh 到特定服务器时,如何使苹果终端窗口自动更改配色方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/157959/

相关文章:

macos - 在 MacOSX 上禁用/取消 sleep 命令

macos - 为什么 Perl 找不到 File::BaseName->fileparse?

windows - 在 OSX 上使用 Qt 保持领先地位

linux - 使用脚本显示信息时出错

linux - 如何使用 linux 终端计算文件夹中的不同文件类型?

mysql - 在 OSX 10.5 上的 MySql 启动时找不到文件 './mysql-bin.index'

macos - 异常安装 `aws` cli

macos - 如何从 mac 上的 node.js 脚本启动 Electron 应用程序?

linux - 比较两个文件夹时如何避免.git文件

macos - 是否可以使用键盘快捷键在OSX Terminal.app中选择特定选项卡?