Skip to content

bashtidy ​

容器里的 bash 用 bashtidy 做了配置。它是一个轻量的 bash 配置:能显示 git 状态的提示符、简短的 git 别名、彩色输出,还有一个保存环境变量的小工具。每个 shell 都会自动加载,不需要手动开启。

提示符 ​

在 git 仓库里,提示符显示路径和分支;在仓库外只显示路径:

[~/projects/app :: master] ➜         # 没有改动
[~/projects/app :: dev*] ➜           # dev 分支,有改动
[~/projects/app :: feature-auth+] ➜  # 有未跟踪的文件
[~/projects/app] ➜                   # 不是 git 仓库

分支名按类型显示不同颜色:

分支颜色
main / master绿色
dev黄色
feature-*蓝色
其他橙色

分支名后面的状态标记(黄色):

标记含义
*有修改、新增或删除的文件
+有未跟踪的文件
!有合并冲突

Git 别名 ​

别名命令
ggit
gigit init
gclgit clone
gstgit status
gssgit status -s
glgit log --oneline --graph --decorate --all
glogit log --oneline -20
gdgit diff
gdsgit diff --staged
gbgit branch
gbagit branch -a
gbdgit branch -d
gbDgit branch -D
gcogit checkout
gcobgit checkout -b
gswgit switch
gswcgit switch -c
gagit add
gaagit add -A
gapgit add -p
gcgit commit
gcmgit commit -m
gcagit commit --amend
gcanegit commit --amend --no-edit
gshgit stash
gshlgit stash list
gshpgit stash pop
gshdgit stash drop
gfgit fetch
gfagit fetch --all
gplgit pull
gplrgit pull --rebase
gpsgit push
gpsugit push -u origin HEAD
gpsfgit push --force-with-lease
gmgit merge
grbgit rebase
grbigit rebase -i
grbcgit rebase --continue
grbagit rebase --abort
grhgit reset HEAD
grhhgit reset --hard HEAD
gcleangit clean -fd
gtgit tag
gtlgit tag -l
gwip暂存全部改动,并以 "WIP" 提交
gunwip撤销上一次提交

envhub:保存环境变量 ​

envhub 会把环境变量保存下来,之后每个新打开的 shell 都会自动加载;改动在当前 shell 里也立即生效。

命令作用
envhub set KEY VALUE保存一个变量,并立即导出
envhub set KEY同上,但提示你输入值(不显示,也不记入历史)
envhub unset KEY删除一个变量,并立即取消
envhub list列出已保存的变量
envhub edit用 $EDITOR 编辑,保存后重新加载
bash
envhub set PROXY "http://127.0.0.1:7890"
envhub set OPENAI_API_KEY          # 提示输入,既不显示也不记录
envhub list
  • 变量保存在 ~/.config/envhub,只有你自己可读(权限 600)。
  • 在命令行里直接写出的值会进入 shell 历史。保存密钥时,请用不带值的 envhub set KEY。
  • 已经打开的 shell 仍然是旧值,要新开一个 shell 或执行 source ~/.bashrc 才会更新。
  • 和 /workspace 以外的所有内容一样,删除容器后保存的变量也会丢失,见数据与持久化。

其他便利功能 ​

  • ls、ll、la、l 带颜色
  • grep、fgrep、egrep、diff 带颜色
  • ..、...、.... 向上返回一、二、三级目录;- 回到上一个目录
  • shell 历史带时间戳,并去掉重复记录