俗话说得好, "工欲善其事必先利其器"。MacBook作为开发工具,需要把它调节成适合自己的开发利器。
# 一、环境
电脑信息:MacBook Pro 16英寸
芯片:Apple M1 Pro
内存:32GB
系统:MacOS Monterey 12.2.1
# 二、工作提效篇
# 2.1 基本设置
# 2.1.1 设置触发角
快速回到桌面和锁屏
系统偏好设置 --> 桌面与系统保护程序 --> 屏幕保护程序 --> 触发角。 设置对应的触发行为,以下图为例,我设置了鼠标移到右上角就触发回到桌面的操作。鼠标移到右下角就触发进入睡眠状态的操作

# 2.1.2 设置触控板
系统偏好设置 --> 触控板。按照自己的喜好设置。一般是使用默认设置。

# 2.1.3 熟悉Mac快捷键
# 2.2 安装Xcode Command Line Tools
#安装命令
xcode-select --install
# 2.3 安装Homebrew
Homebrew是一款自由及开放源代码的软件包管理系统,快速安装or卸载软件。官网传送门 (opens new window)
# 2.3.1 安装指引
step1:启动台 --> 终端,输入以下命令:
#原因 GitHub 的 gist 访问不了,所以获取不到安装的脚本文件。所以替换为码云的资源
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

**Step2:**根据屏幕提示按下键盘上的“return(回车键)”,然后输入“管理员密码(本地账户开机密码)”按下“return(回车键)”即可进入自动安装界面
ps:如何遇到安装问题可以参考这篇博客https://blog.csdn.net/weixin_39504171/article/details/107570080
# 2.3.2 brew cask list
brew cask list (opens new window)
# 2.3.3 brew 安装常用工具
按需下载
| 工具名 | 安装命令 | 备注 |
|---|---|---|
| 工具名 | 安装命令 | 备注 |
| git | brew install git | 版本管理工具 |
| wget | brew install wget | 下载工具 |
| curl | brew install curl | 下载工具 |
| tmux | brew install tmux | 终端复用 神器 |
| vim | brew install vim | 升级 vim 到 8.x 版本,替换系 统自带 vim |
| JDK | brew cask install java | open jdk java |
| tree | brew install tree | 目录展示工具 |
| lua | brew install lua | lua 编程语言 |
| coreutils | brew install coreutils | gnu 核心工具 |
| bin | brew install binutils | gnu bin 工具 |
| diff | brew install diffutils | gnu 比较工具 |
| find | brew install findutils | gnu 查找工具 |
| ag | brew install the_silver_searcher | 高效内容查找 工具, 比 grep、ack 更快的递归搜索文件内容 |
| rzsz | brew install lrzsz | ssh 上传下载文件 |
| go | brew install go | go 语言 |
| node | brew install node | node |
| jq | brew install jq | 命令行 json 处理工具 |
| htop | brew install htop | 代替 top |
| axel | brew install axel | 多线程下载工具 |
| cloc | brew install cloc | 代码统计工具 |
| shellcheck | brew install shellcheck | shell 脚本检 查工具 |
| tldr | brew install tldr | 命令行示例 |
| ncdu | brew install ncdu | 磁盘空间占用分 |
| glances | brew install glances | 监控工具 |
| figlet | brew install figlet | 艺术字转换 |
| screenFetch | brew install screenFetch | 系统信息 |
| nmap | brew install nmap | 网络扫描工具 |
| ctop | brew install ctop | docker 容器监控工具 |
| pstree | brew install pstree | 进程树查看 |
| bash-completion | brew install bash-completion | bash 补全 |
| lolcat | brew install lolcat | 彩虹文字 |
| peco | brew install peco | go 写的极简过滤工具 |
| cowsay | brew install cowsay | ascii 图片 |
| graphviz | brew install graphviz | 拓扑图绘制工具,很对关系 绘制工具底层依赖 |
# 2.3.4 brew cask 安装常用工具
按需下载
| 工具名 | 安装命令 | 备注 |
|---|---|---|
| cask | brew tap caskroom/cask | cask |
| cask update | brew update && brew upgrade brew-cask && brew cleanup | - |
| iterm2 | brew install --cask iterm2 | 终端神器 |
| google-chrome | brew install --cask google-chrome | chrome |
| firefox | brew install --cask firefox | firefox |
| alfred | brew install --cask alfred | 快捷键工具 |
| dash | brew install dash | 文档工具 |
| vscode | brew install --cask visual-studio-code | 文本编辑器,微软出品,首推 |
| sublimetext | brew install --cask sublime-text | 文本 编辑器 |
| postman | brew install postman | http 模拟 app |
| wireshark | brew install --cask wireshark | 网络抓包 工具 |
| drawio | brew install --cask drawio | 流程图绘制工具, 可替代 visio |
| xmind | brew install --cask xmind | 思维导图工具 |
| macpass | brew install --cask macpass | 免费的密码管理 工具 |
| beyond-compare | brew install --cask beyond-compare | 老牌图形化比较工具 |
| youdaodict | brew install --cask youdaodict | 有道词 典 |
| typora | brew install --cask typora | markdown 工具, 首推 |
| macdown | brew install --cask macdown | markdown 工 具 |
| docker | brew install --cask docker | docker 必备 |
| moom | brew install --cask moom | 窗口大小调整工具,收费 |
| snip | brew install --cask snip | 截图工具 |
| the-unarchiver | brew install --cask the-unarchiver | 解压工具, 可解 rar |
| keka | brew install --cask keka | 解压工具 |
| fonts | brew tap caskroom/fonts | 安装字体 |
| source-code-pro | brew install --cask font-source-code-pro | Adobe 出品编程字体 |
| android-file-transfer | brew install --cask android-file-transfer | 安卓文件传输工具 |
| licecap | brew install --cask licecap | 录屏软件 |
| kap | brew install --cask kap | 视频录屏 |
| sougou | brew install --cask sogouinput | 搜狗拼音 |
| scroll-reverser | brew install --cask scroll-reverser | 触摸板滑动反转 |
| go2shell | brew install go2shell | go2shell finder 直接跳转至命令行 |
| rdm | brew install rdm | rdm redis desktop manager |
| imagemagick | brew install imagemagick | 图片编辑工具 |
| motrix | brew install --cask motrix | 下载工具 |
| clashx | brew install --cask clashx | |
| Charles | brew install --cask Charles | 网络抓包应用 |
# 2.4 安装iterm2
支持半透明, 边打命令、边看其它东东, 两不误。
有快捷键可以快速唤起窗口
# 2.4.1 下载iterm2
启动台 --> 终端,输入以下命令:
#使用brew下载
brew install --cask iterm2
# 2.4.2 设置iterm2配色
iterm2 配色官网 (opens new window)
iterm2 --> preference --> profiles --> colors --> Color Presets --> solarized dark
# 2.4.3 安装oh-my-zsh
#使用wget下载oh-my-zsh
sh -c "$(wget -O- https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
#更改zsh为默认Shell
chsh -s /bin/zsh
#查看主题
ls ~/.oh-my-zsh/theme
#设置主题
#打开~/.zshrc文件
vim ~/.zshrc文件
#推荐选用ys主题,简洁并且该有的信息都有;找到ZSH_THEME这一行,把默认的修改为如下:
ZSH_THEME="ys"
#使配置生效
source ~/.zshrc
#下载自动补全插件和语法高亮插件
#切换目录
cd /Users/mike/.oh-my-zsh
#下载,也可以直接到github下载,放到/Users/mike/.oh-my-zsh/plugins文件夹下
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
git clone git://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
#设置插件
#打开~/.zshrc文件
vim ~/.zshrc
#找到plugins=(git)这一行,把默认的修改为如下:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
#使配置生效
source ~/.zshrc

# 2.4.3.1 安装插件报错
**报错信息:**启动iterm ohmyzsh报错:Insecure completion-dependent directories detected:

**原因:**插件文件夹权限问题
**解决方法:**赋予权限后,重启iterm即可。
#授权
chmod 755 /Users/mike/.oh-my-zsh/plugins/zsh-autosuggestions
chmod 755 /Users/mike/.oh-my-zsh/plugins/zsh-syntax-highlighting
# 2.4.4 iterm实现上传下载
# 2.4.4.1 安装lrzsz和脚本
#使用brew下载lrzsz
brew install lrzsz
#切换到 /usr/local/bin
cd /usr/local/bin
#创建脚本
sudo vim iterm2-send-zmodem.sh
sudo vim iterm2-recv-zmodem.sh
#授予执行权限
sudo chmod 777 iterm2*
#查看lrzsz的位置,需要根据得到位置信息,修改对应脚本中,sz和rz的路径。不然会报错
brew list lrzsz
iterm2-send-zmodem.sh脚本详细信息如下:
#!/bin/bash
# 这个脚本来自 github,删掉了一些 ** 言论。
osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
FILE=`osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
else
FILE=`osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose file with prompt "Choose a file to send"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")"`
fi
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \\x18\\x18\\x18\\x18\\x18
sleep 1
echo
echo \# Cancelled transfer
else
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/sz "$FILE" --escape --binary --bufsize 4096
sleep 1
echo
echo \# Received $FILE
fi
iterm2-recv-zmodem.sh脚本详细信息如下:
#!/bin/bash
# 这个脚本来自 github,删掉了一些 ** 言论。
osascript -e 'tell application "iTerm2" to version' > /dev/null 2>&1 && NAME=iTerm2 || NAME=iTerm
if [[ $NAME = "iTerm" ]]; then
FILE=$(osascript -e 'tell application "iTerm" to activate' -e 'tell application "iTerm" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
else
FILE=$(osascript -e 'tell application "iTerm2" to activate' -e 'tell application "iTerm2" to set thefile to choose folder with prompt "Choose a folder to place received files in"' -e "do shell script (\"echo \"&(quoted form of POSIX path of thefile as Unicode text)&\"\")")
fi
if [[ $FILE = "" ]]; then
echo Cancelled.
# Send ZModem cancel
echo -e \\x18\\x18\\x18\\x18\\x18
sleep 1
echo
echo \# Cancelled transfer
else
cd "$FILE"
/opt/homebrew/Cellar/lrzsz/0.12.20_1/bin/rz -E -e -b --bufsize 4096
sleep 1
echo
echo
echo \# Sent \-\> $FILE
fi
# 2.4.4.2 设置Iterm2的Tirgger特性
打开iTerm2 -> Perfences -> profiles -> default -> Advanced -> Triggers 的 Edit 按钮;添加两条trigger;
分别设置 Regular expression,Action,Parameters,Instant;
示例如下:
1.第一条
Regular expression: rz waiting to receive.\*\*B0100
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-send-zmodem.sh
Instant: checked
2.第二条
Regular expression: \*\*B00000000000000
Action: Run Silent Coprocess
Parameters: /usr/local/bin/iterm2-recv-zmodem.sh
Instant: checked
具体图示:

# 2.4.4.3 远端服务器上安装lrzsz
#使用yum安装lrzse
yum -y install lrzsz
# 2.4.4.4 上传下载测试
登陆远端服务器测试上传下载功能;
#在命令行输入 rz 就会弹出文件选择框,选择文件 choose 就开始上传,会上传到当前目录
rz
#sz fileName(你要下载的文件的名字) 回车,会弹出窗体 我们选择要保存的地方即可。
sz fileName

# 2.4.4.5 免密登陆
#下载ssh-copy-id
brew install ssh-copy-id
#为远程服务器设置免密登陆
ssh-copy-id root@1.2.3.4
# 等价于
ssh-copy-id -i ~/.ssh/id_rsa.pub root@1.2.3.4 -p 22
ssh-copy-id 这个工具,它的原理其实是把自己的公钥(默认使用 ~/.ssh/id_rsa.pub 这个文件中的内容)复制到目标服务器的~/.ssh/authorized_keys 文件内。
可以利用 SSH 的配置文件来记住已有的配置,快速登录:
编辑~/.ssh/config 文件:
vim ~/.ssh/config
~/.ssh/config文件示例:
Host ss
HostName x.x.x.x
User root
Port 22
IdentityFile ~/.ssh/id_rsa
后续,仅需要ssh ss,即可免密登录。
# 2.4.5 常用快捷键
⌘ + Click:可以打开文件,文件夹和链接
⌘ + n:新建窗口
⌘ + t:新建标签页
⌘ + w:关闭当前页
⌘ + 数字 & ⌘ + 方向键:切换标签页
⌥⌘ + 数字:切换窗口
⌘ + enter:切换全屏
⌘ + d:左右分屏
⇧⌘ + d:上下分屏
⌘ + ;:自动补全历史记录
⇧⌘ + h:自动补全剪贴板历史
⌥⌘ + e:查找所有来定位某个标签页
⌘ + r & ⌃ + l:清屏
⌘ + /:显示光标位置
⌥⌘ + b:历史回放
⌘ + f:查找,然后用 tab 和 ⇧ + tab 可以向右和向左补全,补全之后的内容会被自动复制, 还可以用 ⌥ + enter 将查找结果输入终端
选中即复制,鼠标中键粘贴
# 2.5 安装SDKMAN(JAVA 语言版本控制)
SDKMAN是一种用于在大多数基于 Unix 的系统上管理多个软件开发工具包的并行版本的工具。它提供了方便的命令行界面 (CLI) 和 API,用于安装、切换、删除和列出可供安装的版本。
# 2.5.1 sdkman下载
step1: 启动台 --> iterm2,输入以下命令:
curl -s "https://get.sdkman.io" | bash

step2: 安装操作提示,输入提示的命令:
#$HOME是你自己的安装目录
source "$HOME/.sdkman/bin/sdkman-init.sh"
step3: 查看版本
#查看版本
sdk version

# 2.5.2 sdkman命令
常用命令
#查看所有支持SDK,按q退出
sdk list
#查看指定SDK的不同版本,按q退出
sdk list java
#安装SDK指定版本
sdk install java 8.0.322-zulu
#删除SDK指定版本,注意,删除本地版本不会删除本地安装。
sdk uninstall java 8.0.322-zulu
#查看当前所有正在使用的SDK版本
sdk current
#使用当前sdk版本,只会使当前shell生效。
sdk use java 8.0.322-zulu
#使用默认设置,使所有shell都默认使用当前版本。
sdk default java 8.0.322-zulu
#查看当前指定SDK使用的版本
sdk current java
#查看安装路径
sdk home java 8.0.322-zulu
#查看Java home
echo $JAVA_HOME
#环境命令
#每次访问项目时都想切换到特定的 JDK 或 SDK?这可以通过.sdkmanrc项目目录中的文件来实现。可以通过发出以下命令自动生成此文件:
sdk env init
#查看.sdkmanrc文件
vim .sdkmanrc
#更新环境,根据当前使用的sdk版本更新。
sdk env
#重载环境
sdk env clear
#sdk帮助
sdk help
更多有用的命令和用法可以在SDKMAN Usage (opens new window)找到。
# 2.6 安装pyenv(python 语言版本控制)
pyenv 让您可以轻松地在多个 Python 版本之间切换。它简单、不显眼,并且遵循 UNIX 的传统,即做好一件事的单一用途工具。
# 2.6.1 pyenv下载
step1: 启动台 --> iterm2,输入以下命令:
#下载安装pyenv
brew install pyenv

step2: 配置shell环境
#追加环境变量
echo 'export PYENV_ROOT="$HOME/.pyenv"' >>~/.zshrc
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >>~/.zshrc
echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi'>>~/.zshrc
#使配置生效
source ~/.zshrc

step3: 查看版本
#查看版本
pyenv -v
# 2.6.2 pyenv命令(目前M1版本使用pyenv安装报错)
#pyenv帮助
pyenv help
#pyenv命令
pyenv commands
#查看 pyenv 的版本
pyenv --version
#罗列当前已安装的所有 python 环境,如果是当前正在使用的环境,则前面会有个 *
pyenv versions
#查看可以安装的版本信息
pyenv install -l
#安装指定版本的 python
pyenv install 3.6.4
#更新本地数据库,安装指定版本的 python 后使用
pyenv rehash
#更改本机版本,重启不会造成再次更改
pyenv global 版本号
#会在当前目录创建 .python-version 文件,并记录设置的 python 环境,每次进入该目录会自动设置成该 python 环境
pyenv local 版本号
#更改当前 shell 下使用的 python 版本,临时生效,优先级高于 global
pyenv shell 版本号
# 创建虚拟环境
pyenv virtualenv 3.6.4 env-3.6.4
# 激活虚拟环境
pyenv activate env-3.6.4
# 退出虚拟环境
pyenv deactivate
# 2.7 安装arfled
Alfred 是一款本地搜索及快速启动工具,它可以帮你提高工作效率。alfred可以快速的搜索本地应用、搜索本地文件、执行终端命令、翻译、文件管理、音乐控制等等!
# 2.8 安装Dash
Dash 是一款功能强大的API文档浏览器和代码片段管理器,内置了丰富的API文档,多达150多种,可以在线下载各种开发API和文档资料,可以让您集中管理API文档,包括离线下载、搜索、查阅,包括各种主流的编程语言和框架,如Cocos2D, Cocos3D, Corona, CSS, HTML, Java, Objective-C, JavaScript, jQuery, Vue,React等, 不需要在到处下载 API 文档,Dash 已经自动集成了,并支持集成到Webstrom、Xcode、Alfred等软件中,非常的强大!开发者必备的API文档参考工具。
# 三、开发工具篇
# 3.1 JDK安装
# 3.2 官网下载安装
# 3.3 通过SDKMAN安装JDK
#查看jdk版本
sdk list java
#安装JDK指定版本
sdk install java 8.0.322-zulu
#使用默认设置,使所有shell都默认使用当前版本。
sdk default java 8.0.322-zulu
#查看安装路径
sdk home java 8.0.322-zulu
#查看Java home
echo $JAVA_HOME
#查看java版本
java -version

# 3.2 Maven安装
# 3.2.1 通过SDKMAN安装Maven
#查看Maven版本
sdk list maven
#选择指定版本安装,不输入指定版本的话,默认安装最新稳定版本
sdk install maven 3.8.5
#使用默认设置,使所有shell都默认使用当前版本。
sdk default maven 3.8.5
#查看安装路径
sdk home maven 3.8.5
#查看maven版本
mvn -v

# 3.3 IDEA安装
# 3.3.1 IDEA下载
# 3.3.2 IDEA设置
# 3.4 SourceTree安装
Sourcetree 是 Windows 和Mac OS X 下免费的 Git 和 Hg 客户端,主要依赖可视化界面操作,省去繁琐复杂不容易理解的终端命令,Sourcetree也是Mercurial和Subversion版本控制系统工具,支持创建Local repositories 和remote repositories、submit、clone、push、pull 和merge等操作,可以应用于github或者码云,类似于Xcode集成的git功能,不过Sourcetree更专注于管理,具备更加直观的文件管理/源代码管理.
# 3.5 ShadowsocksX安装
# 3.6 Proxifier安装
Proxifier是一款SOCKS5客户端通用代理软件,支持网络应用程序通过HTTPS或SOCKS代理上网。Proxifier支持XP,Vista,Win7和MAC OS等操作系统,支持SOCKS4,SOCKS5,HTTP,TCP和UDP等协议; Proxifier还支持玩各种网页游戏,游戏速度非常流畅。
# 3.6 python安装
#安装python
brew install python
#查看软件安装位置
which python3
which pip3
#查看版本
python3 -V

# 3.6.1 配置环境变量
#修改配置
vim ~/.zshrc
#在文件最后加上
# python3.9
alias python='/opt/homebrew/bin/python3'
export PATH=“/opt/homebrew/bin/python3/bin:${PATH}”
# 配置pip
alias pip='/opt/homebrew/bin/pip3'
export PATH=“opt/homebrew/bin/pip3:${PATH}”
#使文件生效
source ~/.zshrc
#检查是否生效
python -V
pip -V

