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:portssh使用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 mergegit 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