使用特定命令时,如何更改外壳的颜色?

每当我使用ssh时,我都希望终端的背景改变颜色。 ssh的使用通常表示我已登录生产环境,因此应注意不要做任何愚蠢的事情。

现在我正在使用iterm2,但很高兴得知是否可以对其他任何shell进行良好的操作。

liufangxin 回答:使用特定命令时,如何更改外壳的颜色?

这不可能以任何便携式方式实现,因为没有通用的转义序列来更改终端背景颜色之类的内容。

请注意,链接到的示例脚本仅更改当前iTerm终端选项卡的背景颜色;而不是终端文本区域的背景色。如果像我大多数时候一样,您只有一个选项卡,并且配置了iterm,使其在只有一个选项卡时不显示选项卡,则不会显示该颜色变化。如果您是在screentmux会话中执行此操作,则它也将不起作用(您需要将序列包装在特殊的tmux“通过”序列中)。

当执行sudo fish以root身份运行Shell时,我建议做的是同一件事。修改您的fish_prompt函数以检测特殊情况并使用其他提示。例如,这是我的fish_prompt函数的相关部分,当我成为root时,它可以使其变得明显:

set -l color_cmd_sep $fish_color_host
if test "$USER" = 'root'
    set color_cmd_sep -b bryellow red
end

echo -ns (set_color $fish_color_host) $now ' ' $__fish_prompt_hostname
echo -ns (set_color $fish_color_cwd) ' ' (prompt_pwd) ' ' (set_color normal)
echo -ns (set_color $fish_color_git) (__fish_vcs_prompt | string trim) (set_color normal)
echo -ns (set_color $color_cmd_sep) '>' (set_color normal) ' '

您需要做的就是添加一个类似的测试以进入ssh会话;例如,通过测试是否存在SSH_CLIENTSSH_CONNECTION环境变量:if set -q SSH_CLIENT。如果为true,则更改提示的颜色或内容。

,

您可以通过Automatic Profile Switching在iTerm2中完成此操作。

本文链接:https://www.f2er.com/2963955.html

大家都在问