我的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
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
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
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
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