我想使用.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终端是深灰色?
谢谢!
答案 0 :(得分:1)
出于好奇,远程机器没有设置自己的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
环境变量不会重置您的终端颜色。