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 别名
| 别名 | 命令 |
|---|---|
g | git |
gi | git init |
gcl | git clone |
gst | git status |
gss | git status -s |
gl | git log --oneline --graph --decorate --all |
glo | git log --oneline -20 |
gd | git diff |
gds | git diff --staged |
gb | git branch |
gba | git branch -a |
gbd | git branch -d |
gbD | git branch -D |
gco | git checkout |
gcob | git checkout -b |
gsw | git switch |
gswc | git switch -c |
ga | git add |
gaa | git add -A |
gap | git add -p |
gc | git commit |
gcm | git commit -m |
gca | git commit --amend |
gcane | git commit --amend --no-edit |
gsh | git stash |
gshl | git stash list |
gshp | git stash pop |
gshd | git stash drop |
gf | git fetch |
gfa | git fetch --all |
gpl | git pull |
gplr | git pull --rebase |
gps | git push |
gpsu | git push -u origin HEAD |
gpsf | git push --force-with-lease |
gm | git merge |
grb | git rebase |
grbi | git rebase -i |
grbc | git rebase --continue |
grba | git rebase --abort |
grh | git reset HEAD |
grhh | git reset --hard HEAD |
gclean | git clean -fd |
gt | git tag |
gtl | git 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 历史带时间戳,并去掉重复记录