Vim

复制内容到剪贴板 +可以把内容复制到剪贴板寄存器,就能在其他应用中贴。 :reg [register_name] 查看指定寄存器的内容 "+yy // 复制当前行到剪切板 "+p // 将剪切板内容粘贴到光标后面 "ayy // 复制当前行到寄存器 a "ap // 将寄存器 a 中的内容粘贴到光标后面 Vim 有 12 个粘贴板依次编号为:0、1、2、…、9、a、"、+,其中 + 号为系统粘贴板,” 为临时粘贴板。系统剪切板中的内容可在其他程序中使用。上面的复制指令都可以配合剪切板进行操作。“nyw 复制当前单词到 n 号剪切板(双引号开始) “np 粘贴 n 号剪切板内容到当前位置后 “+Y 复制当前行到系统剪切板”+nY 复制当前行往下 n 行到系统剪切板”+p 粘贴系统剪切板内容到当前位置后 标记,mark 一下 mc标记一个位置c,当在本页其他地方完成代码之后,有时因为不是用的 vim 的G或g位移操作,所以两个点号不一定能回来,但是如果在离开前就 mark 了它,`c 一下就能会到 c 标记的地方,这里用其他字母也行,只要自己能记住,我从别的地方学的是 e - end,c - current,s - start,比如代码开头的 import 内容或者常量不对调整,则标记一个 s,当前的代码工作地方标记为 c,这样可以在开头和当前不断跳转。 replace Search and replace :%s/foo/bar/g, Find each occurrence of ‘foo’ (in all lines), and replace it with ‘bar’. 插件 Youcompleteme 文章 ...

December 20, 2021 · 3 min · Peter

api security checklist

开发安全的 API 所需要核对的清单 https://github.com/shieldfy/API-Security-Checklist https://github.com/shieldfy/API-Security-Checklist/blob/master/README-zh.md

December 19, 2021 · 1 min · Peter

Docker Cheatsheet

docker cheatsheet docker # 不使用缓存重新build docker build . --no-cache # tag docker build -t peterchen0802/mypandoc:latest . docker tag peterchen0802/mypandoc:latest mypandoc:latest # 查看容器日志 docker logs SERVICE_NAME [-f] # 导出容器 # 注:用户既可以使用 docker load 来导入镜像存储文件到本地镜像库,也可以使用 docker import 来导入一个容器快照到本地镜像库。这两者的区别在于容器快照文件将丢弃所有的历史记录和元数据信息(即仅保存容器当时的快照状态),而镜像存储文件将保存完整记录,体积也要大。此外,从容器快照文件导入时可以重新指定标签等元数据信息。 docker export CONTAINER > TARFILENAME docker export CONTAINER -o TARFILENAME # 导入容器 docker import [OPTIONS] file|URL|- [REPOSITORY[:TAG]] docker import mypandoc.tar peterchen0802/mypandoc:latest # 指定导入的镜像名称 # -----清理 start----- ## 磁盘容量查看 docker system df ## 清理 docker rmi $(docker images --filter "dangling=true" -q) ## 清理无标签的镜像 docker image prune ## 清理磁盘,删除关闭的容器、无用的数据卷、网络,以及dangling镜像(无tag的镜像)。 docker system prune ## 更彻底的删除,将没有容器使用的镜像删除: docker system prune -a # -----清理 end----- docker-compose ...

December 6, 2021 · 1 min · Peter

tmux

tmux 终端服用软件,session可以保存在tmux server中,就算iterm等终端关闭也可以恢复,远程连接的时候避免掉线(类似的功能的软件还有,screen)。 参考 十分钟学会 tmux Tmux - Linux从业者必备利器 * cheatsheet 优雅地使用命令行:Tmux 终端复用 Tmux使用手册 本机,cheatsheet-tmux 安装 brew install tmux 基于参考第二篇文章,配置: $ cd $ rm -rf .tmux $ git clone https://github.com/gpakosz/.tmux.git $ ln -s -f .tmux/.tmux.conf $ cp .tmux/.tmux.conf.local . 概念 session,不同的会话 window,不同的窗口,物理划分,一个session可以有多个window pane,窗格,一个window可以用过 %/" 划分为多个窗格 tmux操作 tmux ls,查看打开的session tmux a,恢复 tmux a -t SESSION,恢复指定session C-b操作 前缀快捷键,^b % 左右平分出两个pane " 上下平分出两个pane x 关闭当前窗格 { 当前窗格前移 } 当前窗格后移 ; 选择上次使用的窗格 o 选择下一个窗格,也可以使用上下左右方向键来选择 space 切换窗格布局,tmux 内置了五种窗格布局,也可以通过 ⌥1 至 ⌥5来切换 z 最大化当前窗格,再次执行可恢复原来大小 q 显示所有窗格的序号,在序号出现期间按下对应的数字,即可跳转至对应的窗格 resize pane C-b :resize-pane -D/U/R/L 20 修改配置 ~/.tmux.conf.local ~/.tmux.conf source file ...

November 17, 2021 · 1 min · Peter

Nginx

nginx [toc] 常用命令 nginx -s stop nginx -s reload 简介 反向代理 一句话: 什么是正向代理?代理的是客户端 什么是反向代理?代理的是服务器,客户端是无感知的 nginx反向代理配置 正常情况: client —(send request)—> server 代理情况: client —(send request)—> clinet proxy –(send request)—> server 反向代理: client -(send request)-> server proxy -(send request)-> other server 可以看到反向代理并不是真的反过来,而是代理人的身份由客户端转向了服务端,也因为代理是在服务端,所以客户端是对此无感知的。 负载均衡 将原先集中请求到单个服务器的请求分发到多个服务器上,目的是为了支持服务横向扩展。 动静分离 配置 全局 配置文件开始到events之间的内容,主要是设置一些影响nginx运行的配置指令,比如: 用户(组) worker process数量 进程pid存放路径 日志存放路径和类型 配置文件的引入 events 配置nginx服务器与用户的网络连接,此部分对性能影响较大,应根据实际情况处理,比如: 是否开启对多worker process下的网络连接进行序列化 是否允许同时接受多个网络连接 选取处理连接的事件驱动模型 每个worker 支持的最大连接数等 http 全局配置 server配置 全局 location配置 server 配置和匹配规则 一个http服务可以有多个server,而对server的路径匹配,反向代理都是在这里配置的。 在server中最重要的一项配置:server_name的配置。server_name决定了来了一个url,到底是哪个server处理该请求。nginx会依次找和url配置的第一次出现的server。server_name可以使用通配符,也可以使用正则表达式。而且一个server的server_name可以多个,以空格分隔。更详细的关于server_name匹配规则,参看这里 ...

November 10, 2021 · 1 min · Peter