前言
不全的记录,只是有一些命令还不是很熟,记录下来备查
k8s 快捷键
将本地端口映射到 k8s 对应 pod:kubectl -n namespace port-forward authsv-7cfc56d85d-v24pb 9999:9090,-n 命名空间,9999 本地端口,9090 远程端口
实时打印 pod 日志:
1
kubectl -n namespace logs authsv-6f5f544d75-qgw6g authsv --tail 10 -f
获取定时任务列表:kubectl -n namespace get cronjob
删除节点:kubectl -n namespace delete xxx
进入容器执行 shell 命令:kubectl -n namespace exec pod -it sh
k8s 定时任务,没有秒
1 | # ┌───────────── 分钟 (0 - 59) |
Vim 快捷键
- vim 替换:%s/被替换字符/替换字符/g(不加 g 只替换每行第一个)
- 从当前行向上移动 n 行:n k
- 从当前行向下移动 n 行:n j
- 代替光标下的字母:r + 字母
- 代替多个字母:R + 输入 + ESC
- 选中删除并进入插入模式:c+e,到单词结尾,cw,cb 到单词开头,ciw 删掉单词并进入插入模式
- ctrl + D 提示命令
- :e 打开别的文件
- 查找:/,或者将光标移动到想要查找的单词上:*
- 跳转到匹配的括号:%
- 当前窗水平分割成两个窗口::sp
- 当前窗垂直分割成两个窗口::vsp
- 重命名当前 Vim 中打开的文件:
- :w newname,将文件写入新文件中做备份
- :e#,在当前 vim 中打开新文件
- :!rm oldname,利用全局 rm 命令删除老文件
- vim 打开文件并跳到指定行数:
- vim +lineNumber filename
- 配合 ag、grep 搜索结果很好使!
- 跳到上一个函数代码块(下一个):[[(]])
- 将下一行内容合并到上一行并添加空格:shift + j
- 撤销 u,恢复撤销内容:ctrl + r
- 数字加一(减一):ctrl + a (+),ctrl + x (-)
Space-Vim 快捷键
- space t n:显示/隐藏行号
- s g:垂直分屏
- s o:关闭其他窗口
- s Q:关闭当前窗口
- F2 打开语法树
- F3 打开文件树
- space 1:跳转到窗口1
- space s a d:使用 ag 进行搜索(基于打开文件时的位置)
- space s a p:使用 ag 进行搜索(整个项目目录)
- space ‘:打开 shell 窗口
Go 相关
- 查看生成的汇编代码:go tool compile -S file.go
- 检测是否有并发问题:go run -race file.go
- 编译期检查锁问题:go vet xx.go
pprof 工具:相关使用教程
分析应用程序的内存临时分配情况:
1
go tool pprof -alloc_objects http://localhost:9876/debug/pprof/heap
生成文字报告:pprof -top [main_binary] profile.pb.gz
生成 svg,在浏览器中打开:pprof -web [main_binary] profile.pb.gz
go race 工具,竞争检测器:go build -race,go test -race
Docker
- 构建 docker image:docker build -t alpinevim/latest -f AlpineWithVim ./
- -t 指定 repository 和 tag -f 指定 build 的 DockerFile
- 查看 docker image 列表:docker images
- 删除 image:docker rmi imageId
- 查看容器是否运行:docker ps -a
- 本机所有正在运行的容器:docker container ls
- 终止容器运行:docker container kill [containerID]
- 将本地目录挂在到 container 并执行命令:docker run -it -v localPath:/root alpinevimgo:latest sh -c ‘cd root && gcc -o test test.c’
- 外部访问容器:docker run -d -p 9090(host port):9090(container port) imageName
- 查看容器端口映射配置:docker port containerId
Git
- 查看某次 commit 提交内容:git show commit id
- 查看某次 commit 提交内容中某个文件的变更:git show commit id filename
- rebase:git rebase start end
- 查看某个文件的提交记录: git log filename
- 查看某个文件的变更内容:git difftool cmid1 cmid2 filename
- 查看两个分支文件内容差异:git diff branch1 branch2 filepath
- 查看别的分支文件:git show branch:file
- 将某个文件回滚到某次提交:git checkout commit id filepath
1 | git reset -mixed:此为默认方式,不带任何参数的git reset,这种方式,它回退到某个版本,只保留源码,回退commit和index信息 |
- 查看某次 commit 文件所有内容:git show commit id:file_path
- 想在 vim 中打开,可以 > filename 输出到文件中再打开,如果采用其他方式打开,因为识别不出来是什么语言没有代码高亮
Mongo
- 排序:sort() 1 升序,-1 降序
- 创建索引:createIndex 1:升序 ,-1:降序
- 删除索引:dropIndex(“name”)
- 查询指定字段:find({查询条件},{field: 1}),1 表示查询此字段,0 表示不查询该字段
etcd
和 vim 类似,一些 flag 和命令可以组合起来用
- 获取值和额外信息:etcdctl get key -wjson
- 只打印值:etcdctl get key –print-value-only
- 查看集群成员:etcdctl –write-out=table –endpoints=localhost:2379 member list
- 查询 key、value 以十六进制形式展示:etcdctl get key –hex
- 读取以 key 为前缀的所有键的命令:etcdctl get –prefix key –limit=10 –print-value-only
- 读取(删除)大于等于键 b 的值的命令:etcdctl get(del) –from-key b
- 删除 key,并返回 kv 和被删除的数量:etcdctl del –prev-kv key
- 观察 key 的变化:etcdctl watch key
- 观察多个 key:etcdctl watch -i
- watch key1
- watch key2
- …
- 从第 n 个版本开始观察变化:etcdctl watch key –rev=n
awk
- 指定使用某个字符作为分隔,比如冒号’:’:awk -F :
- 拼接字符串使用引号:awk -F : ‘{print “"“$1”"“ “ : "groupsv-svc:9090/rpc.Group/“ $2”"“}’ test1.txt
一些好用的命令行工具
- pip3 install mycli:比 mysql 命令好用一些,有语法提示,更加友好的表名提示,语法高亮
- ag:ag -G 只搜索匹配文件名的内容
- 可以生成 html 预览的 pandoc:pandoc README.md -f markdown -t html -s -o test1.html
- -f ====> –from=format
- -t ====> –to=format
无处归档的小命令
- 重度命令行依赖者如何方便的在 mac 终端中打开浏览器 & 指定网页或者本地文件:
- open -a “Google Chrome” index.html(https://www.google.com)
- 设置别名 chrome=open -a “Google Chrome”,chrome index.html
- zshell 下设置搜索插件:omz plugin enable web-search
- 然后就可使用 google asdfxx,来搜索你想要搜索的内容了。好景不长,经测试,google 后跟英文可以成功打开 chrome google 搜索,但是中文不行。用别人的电脑试了一下可以,查看 websearch 实现发现也是使用 open 命令打开相应的搜索使用 url + 拼接想要搜索的东西,直接用 open 命令也无法打开浏览器跳转到指定页,英文就可以。略醉……
- ffmpeg -i xxx.jpeg -q 10 xxx_compress.jpeg:帮对象处理图片,上传证件照片之类的限制图片大小,可以使用 ffmpeg 压缩 -q 之后跟随的是压缩等级
- 安装:brew install ffmpeg(ffmpeg 依赖的库非常多,所以网不好安装失败的可能很大。。。多试几次就好了)