我想使用 .bashrc 文件中的 PS1 设置根据我是在本地计算机上还是使用 ssh 来更改终端的颜色。
我当前在本地机器和 ssh 服务器上的 .bashrc 文件是(默认):PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
我已经尝试将 "\e[40m"
添加到最后,但只更改了终端背景的一部分,在中间留下了一个黑条
我将如何将 PS1 设置更改为,例如,我的本地终端为深蓝色而 ssh 终端为深灰色?
谢谢!
最佳答案
只是出于好奇,那台远程机器不是设置了自己的 PS1
值,这意味着无论您在本地设置提示,远程机器都会覆盖它吗?
解决此问题的一种方法是设置一个函数来替换您的实际 ssh
命令。让该函数设置终端的颜色,然后运行实际的 ssh
命令:
function ssh_function
{
printf "\e[40m\e[37m" # Grey on black
clear
\ssh $@ || read # Actual ssh command
printf "\e[0m" # Reset terminal
clear
}
现在,创建一个别名:
alias ssh="ssh_function"
现在,当您运行
ssh
时,它将运行您的 ssh_function
,它在执行 ssh
之前设置屏幕颜色,然后在 ssh
之外重置您的屏幕颜色。 clear
是为了清除你的终端,所以你会得到一个恒定的颜色。否则,它只会根据您的提示重置颜色。然后希望远程
PS1
环境变量不会重置您的终端颜色。关于linux - 使用 PS1 设置通过 ssh 设置不同的终端背景颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27551307/