我想要实现的目标:
每次我使用特定用户通过 ssh 登录到机器时 -> “危险”就像ssh danger@somehost
我希望终端将其背景更改为红色,这样我就会得到视觉反馈,表明我与特定用户处于 bash 中,而不是我自己机器上的终端。
我只能手动设置选项,而且我一点头绪都没有,一定有一些东西我可以写入 bashprofile 左右?!
如有任何提示,请提前致谢!
答案1
我用过iTerm2和一些 AppleScript。以下是用于更改背景颜色的 shell(bash 或 zsh)的函数:
function iterm_bg_color() {
local tty=$(tty)
osascript -e "
tell application \"iTerm\"
repeat with theTerminal in terminals
tell theTerminal
try
tell session id \"$tty\"
set background color to {(($1 * 257)), (($2 * 257)), (($3 * 257))} as RGB color
end tell
on error errmesg number errn
end try
end tell
end repeat
end tell"
}
像这样使用它将背景变成红色:
$ iterm_bg_color 255 0 0
我还创建了一些别名,以便以某些用户身份启动 ssh,就像这样:
alias ssd="iterm_bg_color 30 0 0; ssh danger@somehost; iterm_bg_color 0 0 0"
或者您可以编写一个包装器,完全根据用户为 ssh 着色。类似这样的操作bash
:
function ssh() {
if [[ $1 == danger@* ]]; then
iterm_bg_color 50 0 0
/usr/bin/ssh "$@"
iterm_bg_color 0 0 0
else
/usr/bin/ssh "$@"
fi
}
或zsh
:
function ssh() {
if [[ "$1" =~ "danger@.*" ]]; then
iterm_bg_color 50 0 0
/usr/bin/ssh $*
iterm_bg_color 0 0 0
else
/usr/bin/ssh $*
fi
}
只需将其放置iterm_bg_color
在您的 shell 配置中(~/.bash_profile
或~/.zshrc
分别)并添加ssh()
功能(或别名)即可使其在您连接时自动着色。