☺ 把 bash 改造成 zsh 的形状

背景 由于以下原因,不是很想安装 zsh: zsh 不如 bash 轻量 远程主机一般自带 bash,zsh 需要额外安装 zsh 配置比较复杂,需要额外的插件 年龄大了,喜欢做减法,折腾不动 叠甲 当然我之前对 zsh 就不是深度用户,只是喜欢 git 插件、能显示时间和 ret code,还有历...
☺ 把 bash 改造成 zsh 的形状
☺ 把 bash 改造成 zsh 的形状

背景

由于以下原因,不是很想安装 zsh:

  1. zsh 不如 bash 轻量
  2. 远程主机一般自带 bash,zsh 需要额外安装
  3. zsh 配置比较复杂,需要额外的插件
  4. 年龄大了,喜欢做减法,折腾不动

叠甲

当然我之前对 zsh 就不是深度用户,只是喜欢 git 插件、能显示时间和 ret code,还有历史命令匹配。

效果

  • 显示时间
  • 显示 git branch(如果在 git 仓库)
  • 显示上次命令的 ret code(如果非 0)

image
image

至于历史命令暂时还使用 ctrl + r 替代:

image

用法

其实就是把这段加到 ~/.bashrc 里即可:

GREEN="\[\e[32;1m\]"
BLUE="\[\e[36;1m\]"
WHITE="\[\e[37;1m\]"
BLACK="\[\e[30;1m\]"
RED="\[\e[31;1m\]"
YELLOW="\[\e[33;1m\]"
PURPLE="\[\e[35;1m\]"
DARK_GREEN="\[\e[36;1m\]"
CLEAR="\[\e[0m\]"

_JOB_="\j"
_FILECOUNT_="Files: \$(/bin/ls -1 | /usr/bin/wc -l | /bin/sed 's: ::g')"
_HISTORY_="\!"
_DATE_="\$(/bin/date)"
_CLOCK_="\t"
_SIZE_="Size: \$(/bin/ls -lah | /usr/bin/head -n 1 | /usr/bin/cut -d ' ' -f 2)"
_PATH_="\$(pwd)"
_GIT_="\$(git branch --no-color 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/')"
_EXIT_CODE_="\$(_VALU_="\$?" ; if [ \$_VALU_ == 0 ]; then echo ''; else echo \"\$_VALU_ \"; fi)"

export PS1="$RED$_EXIT_CODE_$YELLOW\u$BLUE@$YELLOW\h $GREEN$_PATH_ $BLUE$_GIT_ $WHITE$_CLOCK_ \n$CLEAR\$ "

其他

如果有大佬可以丰富一下 bash 提示符的功能,欢迎补充互相学习~

11 个帖子 - 8 位参与者

阅读完整话题

来源: LinuxDo 最新话题查看原文