我有时会发现自己打开了几个终端,其中一些终端通过 ssh 连接到其他(生产)机器。如果我在这些 ssh 终端之一上运行“删除数据库中的所有表”之类的命令,我可能会破坏大量客户的数据。但在开发过程中,我当然需要不时运行这些命令。
所以,我想知道:有没有一种方法可以让我的终端(最好是内置的 GNOME 终端,但如果需要,我愿意切换到不同的终端程序)在我使用 ssh 时改变它的视觉外观-ed 到远程机器?理想情况下,我会有正常的黑色背景,但是当我通过 ssh 连接到远程机器时,背景会变为红色。也许窗口的边框会变成红色并开始闪烁或什么的。
不过,外观变化的细节并不重要:重要的是让我立即明白,在某处通过 ssh 连接的终端上工作时,我需要更加小心。那可能吗?
PS 我确实找到了Contextual SSH,这正是我想要的......除了它仅限 Mac :-(
我建议将您的 $PS1 设置为相关信息,例如主机名等。您可以查看您选择的 shell 的手册页以了解详细信息。
您可以在bash 中对 PS1 执行的操作示例
我自己在 ~/.subbash/提示中有一个测试,它根据服务器设置提示的颜色。*
*参见 __prompt_command() 函数
您可以通过多种方式自定义 PS1,听起来您想要一些更引人注目的东西,所以我的示例会比将 加到\H
PS1更复杂一些。要使用以下任何一项,您可以将它们添加到您的~/.bashrc
(在远程服务器上,如果不是两者。我在所有计算机之间同步相同的配置)
注意:为了使这些更具可读性,以下假设声明了这些变量。
var 可以很容易地替换为内容。
此外,这些示例偏向于 bash,您可能需要针对其他 shell 进行调整。
RCol='\[\e[0m\]' # Text Reset
Red='\[\e[0;31m\]' # Red
Gre='\[\e[0;32m\]' # Green
Yel='\[\e[0;33m\]' # Yellow
Blu='\[\e[0;34m\]' # Blue
Pur='\[\e[0;35m\]' # Purple
Cya='\[\e[0;36m\]' # Cyan
Whi='\[\e[0;37m\]' # White
Run Code Online (Sandbox Code Playgroud)
您可能喜欢的一件事是测试 $USER,如果它是 root,或者可能是“生产”专用帐户:
if [ $UID -eq "0" ];then
PS1="${Red}\h \W ->${RCol} " # Set prompt for root
else
PS1="\h \W -> "
fi
Run Code Online (Sandbox Code Playgroud)
如果您使用 root,这将使提示变为红色。
您还可以测试有关当前机器的信息,并基于此设置颜色:
PS1=
PSCol=
if [ $HOSTNAME == 'moving-computer-of-doom' ]; then
PSCol="$Cya" # For Main Computer
elif [ $HOSTTYPE == 'arm' ]; then
PSCol="$Gre" # For pi
elif [ $HOSTNAME == 'ma.sdf.org' ]; then
PSCol="$Blu" # For MetaArray
elif [[ $MACHTYPE =~ arm-apple-darwin ]]; then
PSCol="$Gre" # For iOS
elif [ $MACHTYPE == 'i486-pc-linux-gnu' ]; then
PSCol="$Whi" # For Netbook
elif [[ "$MACHTYPE" == "x86_64--netbsd" && "$OSTYPE" == "netbsd" ]]; then
PSCol="$Yel" # For Main Cluster
else
PS1+="\h " # Un-designated catch-all
fi
PS1+="${PSCol}\W ->${RCol} "
Run Code Online (Sandbox Code Playgroud)
如果在我的笔记本电脑上,这会将提示设置为青色,对于我的 pi 或 iOS 等设置为绿色。
如果未列出,它会将主机名添加到提示中。
因此,如果您的生产服务器具有易于测试的内容(例如类似的主机名,您可以使用它)
在大多数情况下,如果没有这个,上述内容就可以正常工作。
如果您开始添加您希望在登录时更频繁地重新评估的内容(可能是目录的 git 状态),您可以使用 PROMPT_COMMAND 函数在每个命令之后评估 PS1。
没有这个,上面的工作正常。
注意:对不起,如果这些看起来令人困惑,这些是从我使用的设置中获取的,并且经过修改后可以在没有其他设置的情况下工作。
归档时间: |
|
查看次数: |
6822 次 |
最近记录: |