tiancheng91 / collection

笔记
https://github.com/tiancheng91/collection/issues
21 stars 1 forks source link

开发环境快速部署 #2

Open tiancheng91 opened 6 years ago

tiancheng91 commented 6 years ago

docker 统一环境/codespace

https://github.com/devcontainers/images/tree/main/src/universal mcr.microsoft.com/devcontainers/universal:focal

tiancheng91 commented 6 years ago

windows 10

包管理工具选择了https://github.com/lukesampson/scoop, 日常可能用到的工具基本都有收录.

set-executionpolicy remotesigned -scope currentuser

[environment]::setEnvironmentVariable('SCOOP','C:\Scoop','User')
$env:SCOOP='C:\Scoop'
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')

scoop install git
scoop bucket add extras
scoop bucket add versions

scoop search ssh
scoop update

# base
scoop install git git-lfs openssh vcredist
scoop install curl wget aria2 coreutils cmder

# runtime
scoop install php python nodejs-lts ruby kotlin openjdk
scoop install go dark  # need proxy
# dev tools
scoop install adb ffmpeg thrift upx youtube-dl
# cask package
scoop install vscode chromium robo3t sourcetree

# scoop reset python27
# scoop config proxy user:password@default

#export http_proxy='http://127.0.0.1:8123'  
#export https_proxy='http://127.0.0.1:8123'  
tiancheng91 commented 6 years ago


xcode-select --install

# brew
export HOMEBREW_API_AUTO_UPDATE_SECS=86400
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"
/bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/Homebrew/install@HEAD/install.sh)"

# brew env (调整PATH优先级)
echo 'eval $(/opt/homebrew/bin/brew shellenv)' >> ~/.zprofile
eval $(/opt/homebrew/bin/brew shellenv)

# utils
brew install coreutils curl aria2 wget zsh telnet
brew install openssl unar p7zip 
brew install git git-flow git-lfs java11
brew link java11

# cask
brew install intellij-idea goland visual-studio-code
brew install iterm2 feishu postman android-platform-tools google-chrome charles

# oh-my-zsh
sh -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ohmyzsh/ohmyzsh/tools/install.sh)"

# go∂
brew install go
go env -w GOPROXY=[https://goproxy.io,direct](https://goproxy.io%2Cdirect/)
go env -w GOPRIVATE=gitlab.com
go install golang.org/x/tools/...@latest
go install github.com/go-delve/delve/cmd/dlv@latest
echo 'PATH=~/go/bin:$PATH' >> .zprofile

# python
brew install python3
brew link python3
python3 -m ensurepip --upgrade
python3 -m pip install -i https://mirrors.ustc.edu.cn/pypi/web/simple pip -U
pip config set global.index-url https://mirrors.ustc.edu.cn/pypi/web/simple

# nodejs
brew install node@14
brew link node@14
echo "
electron_mirror=http://npm.taobao.org/mirrors/electron/
sass_binary_site=https://npm.taobao.org/mirrors/node-sass/
registry=https://registry.npm.taobao.org
" > .npmrc
npm -g install yarn cnpm

## 常用配置
# gitconfig 
echo '
[url "git@gitlab.com:"]
        insteadOf = https://gitlab.com/
' >> .gitconfig

# ssh
echo '
Host *
    port 22
    StrictHostKeyChecking no
    ServerAliveInterval 50
    ControlPersist 2h
    ControlMaster auto
    IdentityFile ~/.ssh/id_rsa
' >> .ssh/config

## cli proxy
echo '
export PROXY="http://127.0.0.1:18081"
alias sc="export https_proxy=$PROXY && export http_proxy=$PROXY"
alias cs="export https_proxy= && export http_proxy="
' >> .zprofile
tiancheng91 commented 6 years ago

PAC自动代理

tips: 国内无污染dns, 101.6.6.6

var PROXY = 'SOCKS5 127.0.0.1:18081';

var HOSTS = [
    // google
    'google.com', 'google.ca', 'gmail.com',  'googleapis.com',
    'chrome.com', 'blogspot.com', 'appspot.com', 'ytimg.com', 'youtube.com', 'googlevideo.com',
    'recaptcha.net', 'goo.gl', 'g.co', 'googlezip.net', 'youtu.be', 'gvt1.com',
    'gstatic.com', 'googleusercontent.com', 'ggpht.com',

    // dev tools 部分可以获取到google ip
    'googlecode.com', 'googlesource.com', 'gcr.io', 'android.com', 'golang.org', 'chromium.org',
    // 'material.io',

    // 社交类
    'm.me', 'fb.com', 'm.me', 'facebook.com', 'messager.com', 'fbsbx.com', 'fbcdn.net',
    'twitter.com', 't.co', 'twitpic.com', 'twimg.com', 'tweetdeck.com',
    'disqus.com', 'zh.wikipedia.org',

    // dev
    'duckduckgo.com', 'datadoghq.com', 'medium.com',

    // amazon
    'amazon.com', 'amazonaws.com',

    // dropbox
    'dropbox.com', 'dropboxusercontent.com', 'db.tt', 'dropbox-dns.com', 'dropboxstatic.com',

    // coin
    'bitcointalk.org', 'zb.com', 'xmrchain.net', 'mymonero.com', 'supportxmr.com', 'binance.com', 'kucoin.com',

    // cdn
    'cloudfront.net', 'fastly.net',
];

var IGNORE = [
    // 本地地址
    'local', 'test', 'dl.google.com', 'google.cn'
]

var HOST_KEYWORDS = [

];

var URL_KEYWORDS = [
    'google', 'facebook', 'twitter', 'torrent', 'proxy', 'vpn'
];

var BLOCK_HOSTS = cleanHosts(HOSTS);
var IGNORE_HOSTS = cleanHosts(IGNORE);

function inHosts(host, hosts) {
    var hostParts = host.split('.'), testHost = [];
    while (hostParts.length) {
        testHost.unshift(hostParts.pop());
        if (hosts[testHost.join('.')]) {
            return true;
        }
    }
}

function inKeywords(uri, keywords) {
    for (var i = 0; i < keywords.length; i++) {
        if (uri.indexOf(keywords[i]) >= 0) {
            return true;
        }
    }
}

function cleanHosts(hosts) {
    var r = {};
    for (var i = 0; i < hosts.length; i++) {
        if (hosts[i][0] !== '!')
            r[hosts[i]] = true;
    }
    return r;
}

function FindProxyForURL(url, host) {
    if (inHosts(host, IGNORE_HOSTS)) {
        return 'DIRECT';
    }
    if (inHosts(host, BLOCK_HOSTS) || inKeywords(url, URL_KEYWORDS)) {
        return PROXY;
    }

    return 'DIRECT';
}
tiancheng91 commented 6 years ago

zshrc

# digitalocean
 export DO_API_KEY=""
 # datadog
 export DD_API_KEY=""
 # github
 export HUB_KEY=""

 ip() {
   [[ "$1" ]] || { echo "Error: Missing file" >&2; return 1; }
   curl "https://ip.cn/index.php?ip=$1"
 }

 git-io() {
   if [ -n "$2" ]; then
     curl -i https://git.io -F url="$1" -F code="$2";
   else
     curl -i http://git.io -F url="$1";
   fi
 }

 repo-init() {
   ss="$(basename $(dirname $PWD))/$(basename $PWD)"
   git push --set-upstream "git@gitlab.com:${ss}.git" master
   git remote add origin "https://gitlab.com/${ss}.git"
 }

 export GOPATH="$HOME/Workspace/go"
 export PATH="$GOPATH/bin:$PATH"

 export ANDROID_SDK_ROOT="/usr/local/share/android-sdk"
 export ANDROID_HOME="/usr/local/share/android-sdk"
 export PATH="$ANDROID_SDK_ROOT/platform-tools:$PATH"

# docker-machine env cloud
 alias node-repl="node --experimental-repl-await"
 alias node-debug="node --inspect"

 alias burpsuite="nohup ~/.config/burpsuite/burpsuite.sh > /dev/null 2>&1 &"
 alias mtr="sudo mtr"
 alias prp="pipenv run python"
 alias bypy="bypy --mirror nj.baidupcs.com --processes 20"
tiancheng91 commented 5 years ago

java系sdk工具管理

# export SDKMAN_DIR="/usr/local/sdkman" && curl -s "https://get.sdkman.io" | bash
curl -s "https://get.sdkman.io" | bash
source "$HOME/.sdkman/bin/sdkman-init.sh"
sdk version

sdk list java
sdk install java 8.0.202-amzn
sdk uninstall java
sdk current java