Mac 打造开发工作环境
近日公司配的dell笔记本越来越难担重任(主要是CPU太差,本人是Java开发,IDE一编译CPU就100%),于是狠下心入手了一台常规顶配Macbook Pro,现记录新本本的调教过程。
Homebrew 包管理器
经常用linux的开发人员其实对windows的软件安装是很无语的,没有一个好的包管理器(Scoop和Chocolate都用过,但体验都不如apt)。
Mac是类Unix系统,也有自己的包管理器,Mac下的包管理器推荐用Homebrew,官网地址 https://brew.sh/index_zh-cn。
通过Homebrew安装的软件都在一个独立的文件夹中,通过执行 brew --repo
命令可以看到是 /usr/local/Homebrew
下,因此连配置环境变量的步骤都可以省略了。
$ brew --repo
/usr/local/Homebrew
安装Homebrew
安装方法非常简单,参照官网,打开Mac自带的Teminal(终端),copy如下命令:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
从安装命令上就可以看出,Homebrew是用ruby写的,软件包安装使用的是RubyGem,brew用于依赖管理。
国内镜像安装
国内的同学可能会遇到安装失败的情况,这个时候推荐用国内的安装镜像 CunKai / HomebrewCN,当然如果你有兴趣也可以通过码云极速下载 / homebrew 这个码云镜像clone后手动设置一系列环境变量安装,详细可以参考 install.sh。
Homebrew使用
下面介绍几个常用brew命令,更多信息请参考 man brew
。
brew install
安装软件,如:
brew install wget
brew uninstall
卸载软件,如:
brew uninstall wget
brew search
搜索软件包,会连 cask 包一起搜索,例如:
$ brew search wget
==> Formulae
wget ✔ wgetpaste
brew update
只更新brew源索引,类似 apt-get update
。
brew upgrade
更新软件,类似 apt-get upgrade
。
brew info
查询软件包详情,通常和search组合使用,例如:
brew info wget
brew cask
brew和apt等工具一样,包含多个源:
- Homebrew-core 核心软件仓库
- Homebrew-cask macOS APP或大型二进制软件
- Homebrew-bottles Homebrew 预编译二进制软件包
brew cask命令用法和brew类似,只是由 brew command
变为 brew command --cask
,例如:
brew install --cask iterm2
那如何判断什么时候该用 cask,什么时候不该用呢?通过 search 得到的结果就能判断,search结果在 Casks 中的就是 cask 安装,否则就不用cask。例如:
$ brew search iterm2
==> Casks
iterm2 ✔ homebrew/cask-versions/iterm2-beta homebrew/cask-versions/iterm2-legacy homebrew/cask-versions/iterm2-nightly
Homebrew切换国内源
和apt等工具一样,安装完成后都需要将软件源切换到国内,目前国内有两个Homebrew源,中科大和清华的,本人习惯使用中科大的源(apt带过来的)。
Homebrew在本质上是ruby脚本,所有脚本都通过git来管理,因此只需修改 git 的 upstream 即可。
参考 清华大学Homebrew镜像使用帮助 和 中科大Homebrew 源使用帮助。
以下是设置中科大镜像的步骤:
# 修改brew软件上游,参考http://mirrors.ustc.edu.cn/help/brew.git.html
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 修改core上游,参考http://mirrors.ustc.edu.cn/help/homebrew-core.git.html
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 修改cask上游,参考http://mirrors.ustc.edu.cn/help/homebrew-cask.git.html
cd "$(brew --repo)"/Library/Taps/caskroom/homebrew-cask
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
# 替换 Bottles 源,参考http://mirrors.ustc.edu.cn/help/homebrew-bottles.html
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles/bottles' >> ~/.bash_profile
source ~/.bash_profile
brew update
iterm2 + oh-my-zsh + solarized配色 + 常用zsh插件
安装 iterm2
$ brew search iterm2
==> Casks
iterm2 ✔ homebrew/cask-versions/iterm2-legacy
homebrew/cask-versions/iterm2-beta homebrew/cask-versions/iterm2-nightly
选择安装iterm2稳定版
$ brew cask install iterm2
iterm2 配置
安装完成后,打开iterm2,选择设置为默认终端
然后进行配色方案设置,选择 Preferences
接着打开Profile,在右下角的 color preset 中选择 import 已下载解压好的 solarized 配色方案(下载地址 solaried-themes)
安装 oh-my-zsh
首先查看系统自带了什么 shell
$ cat /etc/shells
# List of acceptable shells for chpass(1).
# Ftpd will not allow users to connect who are not using
# one of these shells.
/bin/bash
/bin/csh
/bin/ksh
/bin/sh
/bin/tcsh
如果已有zsh就无需安装了,如果没有则使用以下命令安装 oh-my-zsh
-
使用
curl
安装sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
-
使用
wget
安装sh -c "$(wget https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O -)"
设置zsh主题
打开 ~/.zshrc
文件,找到 ZSH_THEME
,并设置为 ys 主题
ZSH_THEME="ys"
安装 zsh-autosuggestions
通过 git clone 仓库到本地 ~/.oh-my-zsh/custom/plugins 路径下
$ git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
用 vim 打开 .zshrc 文件,找到插件设置命令,默认是 plugins=(git) ,我们把它修改为
plugins=(zsh-autosuggestions git)
生效 zsh 配置
$ source ~/.zshrc
安装 zsh-syntax-highlighting
$ brew install zsh-syntax-highlighting
配置.zshrc文件,插入一行
source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
生效 zsh 配置
$ source ~/.zshrc
自动引入 bash_profile 环境变量
很多时候,我们对shell的环境变量都配置在 ~/.bash_profile
中,因此要使在 zsh 中可以使用 bash配置的环境变量,只需在 ~/.zshrc
最后添加一行
source ~/.bash_profile
注意要在最后添加,否则可能会不生效某些配置。
文件夹颜色显示
默认的bash和zsh都是没有对文件夹做颜色显示的,因此需要在 ~/.bash_profile
中添加以下配置:
export CLICOLOR=1
export LSCOLORS=gxfxcxdxbxegedabagacad
export TERM=xterm-color
保存后重启shell即可生效。
参考
Mac推荐软件
- The Unarchiver (支持各种常见压缩格式)
- Alfred3 (神器,支持多种工作流,类似windows上ditto + luancher)
- ccleaner (个人不推荐CleanMyMac,运维脚本需要的权限太大,而且经常扫描出我IDE的config文件,一不小心就会清掉)
- tencent lemon lite (清理QQ 微信的缓存,Lite版没有其他乱七八糟的东西)
- Tunnelblick (OpenVPN的升级版)
- Shuttle (提供简便的ssh管理,支持一级目录,组合ssh config可以轻松达到windows上xshell等软件的体验)
- SwitchHosts (切换Hosts绑定的工具)
- PDF Expert (全能PDF阅读器)
- Itsycal (Mac菜单栏自定义日历工具)
- istat menus (全面的系统监控工具,甚至附带天气和日历组件)
- office365 (没错,就是微软的office365,mac自带的办公组件不如office套件强大,激活某宝上很便宜)
- OmniGraffle (Mac上的Visio,UML、时序图、架构图、网络图都不在话下)
- setapp (正版订阅软件,付费订阅后可使用上百款软件,包括CleanMyMac、Xmind等)
- Docker Desktop for Mac (Homebrew 安装 Docker Desktop for Mac)
- Anaconda (Mac保留Python2安装Python3(Anaconda3))
- 自动切换输入法 (名字就是功能介绍,可以针对不同应用设置自动切换到哪种输入法,AppStore中的免费软件,非常良心)
- TextScanner (国人开发的免费图片识别OCR软件,免费版足够你的日常使用)
关于破解
个人推荐大家尽量使用正版,类似 setapp 这种正版订阅软件,包年也很便宜,还能全家共享。但是某些软件既贵又不允许订阅,而且还经常是升级一个版本就需要重新购买一次许可证,这就让人难以承受了,于是笔者也难以免俗。
避免软件静默升级
这里想说的是一个关于破解软件的小窍门,当然正版软件也适用。很多软件都有静默升级的功能,甚至很多软件会诱导你升级到最新版,然后你的破解就被反破解了 ~。网上有人提供了锁定文件夹的思路,但是某些软件也很会玩,直接让已锁定按钮置灰不可选,如下图。
这个就很膈应了,那怎么办呢,我们可以通过 chflags
命令来设置锁定。我们通过如下命令来设置文件锁定:
sudo chflags -R uchg /Applications/Adobe\ Acrobat\ DC
设置完成后通过getfileinfo
命令查询如下:
在finder中查看效果如下:
当然你也可以通过 chflags
命令来解锁:
sudo chflags -R nouchg /Applications/Adobe\ Acrobat\ DC