每次安装完系统配置环境是个极其麻烦的事情,于是乎就想着把自己常用配置记录下来,方便自己查阅,少踩坑。

本文主要基于 macOS Catalina10.15 来编写的,其他版本的 macOS 仅供参考!

系统设置

实用命令

允许安装任意来源的 App

有时候我们需要安装一些非官方 AppStore 的软件,这个时候就得到「安全与隐私」-「通用」里面来勾选开启任何来源,但是默认是没有这个选项的,所以我们需使用下面命令来手动开启:

1
2
# APP安装开启任何来源
sudo spctl --master-disable

image-20220413163908961

安装 Xcode Command Line Tools

Command Line Tools 是在 Xcode 中的一款工具,macOS 下不少开发工具都会依赖这个,所以先手动安装一下,后面安装其他工具可以省下不少麻烦:

1
2
# 安装 xcode 命令行工具
xcode-select --install

挂载NTFS磁盘

在 macOS 下,是无法直接挂载 NTFS 格式的硬盘的,也就是 windows 的硬盘的(其实Mac本身是支持的,只是被关掉了这个功能而已),我们可以在网上购买一些软件实现自动挂载。但也可以通过命令来进行手动挂载

1
2
3
4
5
6
7
8
# 列出磁盘分区
diskutil list

# 挂载磁盘到路径
sudo mount_ntfs -o rw,nobrowse /dev/disk2s1 /Users/xxx/pan

# 卸载磁盘
sudo umount /dev/disk2s1

解决移动硬盘里的文件在Mac上显示灰色的问题

1
2
# 批量为这个文件夹下的所有文件更改文件属性
xattr -d com.apple.FinderInfo 目标文件夹/*

启动台

启动台里面也可以设置应用的列和宽,使用如下命令即可:

1
2
3
4
5
6
7
8
# 设置列数
defaults write com.apple.dock springboard-columns -int 8

# 设置行数
defaults write com.apple.dock springboard-rows -int 5

# 重启 Dock 生效
killall Dock

设置的 5 行 8 列的效果如下:

image-20220413173108391

显示数量明显比默认的效果要好很多 ,如果你想恢复默认的话可以使用下面的命令。

恢复默认的配置:

1
2
3
4
5
6
# 恢复默认的列数和行数
defaults write com.apple.dock springboard-rows Default
defaults write com.apple.dock springboard-columns Default

# 重启 Dock 生效
killall Dock

触控优化

在使用触控板的时候默认得按压下去才可以拖动窗口,启用这个三指拖移可以不用按下去就可以拖动窗口了,提高效率!

image-20220413164310351

光标响应

键盘光标响应

image-20220413164520136

鼠标光标响应

image-20220416105857213

软件相关

Homebrew

Homebrew 是一款自由及开放源代码的软件包管理系统,用以简化 macOS 系统上的软件安装过程,个人认为是macOS上的必备神器。

1
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

默认的源是在国外,可能比较慢,有代理的可以挂个代理加快下速度

1
ALL_PROXY="socks5://xxx" /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

如果没代理的话,那就等等吧~

brew 常用命令:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 安装 brew-cask
brew install cask

# 更新 Homebrew
brew update

#  搜索相关的包
brew search [关键词] 

# 查看包的信息
brew info [软件名]
 
# 查看已安装的包
brew list

# 更新某个软件
brew upgrade [软件名]

# 清理所有软件的旧版
brew cleanup

# 卸载某个软件
brew uninstall [软件名]

iTerm2

可以去官网下载:https://iterm2.com

也可以使用brew安装

1
brew install iterm2 --casks

iTerm2 配合 Zsh 主题的话挺好看的,但是默认情况下有的丑,需要我们稍微设置一下才会好看点

  • Preferences - Apperance

设置一下主题以及标签页的显示位置

image-20220413175005841

  • 新建配置 - 字体设置

新建一个自己的配置,并设置为默认「Set as Default」,在新的配置里面可以进行字体相关的设置

image-20220413175535291

  • Colors - Color Presets… - import

我使用的是德古拉的配色

https://raw.githubusercontent.com/dracula/iterm/master/Dracula.itermcolors

直接使用 command+s 保存到本地,然后导入这个配色

image-20220416111601863

image-20220413175849823

再选择你下好的配色方案

image-20220413175954122

修改完后的是这样子的

image-20220416112007799

如果上面的 github 的链接打不开,我也把配色放这里了。下面代码保存下来,导入即可

  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
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
<?xml version="1.0" encoding="UTF-8"?>

<!-- Dracula Theme v1.2.5
#
# https://github.com/dracula/iterm
#
# Copyright 2013-present, All rights reserved
#
# Code licensed under the MIT license
#
# @author Zeno Rocha <hi@zenorocha.com>
-->

<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Ansi 0 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.0</real>
		<key>Green Component</key>
		<real>0.0</real>
		<key>Red Component</key>
		<real>0.0</real>
	</dict>
	<key>Ansi 1 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.3333333432674408</real>
		<key>Green Component</key>
		<real>0.3333333432674408</real>
		<key>Red Component</key>
		<real>1</real>
	</dict>
	<key>Ansi 10 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.4823529411764706</real>
		<key>Green Component</key>
		<real>0.98039215686274506</real>
		<key>Red Component</key>
		<real>0.31372549019607843</real>
	</dict>
	<key>Ansi 11 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.5490196078431373</real>
		<key>Green Component</key>
		<real>0.98039215686274506</real>
		<key>Red Component</key>
		<real>0.94509803921568625</real>
	</dict>
	<key>Ansi 12 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.97647058823529409</real>
		<key>Green Component</key>
		<real>0.57647058823529407</real>
		<key>Red Component</key>
		<real>0.74117647058823533</real>
	</dict>
	<key>Ansi 13 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.77647058823529413</real>
		<key>Green Component</key>
		<real>0.47450980392156861</real>
		<key>Red Component</key>
		<real>1</real>
	</dict>
	<key>Ansi 14 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.99215686274509807</real>
		<key>Green Component</key>
		<real>0.9137254901960784</real>
		<key>Red Component</key>
		<real>0.54509803921568623</real>
	</dict>
	<key>Ansi 15 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>1</real>
		<key>Green Component</key>
		<real>1</real>
		<key>Red Component</key>
		<real>1</real>
	</dict>
	<key>Ansi 2 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.4823529411764706</real>
		<key>Green Component</key>
		<real>0.98039215686274506</real>
		<key>Red Component</key>
		<real>0.31372549019607843</real>
	</dict>
	<key>Ansi 3 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.5490196078431373</real>
		<key>Green Component</key>
		<real>0.98039215686274506</real>
		<key>Red Component</key>
		<real>0.94509803921568625</real>
	</dict>
	<key>Ansi 4 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.97647058823529409</real>
		<key>Green Component</key>
		<real>0.57647058823529407</real>
		<key>Red Component</key>
		<real>0.74117647058823533</real>
	</dict>
	<key>Ansi 5 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.77647058823529413</real>
		<key>Green Component</key>
		<real>0.47450980392156861</real>
		<key>Red Component</key>
		<real>1</real>
	</dict>
	<key>Ansi 6 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.99215686274509807</real>
		<key>Green Component</key>
		<real>0.9137254901960784</real>
		<key>Red Component</key>
		<real>0.54509803921568623</real>
	</dict>
	<key>Ansi 7 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.73333334922790527</real>
		<key>Green Component</key>
		<real>0.73333334922790527</real>
		<key>Red Component</key>
		<real>0.73333334922790527</real>
	</dict>
	<key>Ansi 8 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.33333333333333331</real>
		<key>Green Component</key>
		<real>0.33333333333333331</real>
		<key>Red Component</key>
		<real>0.33333333333333331</real>
	</dict>
	<key>Ansi 9 Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.33333333333333331</real>
		<key>Green Component</key>
		<real>0.33333333333333331</real>
		<key>Red Component</key>
		<real>1</real>
	</dict>
	<key>Background Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.15977837145328522</real>
		<key>Green Component</key>
		<real>0.12215272337198257</real>
		<key>Red Component</key>
		<real>0.11765811592340469</real>
	</dict>
	<key>Bold Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.90237069129943848</real>
		<key>Green Component</key>
		<real>0.90237069129943848</real>
		<key>Red Component</key>
		<real>0.90237069129943848</real>
	</dict>
	<key>Cursor Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.73333334922790527</real>
		<key>Green Component</key>
		<real>0.73333334922790527</real>
		<key>Red Component</key>
		<real>0.73333334922790527</real>
	</dict>
	<key>Cursor Text Color</key>
	<dict>
		<key>Blue Component</key>
		<real>1</real>
		<key>Green Component</key>
		<real>1</real>
		<key>Red Component</key>
		<real>1</real>
	</dict>
	<key>Foreground Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.90032327175140381</real>
		<key>Green Component</key>
		<real>0.90032327175140381</real>
		<key>Red Component</key>
		<real>0.90032327175140381</real>
	</dict>
	<key>Selected Text Color</key>
	<dict>
		<key>Blue Component</key>
		<real>1</real>
		<key>Green Component</key>
		<real>1</real>
		<key>Red Component</key>
		<real>1</real>
	</dict>
	<key>Selection Color</key>
	<dict>
		<key>Blue Component</key>
		<real>0.35294118523597717</real>
		<key>Green Component</key>
		<real>0.27843138575553894</real>
		<key>Red Component</key>
		<real>0.26666668057441711</real>
	</dict>
</dict>
</plist

Oh My Zsh

安装

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

插件

autojump

目录切换神器,大大提高工作效率。

1
brew install autojump

~/.zshrc 中配置

1
plugins=(其他的插件 autojump)

输入zsh命令生效配置后即可正常使用j命令,下面是简单的演示效果:

1
2
3
4
5
6
7
# 第一次 cd 进入某个目录
➜  ~ cd Documents/Hexo
➜  Hexo cd ~

# 后面就可以直接通过 j 命令跳转到那个目录
➜  ~ j hexo
/Users/sec/Documents/Hexo

zsh-autosuggestions

终端下自动提示接下来可能要输入的命令,这个实际使用效率还是比较高的

1
2
# 拷贝到 plugins 目录下
git clone https://github.com/zsh-users/zsh-autosuggestions.git $ZSH_CUSTOM/plugins/zsh-autosuggestions

~/.zshrc 中配置:

1
plugins=(其他的插件 zsh-autosuggestions)

输入zsh命令生效配置

zsh-syntax-highlighting

命令输入正确会绿色高亮显示,可以有效地检测命令语法是否正确

1
2
# 拷贝到 plugins 目录下
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

~/.zshrc 中配置:

1
plugins=(其他的插件 zsh-syntax-highlighting)

输入zsh命令生效配置。

其他

关掉 URL 反斜杠转义

经常在 zsh 里面粘贴 URL 会出现下面的情况:

1
http://xxx/?id=1

粘贴到 iTerm2 的 zsh 中会变成这样:

1
http://xxx/\?id\=1

为了避免每次粘贴后都要修改的麻烦,我们需要手工关掉 URL 特殊符号转义,编辑 .zshrc 配置文件,取消下面内容的注释:

1
DISABLE_MAGIC_FUNCTIONS=true

编辑完成后,保存输入zsh命令重新加载配置文件,再次粘贴就不会出现这种情况了。

Vim

macOS 自带的 vim 是没有任何配色的,下面是常用的配色方案,先在用户目录下新建一个 vim 的配置文件:

1
vim ~/.vimrc

内容如下:

1
2
3
set number            " 显示行号
colorscheme desert    " 颜色显示方案
syntax on             " 打开语法高亮

配置修改为完,输入zsh命令生效配置,这里使用的 desert 配色方案,其他自带的配色可以参考这个目录下:

1
2
3
4
5
6
ls /usr/share/vim/vim*/colors 

README.txt	delek.vim	industry.vim	pablo.vim	slate.vim
blue.vim	desert.vim	koehler.vim	peachpuff.vim	tools
darkblue.vim	elflord.vim	morning.vim	ron.vim		torte.vim
default.vim	evening.vim	murphy.vim	shine.vim	zellner.vim

强制开启HiDPI

由于我的拓展屏是2k的分辨率,而macOS下 2k 屏幕默认不开启 HiDPI ,导致使用 2560*1440 分辨率会让字很小,直接使用下面这个项目可以强制开启 HiDPI

one-key-hidpi

Java环境配置

Python环境配置

pyenv

pyenv 是一个强大 Python 包管理工具,可以灵活地切换各种 Python 版本

项目地址:https://github.com/pyenv/pyenv

macOS 下可以使用 Homebrew 来安装 pyenv

1
2
# 安装 pyenv
brew install pyenv

将以下内容手动写入到 ~/.zshrc 配置文件:

1
2
3
4
5
6
7
8
9
# zsh
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"

# 使用zsh命令刷新shell
zsh

一些常用的命令如下:

版本安装

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# 查看已经安装的Python版本
pyenv versions

# 查看当前的 Python 版本
pyenv version

# 查看可安装的版本
pyenv install -l

# 安装与卸载 python 3.7.13
pyenv install 3.7.13
pyenv uninstall 3.7.13

所安装的版本都在 ~/.pyenv/versions目录下。

版本切换

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# global 全局设置 一般不建议改变全局设置
➜ pyenv global <python版本>

# shell 会话设置 只影响当前的shell会话
➜ pyenv shell <python版本>
# 取消 shell 会话的设置
➜ pyenv shell --unset

# local 本地设置 只影响所在文件夹
➜ pyenv local <python版本>

pyenv 的 global、local、shell 的优先级关系是:shell > local > global

下载卡顿

这个只能自行挂代理解决啦~

1
ALL_PROXY="socks5://127.0.0.1:1089" pyenv install 3.7.13

Mysql环境配置

使用 brew 来安装 mysql ,我这边是只安装了客户端

1
2
3
4
5
# 搜索可以安装的版本
brew search mysql

# 安装对应的版本
brew install mysql-client@5.7

大家根据自己的实际情况来配置以下环境变量(建议全部加进去)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# If you need to have mysql-client@5.7 first in your PATH, run:
echo 'export PATH="/usr/local/opt/mysql-client@5.7/bin:$PATH"' >> ~/.zshrc

# For compilers to find mysql-client@5.7 you may need to set:
export LDFLAGS="-L/usr/local/opt/mysql-client@5.7/lib"
export CPPFLAGS="-I/usr/local/opt/mysql-client@5.7/include"

# For pkg-config to find mysql-client@5.7 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/mysql-client@5.7/lib/pkgconfig"

# 刷新zsh配置环境
zsh

image-20220416210300882

参考

国光的 macOS Monterey 12.X 配置记录

国光的 macOS 配置优化记录