【iTerm2】美化你的Terminal 赠佛祖像
2024-10-18 21:18:45
我们开发就是喜欢各种酷炫的东西,对于有洁癖的我,连命令行都不放过了
先上图看效果,命令行显示高亮部分
实现过程:
第一步:.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 佛祖
智能推荐
- In MySQL, a zero number equals any string
- Ubuntu apparmor何方神圣
- 【运维工具】logrotate 日志管理神器
- 【Demo】HTML5 拍照上传
- Composer : php依赖管理工具
最新文章
- OLE/COM 对象查看器 &; OLE常用术语
- Autodesk 360 Mobile不能显示图片?
- 【Excel】Excel根据单元格背景色求和
- android 入门 005(登录记住)
- windows下ftp上传下载和一些常用命令
- 【HDOJ】1756 Cupid&#39;s Arrow
- bind的例子
- 同一個Loader對象傳入不同參數時,从数据库中查询的結果每次都一樣
- PHP安全编程:register_globals的安全性 全局变量注册(转)
- LINQ 用法,返回结果不是在定义时取值,而是在调用时实时取值,有意思!
- PHP类中的七种语法说明
- Linux tomcat部署War包,Linux在Tomcat部署JavaWeb项目,Linux部署War包
- IntelliJ IDEA 导入eclipse项目包及附属包
- CocosCreator资源工作流程
- RN酷炫组件圆形加载
- Mybatis 使用 mapper 接口规范的 一对一, 一对多,多对多映射
- android 近百个源码项目
- npm查看全局安装过的包
- ajax上传表单的俩种方式
- USB3.0测试和使用说明
热门文章
- 【bzoj2002】[Hnoi2010]Bounce 弹飞绵羊 分块
- DP+路径 URAL 1029 Ministry
- 关于Java的数据结构HashMap,ArrayList的使用总结及使用场景和原理分析
- LianLianKan[HDU4272]
- ZOJ 3626(树形DP+背包+边cost)
- HTML6 展望
- eclipse生成jar包
- CentOS6.4 配置Haproxy
- COJ969 WZJ的数据结构(负三十一)
- try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,还是在return之后执行?