4 分钟
备忘小技巧
终端使用http/https代理
针对Linux、OSX
# socks5
export all_proxy=socks5://user:password@host:port
# http/https
export http_proxy=http://user:password@host:port
export https_proxy=http://user:password@host:port
ssh使用socks5代理访问内网
不带密码
ssh -o ProxyCommand="nc -X 5 -x proxy_host:proxy_port %h %p" user@host -p port
使用密码
# osx需要安装ncat: brew install nmap
ssh -o ProxyCommand="ncat --proxy proxy_host:proxy_port --proxy-type socks5 --proxy-auth user:password %h %p" user@host -p port
查看Python包目录
help('django')
或者
import django
import sys
sys.modules['django']
Python非PIP管理的包加入PythonPath
方法1:使用PYTHONPATH
环境变量- 不推荐:原因是优先级过高,可能覆盖系统包
- 方法2:在site-packages目录价添加一个.pth目录(推荐)
- Unix系:
/usr/local/lib/python2.7/site-packages/my.pth
- Unix系:
npm权限问题
npm 全局安装最好使用--unsafe-perm
选项
SSH直接执行脚本环境变量的问题
Hadoop Spark这种通过SSH启动集群的分布式系统可能出现的问题
参见 Linux Shell 初始化文件 —— 环境变量写在哪里?
mac 自动挂载NTFS U盘
brew cask install osxfus
brew install ntfs-3g
# 如果报Link错误,执行如下
# mkdir /usr/local/sbin
# sudo chown sunben /usr/local/sbin
# brew link ntfs-3g
关机;启动按住 command+R
进入恢复模式
sudo mv "/Volumes/Macintosh HD/sbin/mount_ntfs" "/Volumes/Macintosh HD/sbin/mount_ntfs.orig"
sudo ln -s /usr/local/sbin/mount_ntfs "/Volumes/Macintosh HD/sbin/mount_ntfs"
重启进入系统即可
git 技巧
git禁用提交前检查
git commit -m "message" --no-verify
撤销add
git reset HEAD .
或者git reset
在不更改工作区的情况下发创建分支
git checkout -b 分支名
场景:撤销几次提交,将其合并成一次提交
git log
查看要回退的hash- 先
git reset --soft hash
或 者git reset --soft head~1
(表示回退到head-1版本) - 然后在add commit
- 撤销
reset --soft
:做不到,只能重新commit
被撤销的提交记录是找不到的
场景:正在开发新功能但是不能上线,此时线上版本出现bug急需修复
- 方案1:
- 创建新分支,提交到新的分支上,然后切换回线上分支再修改
- 推荐方案(参考git stash)
- 如果有新添加的,先add 新文件
- 放到
stash
中:git stash save "消息"
- 此时工作区就是干净的了,然后进行bug修复,提交上线
- 将
stash
的内容取回工作区git stash pop
- 清理暂存区
git reset HEAD .
push前git pull
git pull
不推荐方案 相当于git fetch && git merge
git pull --rebase
推荐 相当于git fetch && git rebase
如果发生冲突:- 解决冲突
- 然后
git add .
- 最后
git rebase --continue
- 如果反悔执行
git rebase --abort
还原历史中的某一次提交revert
将会产生一个新的提交
git revert hash
或者git revert HEAD
或者git revert HEAD^
,填写提交信息- 如果发生冲突(还原的那次提交之后的提交有修改),处理冲突,然后
git add .
- 最后
git commit
,不要添加提交信息 - 如果后悔执行
git revert --abort
还原历史上的操作
注意:add和工作区的数据无法恢复
git reflog
查看记录git reset --hard hash
恢复
两个核心分支冲突,无法提交 MR
- 假设 master 和 dev 分支都是受保护的
- 按照规定应该 master 分支的变更只允许 dev -> master
某时刻,我们提交了个一个 bugfix -> master,导致 dev 和 master 产生了冲突
git checkout master & git pull git checkout dev & git pull git checkout -b fix-dev-master git merge master # git rebase master # 理论上 rebase 应该也行 # 处理冲突,执行如下命令 git add . git merge --continue # git rebase --continue # 理论上 rebase 应该也行
VSCode Go开发环境
VSCode Python开发环境
VSCode支持VIM插件
- 搜索安装VIM扩展
- 安装输入法选择器
https://github.com/daipeihust/im-select/tree/master/im-select-win
- MAC
curl -Ls https://raw.githubusercontent.com/daipeihust/im-select/master/install_mac.sh | sh
- MAC
配置输入法(mac如下)
{ "vim.autoSwitchInputMethod.defaultIM": "com.apple.keylayout.ABC", "vim.autoSwitchInputMethod.obtainIMCmd": "/usr/local/bin/im-select", "vim.autoSwitchInputMethod.switchIMCmd": "/usr/local/bin/im-select {im}", "vim.autoSwitchInputMethod.enable": true, }
配置ABC输入法支持长按连续输入
defaults write -g ApplePressAndHoldEnabled -bool false # 然后重启
VSCode VIM插件独有的命令
gd
相当于vim中的ctrl+]
跳转到定义gb
多光标模式,找到下一个和当前单词匹配的单词并添加光标gh
显示当前位置的悬浮提示框
VSCode 全局使用代理(包括socks5)
brew install proxychains-ng
安装 proxychains- 配置proxychains,
vim /usr/local/etc/proxychains.conf
添加例如socks5 ip地址 8011
- Mac需要关闭SIP
- 重启长按
cmd+R
进入恢复模式 - 在命令行中输入
csrutil disable
,然后重启
- 重启长按
- 使用
proxychains4 /Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code
打开VSCode
VSCode 远程开发
创建 Maven Wrapper
进入 Maven 项目根目录
mvn -N io.takari:maven:wrapper
配置代理
.mvn/wrapper/maven-wrapper.properties
distributionUrl=https://mirrors.huaweicloud.com/repository/maven/org/apache/maven/apache-maven/3.6.3/apache-maven-3.6.3-bin.zip
wrapperUrl=https://mirrors.huaweicloud.com/repository/maven/io/takari/maven-wrapper/0.5.6/maven-wrapper-0.5.6.jar
.mvn/wrapper/settings.xml
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
脚本使用
./mvnw clean package -s .mvn/wrapper/settings.xml -DskipTests