骏马金龙 (博客已搬家:www.junmajinlong.com)

网名骏马金龙,钟情于IT世界里的各种原理和实现机制,强迫症重症患者。爱研究、爱翻译、爱分享。特借此一亩三分田记录自己成长点滴!!!

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

修改命令提示符颜色

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

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

效果如图:

修改命令输入的颜色

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

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
posted @ 2019-09-21 12:45  骏马金龙  阅读(620)  评论(0编辑  收藏