我的Shell环境

zsh

作为重度shell用户,我使用zsh环境.为了便于环境维护,使用了oh-my-zsh插件

oh-my-zsh有很多主题和插件。

主题可以美化term终端。

插件可是效率倍增器。

我们在shell环境下习惯用TAB进行命令补全,但是命令的开关符选项,普通shell做不到。oh-my-zsh可以帮你。

例如,我输入k ,按TAB,就会提示kubectl的子命令,继续TAB,就会显示pod列表。

marszhang:~/ $ k exec redis-ha-haproxy-56b67dd888-98wsx                             [11:33:05]
gitlabee-12-f9ffdcffb-gtsw4        redis-ha-haproxy-56b67dd888-98wsx
mq-monitor-54c866b68b-gs7bh        redis-ha-haproxy-56b67dd888-9r6mx
nextcloud-6856c9ffd9-4zwtt         redis-ha-server-0
nexus3-7bff985978-qv974            redis-ha-server-1
psi-7486d64585-4d9v6               redis-ha-server-2
1
2
3
4
5
6

不同的插件使用上略有区别,具体需要看插件的说明。注意不要打开太多的插件,只开启平时常用的就好。

.zshrc

这个文件建议好好维护,写好注释,经常我们要设置很多环境变量,自己要写好这些环境变量是干什么的.

# Setting PATH for Python 3.7
# The original version is saved in .bash_profile.pysave
PATH="/Library/Frameworks/Python.framework/Versions/3.7/bin:${PATH}"
export PATH

# Setting dex2jar
export PATH=/usr/local/Cellar/dex2jar/2.0/bin:$PATH
# Setting chromedriver
export PATH=/Users/marszhang/opt/webdriver:$PATH
1
2
3
4
5
6
7
8
9

the fuck

敲错命令是常事,敲错了,重新输入更是烦事。建议尝试一下the fuck.

marszhang:~/ $ whick java                                                           [11:41:50]
zsh: command not found: whick
marszhang:~/ $ fuck                                                                 [11:42:06]
which java [enter/↑/↓/ctrl+c]
/Users/marszhang/java/zulu8.38.0.13-ca-jdk8.0.212-macosx_x64/bin/java
marszhang:~/ $                                                                      [11:42:09]
1
2
3
4
5
6

vim

重度vim用户.

我的vim配置如下

nlet! skip_defaults_vim
source $VIMRUNTIME/defaults.vim
"The following command puts the contents of ~/legend_header.txt
"under the cursor when the user types ":Legend" in normal mode.
command Legend :r ~/copyright.file.head

command Cheat :tabe ~/vim_cheat_sheet.markdown
command K8s :tabe ~/k8s_cheat_sheet.markdown
au BufNewFile,BufFilePre,BufRead *.md set filetype=markdown
set smartindent
set shiftwidth=4
set ts=4
set sts=4
set et
set number
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

自己做了3个自定义的vim命令

  • Legend是读入一个文件头,写代码时候常常需要有文件头声明。
  • Cheat是打开一个vim常用命令的说明文件,这个文件是我自己维护的。
  • K8s是k8s常用命令。如果用了zsh的插件,这个可以不用。我这个是在用zsh之前的遗留物。

设置

  • ts=4,设定tab宽度
  • sts=4,把tab转为4个空格
  • set number设置行号

sdkman

sdkman一套维护sdk的安装工具。

日常开发过程中经常需要使用多个版本的开发工具,并且在版本之间切换,sdkman提供了安装、卸载、版本切换的功能。

列出sdkman支持的开发工具

sdk list
1

安装sdk包

这个命名安装默认版本

sdk install <sdkname>
1

例如

sdk install vertx
1

列出sdk包的版本

sdk list <sdkname>
1

例如

sdk list gradle
1

安装sdk指定版本

sdk install <sdkname> <Identifier> 
1

例如

sdk install java 13.0.5-zulu
1

切换版本

sdk use <sdkname> <Identifier> 
1

kubectl增强

kubctx

kubens

https://github.com/ahmetb/kubectx
1