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

修改命令提示符颜色

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

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

效果如图:bash

修改命令输入的颜色

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

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

若是要写入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
相关文章
相关标签/搜索