修改shell命令提示符和命令的输入颜色

修改命令提示符颜色

修改命令提示符的话,只需修改PS1环境变量即可。

PS1='\[\033[01;31m\][\u@\h \W]$ \[\033[00m\]'

效果如图:

修改shell命令提示符和命令的输入颜色_第1张图片

修改命令输入的颜色

修改命令输入的颜色,思路是不关闭PS1的颜色,然后在每次敲下回车键执行命令的时候自动插入颜色终止符。这需要借助trap捕获DEBUG信号来实现。

PS1='\[\033[01;31m\][\u]$ \[\033[1;30m\]'
trap 'echo -ne "\e[0m"' DEBUG

修改shell命令提示符和命令的输入颜色_第2张图片

如果要写入shell配置文件,建议写到~/.bash_profile,而不要写入~/.bashrc,否则借助ssh类的工具都将因为trap DEBUG信号的特殊性而无限等待,比如scp/rsync等。或者,直接判断是否是交互式登录,是的话就设置,否则不设置:

if [ "${-#*i}" != "$-" ];then
    # interactively shell
    PS1='\[\033[01;31m\][\u@\h \W]$ \[\033[1;30m\]'
    trap 'echo -ne "\e[0m"' DEBUG
fi

你可能感兴趣的:(修改shell命令提示符和命令的输入颜色)