Mac开发环境搭建-v2

序言

电脑不幸中招 键盘事件,已经换了一台了,苹果这质量是每况愈下啊,哎哎哎。这是第二次重装软件了,所以积累了不少经验。
将会从以下方面进行介绍,所有的软件安装,请按照顺序来操作,有些是有依赖关系的。

  • 系统设置
  • 常用软件
  • Node开发配置
  • Java开发配置

系统设置

开启Mac三指拖拽的手势

使用三指拖动文件、窗口等,非常好用的功能,macOS系统中默认关闭了这个功能,参考百度经验的设置方法:点击跳转

常用软件

安装 Oh My ZSH

为什么装这个以及主题设置,网上搜索教程吧,一大把,官方地址:https://ohmyz.sh

1
sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

安装 homebrew 包管理

有了这个包管理工具之后,以后安装软件会非常方便,谁用谁知道。官方地址:http://brew.sh,使用下面的命令进行安装,耐心等待一会儿就安装好了。

1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

使用brew安装软件,测试安装是否成功

1
2
3
4
5
6
7
8
$ brew install wget
Updating Homebrew...

$ wget
wget: missing URL
Usage: wget [OPTION]... [URL]...

Try `wget --help' for more options.

安装 iTerm2 终端

比系统自带的“终端命令”更好用的软件

1
brew cask install iterm2

当你已经把 zshhomebrewiTerm2 这三剑客安装完毕,是时候关闭 系统自带的终端,打开刚才安装完成的 iTerm2 骚起来吧。

使用 expect 实现 SSH 自动登陆

查看你的系统是否有 expect 命令,如果没有就先安装一下

1
2
3
4
$ expect -version
expect version 5.45 # 说明已经安装过了,就不需要再安装了
$
$ brew install expect

expect 登陆脚本如下,找个目录保存下文件

1
vim ~/.ssh/iterm2login.sh
1
2
3
4
5
6
7
8
9
10
11
12
#!/usr/bin/expect -f
set port 22
set host [lindex $argv 0]
set user [lindex $argv 1]
set password [lindex $argv 2]
set timeout -1

spawn ssh -o "StrictHostKeyChecking no" -o ServerAliveInterval=10 -p$port $user@$host
expect "*assword:*"
send "$password\r"
interact
expect eof
1
chmod +x ~/.ssh/iterm2login.sh
1
2
$ #  iterm2login.sh 主机地址 端口号 用户 密码
$ sh iterm2login.sh 10.11.0.2 22 admin paswword

iTerm2 打开菜单 Profiles -> Open Profiles... -> Edit Profiles...

安装 Alfred

alfred 上手教程

1
2
3
4
http://www.jianshu.com/p/e9f3352c785f
https://sspai.com/post/32979
http://www.jianshu.com/p/0e78168da7ab
https://sspai.com/post/32680

安装七牛云图床工具

用于博客图床上传工具

七牛云workflow地址:https://github.com/onestark/alfred-workflow-qshell

七牛云qshell地址:https://developer.qiniu.com/kodo/tools/1302/qshell

1
2
3
4
5
6
$ wget http://devtools.qiniu.com/qshell-v2.1.8.zip
$ unzip qshell-v2.1.8.zip
$ cd qshell-v2.1.8
$ mv qshell-darwin-x64 /usr/local/bin/qshell
$ # 安装完成之后,新打开一个命令窗口
$ qshell account [七牛账户下的AccessKey] [七牛账户下的SecretKey] # 密钥设置

安装 1Password

日常密码管理工具

安装 SizeUp

日常窗口管理工具

安装 Snipaste 截图工具

日常截图工具,替换系统自带的截图,功能强大,不依赖 qq微信 的截图,官网地址:https://zh.snipaste.com

1
brew cask install snipaste

安装 BetterTouchTool

强大的手势自定义工具,上手教程,参考网友的介绍文章

1
https://www.jianshu.com/p/ba8d766559ca

个人日常使用最多的功能,就是使用 三指选中文本内容进行搜索,我是这么配置的,设置中打开 Trackpads,安装下面的 2 个步骤,新增多个同样的手势

1
2
"Touchpad Gesture" 设置为 "3 Finger Click" 手势
"Predefined Action" 设置为 "Open URL/Open URL With Selection",填入你想要使用的搜索引擎地址

安装 HyperDock

扩展 Dock 拦功能,安装完成之后,需要注销/重启系统。将鼠标放在 Dock 拦的应用程序上面,就可以进行快速预览,并且能通过数字键 1~9 进行快速移动到对应的桌面中,非常的方便

安装图形软件

罗列一些常用的软件

1
2
3
4
5
6
$ brew cask install google-chrome # 安装 Google 浏览器
$ brew cask install shadowsocksx-ng # 科学上网客户端
$ brew cask install aria2gui # aria2下载软件客户端
$ brew cask install mysqlworkbench # mysql workbench
$ brew cask install sourcetree # git免费的客户端
$ brew cask install postman # http请求测试客户端

安装快速浏览插件,都是使用“空格键”快速查看文件

1
2
3
4
5
$ brew cask install qlstephen # 快速查看纯文本文件
$ brew cask install qlcolorcode # 在预览源代码文件,高亮代码
$ brew cask install qlmarkdown # 预览 Markdown 文件
$ brew cask install quicklook-json # 预览 JSON 文件
$ brew cask install quicklook-csv # 预览 CSV 文件

Node开发

推荐使用 n 管理 node 版本

不会遇到 安装nvm之后 导致终端启动慢的问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
$ brew install n
==> Downloading https://homebrew.bintray.com/bottles/n-6.1.3.catalina.bottle.tar.gz
######################################################################## 100.0%
==> Pouring n-6.1.3.catalina.bottle.tar.gz
🍺 /usr/local/Cellar/n/6.1.3: 6 files, 52.8KB
$ n ls
find: /usr/local/n/versions: No such file or directory
$ n ls-remote
Listing remote... Displaying 20 matches (use --all to see all).
13.3.0
13.2.0
13.1.0
13.0.1
13.0.0
12.13.1
12.13.0
12.12.0
12.11.1
12.11.0
12.10.0
12.9.1
12.9.0
12.8.1
12.8.0
12.7.0
12.6.0
12.5.0
12.4.0
12.3.1
$ n ls
find: /usr/local/n/versions: No such file or directory
$ n 8.10

installing : node-v8.10.0
mkdir : /usr/local/n/versions/node/8.10.0
mkdir: /usr/local/n/versions/node/8.10.0: Permission denied

Error: sudo required (or change ownership, or define N_PREFIX)

$ which n
/usr/local/bin/n
$ mkdir /usr/local/n
mkdir: /usr/local/n: Permission denied
$ sudo mkdir /usr/local/n
$ sudo chown -R $(whoami) /usr/local/n
$ n 8.10

installing : node-v8.10.0
mkdir : /usr/local/n/versions/node/8.10.0
fetch : https://nodejs.org/dist/v8.10.0/node-v8.10.0-darwin-x64.tar.gz
installed : v8.10.0 (with npm 5.6.0)

$ n ls
node/8.10.0
$ node -v
v8.10.0
$ npm -v
5.6.0

使用 nvm 管理 node 版本

下载源代码到 zsh 插件目录。为什么要用这种方式?你有没有遇到过安装完nvm之后就遇到了终端启动慢的问题,要等2~3秒钟的时间,就是因为$NVM_DIR/nvm.sh 导致的,网友遇到到同样的问题,请移步查看

1
git clone git@github.com:lukechilds/zsh-nvm.git ~/.oh-my-zsh/custom/plugins/zsh-nvm

vim ~/.zshrc 中启用 zsh-nvm 插件

1
2
3
plugins=(
zsh-nvm
)

vim ~/.zshrc 首行中启用 nvm 的延时加载,加快终端打开的速度

1
export NVM_LAZY_LOAD=true

nvm 使用方法

1
2
3
4
5
6
$ nvm ls-remote #查看官网 node 的所有版本
$ nvm install 8.10.0 #指定 node 的版本号进行安装
$ nvm ls #查看已经安装的 node 版本
$ nvm use xxx #使用指定版本的 node
$ node -v
$ npm -v

npm 常用命令

1
2
3
4
5
6
7
8
$ npm list -g --depth 0 #查看全局安装过的包命令
/Users/jerry/.nvm/versions/node/v8.10.0/lib
├── anywhere@1.5.0
├── hexo-cli@1.1.0
├── npm@5.6.0
├── npm-check-updates@2.14.2
└── nrm@1.0.2
$

npm 常用插件

列举一些日常必备、使用较多的插件

1
2
3
$ npm install -g nrm # 管理 npm registry
$ npm install -g anywhere # 在任意目录就能启动一个文件浏览服务
$ npm install -g npm-check-updates #使用 ncu -u 更新 package.json 文件并,并保存新的版本号

安装 VS Code

微软出品的图形开发工具,官方网站:https://code.visualstudio.com/

1
brew cask install visual-studio-code

Java 开发

安装 Java SDK

通过 brew 安装多个版本的 Java SDK,下面命令演示安装 Java 8

1
brew cask install java8

如果需要安装JDK 6/7,可以通过homebrew-cask-versions

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$ brew tap homebrew/cask-versions
## 这个可以考虑不安装
==> Tapping homebrew/cask-versions
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions'...
remote: Enumerating objects: 190, done.
remote: Counting objects: 100% (190/190), done.
remote: Compressing objects: 100% (187/187), done.
remote: Total 190 (delta 13), reused 38 (delta 0), pack-reused 0
Receiving objects: 100% (190/190), 82.60 KiB | 209.00 KiB/s, done.
Resolving deltas: 100% (13/13), done.
Tapped 159 casks (207 files, 322.2KB).

$ brew tap AdoptOpenJDK/openjdk
## 使用 OpenJDK
==> Tapping adoptopenjdk/openjdk
Cloning into '/usr/local/Homebrew/Library/Taps/adoptopenjdk/homebrew-openjdk'...
remote: Enumerating objects: 40, done.
remote: Counting objects: 100% (40/40), done.
remote: Compressing objects: 100% (37/37), done.
remote: Total 40 (delta 23), reused 6 (delta 0), pack-reused 0
Unpacking objects: 100% (40/40), done.
Tapped 26 casks (98 files, 100.6KB).

$ brew cask install adoptopenjdk8 # 这个可能会执行失败,因为在多个 tap 组里,那就执行下面这个吧
$ brew cask install adoptopenjdk/openjdk/adoptopenjdk8

搜索其它版本的 Java SDK

1
2
3
4
5
6
7
8
9
10
$ brew search openjdk
==> Formulae
openjdk openjdk@11 openjdk@12

==> Casks
adoptopenjdk adoptopenjdk11-openj9-jre adoptopenjdk12-openj9 adoptopenjdk13-jre adoptopenjdk8 adoptopenjdk8-openj9-jre-large
adoptopenjdk10 adoptopenjdk11-openj9-jre-large adoptopenjdk12-openj9-jre adoptopenjdk13-openj9 adoptopenjdk8 adoptopenjdk8-openj9-large
adoptopenjdk11 adoptopenjdk11-openj9-large adoptopenjdk12-openj9-jre-large adoptopenjdk13-openj9-jre adoptopenjdk8-jre adoptopenjdk9
adoptopenjdk11-jre adoptopenjdk12 adoptopenjdk12-openj9-large adoptopenjdk13-openj9-jre-large adoptopenjdk8-openj9
adoptopenjdk11-openj9 adoptopenjdk12-jre adoptopenjdk13 adoptopenjdk13-openj9-large adoptopenjdk8-openj9-jre

查看系统安装中安装的所有JDK

1
2
3
4
5
6
7
8
9
10
11
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (4):
1.8.0_121, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home
1.7.0_80, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home
1.6.0_65-b14-468, x86_64: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
1.6.0_65-b14-468, i386: "Java SE 6" /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home

$ /usr/libexec/java_home -v 1.6
/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

使用jEnv管理多个Java SDK版本

jEnv帮助我们更简单的管理多个JDKhttp://www.jenv.be/

1
$ brew install jenv

bash中做以下配置,并记得重启终端/重新打开新的选项卡

1
2
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(jenv init -)"' >> ~/.bash_profile

Zsh中做以下配置,并记得重启终端/重新打开新的选项卡

1
2
$ echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(jenv init -)"' >> ~/.zshrc # 不配置好像没有关系

jEnv不能自己安装任何版本的JDK,所以需要我们手动安装好之后再用jEnv add xxx指向它们。
第一次添加的时候如果出现下面的错误,后来在 jenv github wiki 中找到解决方案,如果没有出现就忽略。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
$ jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home
ln: /Users/jerry/.jenv/versions/oracle64-1.6.0.65: No such file or directory

#解决方案1: 修改 ~/.bash_profile,增加下面的内容
$ vi ~/.bash_profile
# To enable shims and autocompletion add to your profile:
if which jenv > /dev/null; then eval "$(jenv init -)"; fi

# To use Homebrew's directories rather than ~/.jenv add to your profile:
export JENV_ROOT=/usr/local/opt/jenv

# 解决方案2:
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
ln: /Users/jerry/.jenv/versions/openjdk64-1.8.0.232: No such file or directory
$ mkdir -p .jenv/versions
$ jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home
openjdk64-1.8.0.232 added
1.8.0.232 added
1.8 added

添加JDK

1
2
3
$ jenv add /Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents//Home/
$ jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/

查看所有JDK

1
2
3
4
5
6
7
8
9
10
11
$ jenv versions
* system (set by /usr/local/opt/jenv/version)
1.6
1.6.0.65
1.7
1.7.0.80
1.8
1.8.0.121
oracle64-1.6.0.65
oracle64-1.7.0.80
oracle64-1.8.0.121

设置全局JDK

1
$ jenv global 1.8

设置文件夹的JDK,设置的信息保存在.java-version文件中

1
2
3
4
$ jenv local 1.6
$ cat .java-version
1.6
$ rm -rf .java-version

设置shell的JDK,似乎只在当前shell窗口生效

1
$ jenv shell 1.7

其它用法

1
2
$ jenv which java
/usr/local/opt/jenv/versions/1.7/bin/java

安装Maven

官方网址:https://maven.apache.org

1
$ brew install maven

maven的java版本随jenv切换改变而改变,参考 jenv issue

1
2
$ vi ~/.mavenrc
JAVA_HOME=$(/usr/libexec/java_home -v $(jenv version-name))

安装IntelliJ Idea

官方网站:https://www.jetbrains.com/idea/。从 2018.2 版本已经支持 MacBook ProTouch Bar了,感觉不错。

请我喝杯农夫山泉吧,原创来之不易
0%