我想根据主机名更改终端背景颜色。我这样做的理由主要是为了拥有一种提醒自己自己在什么服务器上的额外方法,因此我不会做任何愚蠢的事情。
如果我在本地计算机上,是否可以通过标准茄子背景使用它,如果将SSH转换为生产Web服务器或其他可以指定的主机,则可以将其更改为红色?
我想根据主机名更改终端背景颜色。我这样做的理由主要是为了拥有一种提醒自己自己在什么服务器上的额外方法,因此我不会做任何愚蠢的事情。
如果我在本地计算机上,是否可以通过标准茄子背景使用它,如果将SSH转换为生产Web服务器或其他可以指定的主机,则可以将其更改为红色?
Answers:
每当使用别名时,都可以使用ssh / config的localcommand选项运行命令。我用
host hostname
user myusername
localcommand xtermcontrol --bg '#abc'
这取决于xtermcontrol和您的术语xterm。大概还有其他术语的其他应用程序。
这种方法的唯一问题是调用ssh时会发生这种情况。没有什么可以撤消颜色变化的。我通过在ssh周围包装一个函数来完成此操作,但这也有其缺点。
function ssh() {
FG=$(xtermcontrol --get-fg)
BG=$(xtermcontrol --get-bg)
$(which ssh) "$@"
xtermcontrol --fg="$FG"
xtermcontrol --bg="$BG"
}
似乎没有任何功能gnome-terminal
可以从命令行向现有窗口添加新选项卡。但是有一些选择可以实现您想要的。
gnome-terminal
为将要SSH连接到的每个主机创建一个新的配置文件。如果只有几个定期连接的主机,这可能是最简单的。每个配置文件可以具有不同的标题,前景色,背景色,自定义命令和其他定义的设置。然后,您可以使用File -> Open Tab
打开带有所选配置文件的新选项卡。
创建一个新的gnome-terminal
,将被用于要连接到不同的SSH主机(在此基础上,每次打开一个新的窗口轮廓AskUbuntu答案是斯蒂法诺指出)。如果您经常连接到许多不同的主机,这会很好。这将不允许您gnome-terminal
仅在背景/前景颜色上区分连接到不同主机的不同窗口,但是每个窗口的标题都不同。
gnome-terminal
配置文件创建一个新的配置文件(File -> New Profile
),Default
并将其命名为“ RemoteHost”(注意,“ RemoteHost”中没有空格,以使命令更容易使用)。Title and Command
标签下,更改:
Initial title:
到“远程主机”When terminal commands set their own titles:
至 Replace initial title
Colors
标签下,更改:
Use colors from system theme
Build-in schemes:
至 Custom
Text color:
以及Background color:
您选择的颜色。请记住,某些命令(如ls
)使用颜色作为其输出,而您不想选择会使其难以读取输出的颜色。Close
按钮保存您的新配置文件。gnome-terminal
使用以下命令为每个远程SSH主机打开一个新窗口gnome-terminal --window-with-profile=RemoteHost -t "Some Remote SSH Host" -x ssh user@somehost
。该-t
选项设置gnome-terminal
窗口标题,并且该-x
选项在终端中执行其余命令行。您甚至可以alias
缩短总的击键次数。我发现此博客条目带有以下脚本,该脚本使用xdotool
and wmctrl
命令(在Ubuntu上默认未安装它们,因此您可能需要先安装它们)才能使用gnome-terminal
Ctrl+ Shift+ t键盘快捷键在当前gnome-terminal
窗口中打开新标签页。可以对其进行修改以打开一个具有特定配置文件的新选项卡,并为您执行一些命令。
#!/bin/bash
# Path: /usr/local/bin/gnome-terminal
if [ "x$*" != "x" ]; then
/usr/bin/gnome-terminal "$@"
else
pgrep -u "$USER" gnome-terminal | grep -qv "$$"
if [ "$?" == "0" ]; then
WID=`xdotool search --class "gnome-terminal" | head -1`
xdotool windowfocus $WID
xdotool key ctrl+shift+t
wmctrl -i -a $WID
else
/usr/bin/gnome-terminal
fi
fi
您可以发挥创意,然后尝试其他一些事情。
这个SuperUser答案基本上使用了一些“ script-fu”杂技演员来创建gnome-terminal
用于打开新窗口的临时配置文件。可以对其进行修改以供您使用。
每当您将SSH连接到远程主机时,您都可以使用此StackOverflow问答和更多的“ script-fu”杂技演员来动态更改gnome-terminal
标题。它不会像背景/前景颜色变化那样突出,但始终比标准Terminal
标题更好。
如果您愿意为每个ssh会话使用一个新的gnome-terminal窗口,那么它将在Gnome中起作用。
创建一个名为“ Remote”的新配置文件(具有不同的背景色)
将以下内容插入.bash_aliases
或.bashrc
### add to .bash_aliases, for differentiating between local and remote hosts
sshhelper() {
gnome-terminal --window-with-profile=Remote -x bash -c "ssh $1";
}
alias sshc=sshhelper
现在使用“远程”配置文件sshc remote-machine
打开一个新的 gnome-terminal会话。这将区分本地和远程配置文件。
要容纳多个配置文件/主机,请创建多个配置文件,然后在其中放置以下内容.bash_aliases
:
### add to .bash_aliases, for differentiating between multiple remote hosts
sshhelper() {
HOST=`echo $1 | cut -d'@' -f2`
case $HOST in
Production ) PROFILE="Red" ;;
Test ) PROFILE="Green" ;;
# ... if you have more cases ...
*) PROFILE="Default" ;;
esac
gnome-terminal --window-with-profile=$PROFILE -x bash -c "ssh $1";
}
# alias ssh=sshhelper # this will "override" the ssh command, but may break other stuff!
alias sshc=sshhelper
现在,sshc Production
将使用“红色”配置文件sshc Test
打开一个新的会话窗口,将使用“绿色”配置文件打开一个新的会话窗口,其他主机将使用“默认”配置文件。
从堆栈***站点收集所有信息是我发现的薄荷伴侣+伴侣终端(与gnome一样)的最简单解决方案。
sudo apt get install xdotool
现在,您可以修改/ etc / ssh / ssh_config,以便在建立每个ssh会话后可以更改配置文件:
Host *
PermitLocalCommand yes
LocalCommand xdotool key Alt+Page_Down
现在,在终端中建立每个ssh连接之后,配置文件将被更改,并且您永远不会再将不需要的sql更新再次放入生产数据库中了:)
但是,没有简单的解决方案可以在ssh连接关闭后恢复到默认配置文件。但这对我来说足够了,我没有挖掘更多信息。