我们开发就是喜欢各种酷炫的东西,对于有洁癖的我,连命令行都不放过了

先上图看效果,命令行显示高亮部分

实现过程:

第一步:.bash_prompt脚本

# ~/.bash_prompt
# This prompt inspired by gf3, sindresorhus, alrra, and mathiasbynens.
# but customized to me. <3 default_username='paulirish' #eval "$(thefuck --alias)" if [[ -n "$ZSH_VERSION" ]]; then  # quit now if in zsh
    return 1 2> /dev/null || exit 1;
fi; if [[ $COLORTERM = gnome-* && $TERM = xterm ]] && infocmp gnome-256color >/dev/null 2>&1; then
    export TERM=gnome-256color
elif infocmp xterm-256color >/dev/null 2>&1; then
    export TERM=xterm-256color
fi set_prompts() {     local black="" blue="" bold="" cyan="" green="" orange="" \
          purple="" red="" reset="" white="" yellow=""     local dateCmd=""     if [ -x /usr/bin/tput ] && tput setaf 1 &> /dev/null; then         tput sgr0 # Reset colors         bold=$(tput bold)
        reset=$(tput sgr0)         # Solarized colors
        # (https://github.com/altercation/solarized/tree/master/iterm2-colors-solarized#the-values)
        black=$(tput setaf 0)
        blue=$(tput setaf 33)
        cyan=$(tput setaf 37)
        green=$(tput setaf 190)
        orange=$(tput setaf 172)
        purple=$(tput setaf 141)
        red=$(tput setaf 124)
        violet=$(tput setaf 61)
        magenta=$(tput setaf 9)
        white=$(tput setaf 8)
        yellow=$(tput setaf 136)     else         bold=""
        reset="\e[0m"         black="\e[1;30m"
        blue="\e[1;34m"
        cyan="\e[1;36m"
        green="\e[1;32m"
        orange="\e[1;33m"
        purple="\e[1;35m"
        red="\e[1;31m"
        magenta="\e[1;31m"
        violet="\e[1;35m"
        white="\e[1;37m"
        yellow="\e[1;33m"     fi     # Only show username/host if not default
    function usernamehost() {         # Highlight the user name when logged in as root.
        if [[ "${USER}" == *"root" ]]; then
            userStyle="${red}";
        else
            userStyle="${magenta}";
        fi;         userhost=""
        userhost+="\[${userStyle}\]$USER "
        userhost+="${white}at "
        userhost+="${orange}$HOSTNAME "
        userhost+="${white}in"         if [ $USER != "$default_username" ]; then echo $userhost ""; fi
    }     function prompt_git() {
        # this is >5x faster than mathias's.         # check if we're in a git repo. (fast)
        git rev-parse --is-inside-work-tree &>/dev/null || return         # check for what branch we're on. (fast)
        #   if… HEAD isn’t a symbolic ref (typical branch),
        #   then… get a tracking remote branch or tag
        #   otherwise… get the short SHA for the latest commit
        #   lastly just give up.
        branchName="$(git symbolic-ref --quiet --short HEAD 2> /dev/null || \
            git describe --all --exact-match HEAD 2> /dev/null || \
            git rev-parse --short HEAD 2> /dev/null || \
            echo '(unknown)')";         ## early exit for Chromium & Blink repo, as the dirty check takes ~5s
        ## also recommended (via goo.gl/wAVZLa ) : sudo sysctl kern.maxvnodes=$((512*1024))
        repoUrl=$(git config --get remote.origin.url)
        if grep -q chromium.googlesource.com <<<$repoUrl; then
            dirty=" ⁂"
        else             # check if it's dirty (slow)
            #   technique via github.com/git/git/blob/355d4e173/contrib/completion/git-prompt.sh#L472-L475
            dirty=$(git diff --no-ext-diff --quiet --ignore-submodules --exit-code || echo -e "*")             # mathias has a few more checks some may like:
            #    github.com/mathiasbynens/dotfiles/blob/a8bd0d4300/.bash_prompt#L30-L43
        fi         [ -n "${s}" ] && s=" [${s}]";
        echo -e "${1}${branchName}${2}$dirty";         return
    }     # ------------------------------------------------------------------
    # | Prompt string                                                  |
    # ------------------------------------------------------------------     PS1="\[\033]0;\w\007\]"                                 # terminal title (set to the current working directory)
    PS1+="\n\[$bold\]"
    PS1+="\[$(usernamehost)\]"                              # username at host
    PS1+="\[$green\]\w"                                     # working directory
    PS1+="\$(prompt_git \"$white on $purple\" \"$cyan\")"   # git repository details
    PS1+="\n"
    PS1+="\[$reset$white\]\\$ \[$reset\]"     export PS1     # ------------------------------------------------------------------
    # | Subshell prompt string                                         |
    # ------------------------------------------------------------------     export PS2="⚡ "     # ------------------------------------------------------------------
    # | Debug prompt string  (when using `set -x`)                     |
    # ------------------------------------------------------------------     # When debugging a shell script via `set -x` this tricked-out prompt is used.     # The first character (+) is used and repeated for stack depth
    # Then, we log the current time, filename and line number, followed by function name, followed by actual source line     # FWIW, I have spent hours attempting to get time-per-command in here, but it's not possible. ~paul
    export PS4='+ \011\e[1;30m\t\011\e[1;34m${BASH_SOURCE}\e[0m:\e[1;36m${LINENO}\e[0m \011 ${FUNCNAME[0]:+\e[0;35m${FUNCNAME[0]}\e[1;30m()\e[0m:\011\011 }'     # shoutouts:
    #   https://github.com/dholm/dotshell/blob/master/.local/lib/sh/profile.sh is quite nice.
    #   zprof is also hot. } set_prompts
unset set_prompts

第二步:加入bash_profile

$ vim ~/.bash_profile
## add code to buttom
[[ -s $HOME/.bash_prompt ]] && source $HOME/.bash_prompt

重新打开命令行 或者执行 source ~/.bash_profile  就可以看到效果了,是不是非常炫呀

------------------------我是优雅分割线-----------------------

命令行 佛祖像

$ vim ~/.bash_profile

## add code to buttom

echo -ne "\033[0;33m"
cat<<EOT
                                  _oo0oo_
                                 088888880
                                 88" . "88
                                 (| -_- |)
                                  0\ = /0
                               ___/'---'\___
                             .' \\\\|     |// '.
                            / \\\\|||  :  |||// \\
                           /_ ||||| -:- |||||- \\
                          |   | \\\\\\  -  /// |   |
                          | \_|  ''\---/''  |_/ |
                          \  .-\__  '-'  __/-.  /
                        ___'. .'  /--.--\  '. .'___
                     ."" '<  '.___\_<|>_/___.' >'  "".
                    | | : '-  \'.;'\ _ /';.'/ - ' : | |
                    \  \ '_.   \_ __\ /__ _/   .-' /  /
                ====='-.____'.___ \_____/___.-'____.-'=====
                                  '=---='               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        天下武功  iii  唯快不破
EOT
echo -ne "\033[m"

原文地址:【iTerm2】美化你的Terminal 赠佛祖像
标签:iTerm2   terminal   佛祖

智能推荐

最新文章

  1. OLE/COM 对象查看器 &amp; OLE常用术语
  2. Autodesk 360 Mobile不能显示图片?
  3. 【Excel】Excel根据单元格背景色求和
  4. android 入门 005(登录记住)
  5. windows下ftp上传下载和一些常用命令
  6. 【HDOJ】1756 Cupid&#39;s Arrow
  7. bind的例子
  8. 同一個Loader對象傳入不同參數時,从数据库中查询的結果每次都一樣
  9. PHP安全编程:register_globals的安全性 全局变量注册(转)
  10. LINQ 用法,返回结果不是在定义时取值,而是在调用时实时取值,有意思!
  11. PHP类中的七种语法说明
  12. Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
  13. IntelliJ IDEA 导入eclipse项目包及附属包
  14. CocosCreator资源工作流程
  15. RN酷炫组件圆形加载
  16. Mybatis 使用 mapper 接口规范的 一对一, 一对多,多对多映射
  17. android 近百个源码项目
  18. npm查看全局安装过的包
  19. ajax上传表单的俩种方式
  20. USB3.0测试和使用说明

热门文章

  1. 【bzoj2002】[Hnoi2010]Bounce 弹飞绵羊 分块
  2. DP+路径 URAL 1029 Ministry
  3. 关于Java的数据结构HashMap,ArrayList的使用总结及使用场景和原理分析
  4. LianLianKan[HDU4272]
  5. ZOJ 3626(树形DP+背包+边cost)
  6. HTML6 展望
  7. eclipse生成jar包
  8. CentOS6.4 配置Haproxy
  9. COJ969 WZJ的数据结构(负三十一)
  10. try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行?