Mac开发环境搭建-v1

前言,不知从何时开始向往能在Mac下开发,如今终于实现,感谢老婆大人的支持。废话不多,开始记录从零开始搭建开发环境,主要是Javanode的配置

开启Mac三指拖拽的手势

非常好用的功能,macOS系统中默认关闭了这个功能,参考百度经验的设置方法:点击跳转

科学上网

天朝的程序员此处伤害一万点,都是血泪史啊。

安装shadowsocks,参考wiki地址方法:https://github.com/shadowsocks/shadowsocks/wiki,安装完成之后使用ss账户进行登陆,能打开Google即可,完成第一步。

安装chromeSwitchyOmega插件,按照插件的配置方法,设置浏览器的动态代理。

安装 homebrew

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

使用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.

你已经感受到了使用 Homebrew 安装命令行程序的便利。那么接下来,我们将通过 Homebrew Cask 优雅、简单、快速的安装和管理 OS X 图形界面程序,比如 Google Chrome 和 Dropbox。https://caskroom.github.io/

1
2
3
$ brew install caskroom/cask/brew-cask
$ brew cask install google-chrome // 安装 Google 浏览器
$ brew update && brew upgrade brew-cask && brew cleanup // 更新

brew是从下载源码解压然后./configure && make install,同时会包含相关依存库。并自动配置好各种环境变量,而且易于卸载。这个对程员来说简直是福音,简单的指令,就能快速安装和升级本地的各种开发环境。

brew cask是将已经编译好了的应用包(.dmg/.pkg),仅仅是下载解压,省掉了自己去下载、解压、拖拽(安装)等蛋疼步骤,同样,卸载相当容易与干净。这个对一般用户来说会比较方便,包含很多在 AppStore 里没有的常用软件。

通过NVM安装不同版本的node

众所周知,node版本更新是非常的频繁,如果是全局安装,之后需要临时切换或者升级,是非常不方便多。通过nvm非常方便的来管理node的不同版本,跟上节奏嗨起来。

通过brew安装nvm

1
2
$ brew install nvm
$ mkdir ~/.nvm

修改~/.bash_profile文件,追加以下内容

1
2
3
# 使用 brew install nvm,需要做以下配置
export NVM_DIR="$HOME/.nvm"
source $(brew --prefix nvm)/nvm.sh

使刚才的修改生效

1
$ source ~/.bash_profile

安装node

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

安装Atom前端开发工具

1
$ brew cask install atom

安装插件

1
2
3
4
5
6
7
8
9
10
11
12
13
activate-power-mode
atom-clock
color-picker
editorconfig
emmet
file-icons
git-plus
linter
linter-eslint
linter-stylelint
minimap
platformio-ide-terminal
react

安装Java SDK

通过brew安装JDK 8

1
$ brew cask install java

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

1
2
3
$ brew tap caskroom/versions
$ brew cask install java6
$ brew cask install java7

查看系统安装中安装的所有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
$ 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
#解决方案,修改 ~/.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

添加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))

安装iTerm2

https://www.iterm2.com/

1
$ brew cask install iterm2

安装go2shell

http://zipzapmac.com/go2shell
这个软件能够让你在Finder中轻松地在当前路径打开shell

1
$ brew cask install go2shell

安装完成之后,在应用程序中打开go2shell,然后点击Thank The Developers,会打开一个donate的网页,你可以选择捐钱或者复制DONATE_BY_FOLLOW填入go2shell的文本框中,回车即可。

1
Not Ready to Donate? Just follow us on twitter and enter DONATE_BY_FOLLOW in Go2Shell code field! Codes for other donation options will be available after checkout.

完成上面步骤之后,在Finder的工具拦中会多一个go2shell的图标,点击它就能打开shell终端程序了。

go2shell_config_complate.png

安装KeepingYouAwake

https://github.com/newmarcel/KeepingYouAwake
保持Mac不休眠的软件,方便PPT等演示的时候不出现尴尬的画面。

1
$ brew cask install keepingyouawake

安装MacDown编辑器

http://macdown.uranusjr.com/
免费开源的MarkDown编辑器

1
$ brew cask install macdown

安装IntelliJ Idea

https://www.jetbrains.com/idea/
下载配置文件:https://github.com/myoss/IntelliJIdea-Config-MacOS

1
2
3
4
5
$ cd /Users/jerry/Library/Preferences/IntelliJIdea2016.3
$ git clone git@github.com:myoss/IntelliJIdea-Config-MacOS.git .
$ vi fileTemplates/includes/File\ Header.java
# 将 ` * @author ${USER} $fdate` 中的 `${USER}` 替换为你需要的名字,默认是电脑的账户名

安装git gui工具SourceTree

https://www.sourcetreeapp.com/ 目前是免费的工具,需要注册一下他们家的账户才能使用。

安装dos2unix命令转化文件的换行符

Windows和Linux中文件的换行符的不同,导致文件见的一些“不兼容”问题,通过unix2dos 和dos2unix来实现互相转换。为了解决git add的时候的错误fatal: CRLF would be replaced by LF,或者用来将文件中的CRLF转换为LFhttp://linuxcommand.org/man_pages/dos2unix1.html

1
$ brew install dos2unix

-k 保持文件时间戳不变
-n 新文件模式,待修改的源文件重定向到新的文件中
-o 旧文件模式,将修改后的内容保存在源文件中,默认就是此模式

1
2
3
$ dos2unix -k -n source.sql target.sql #将替换后的文件保存在target.sql中,不改变source.sql原始文件
$ dos2unix -k source.sql #替换文件
$ find . -name *.sql | xargs dos2unix -k #批量替换文件

unix2dos UNIX(LF) -> DOS(CRLF)
dos2unix DOS(CRLF) -> UNIX(LF)
mac2unix MAC(R) -> UNIX(LF)

使用cat命令查看不可见的字符:http://os.51cto.com/art/201310/413568.htm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ cat -T test.txt #用cat -T命令来显示TAB键的字符^I
testing
^I^Itesting
more testing
^I
$ cat -E /tmp/test.txt #用cat -E命令来显示行尾的结束字符$
testing$
testing
$
$ cat -A /tmp/testing.txt #用cat -A命令就可以显示所有不可见的字符
testing$
^I^Itesting^L^H$
您的赞赏将鼓励我继续分享!
Fork me on GitHub