记录一下使用 Mac 作为生产工具开发的一些基本配置和经验。
配置文件
Mac 上有很多配置文件都可以用来保存环境变量等配置,根据自己的理解记录了四个文件的用途:
代码语言:javascript复制# etc/profile 系统配置文件
# etc/.bash_profile 系统环境变量配置
# ~/.bash_profile 个人环境变量配置
# ~/.zshrc zsh 的配置文件
编辑最多的应该是 ~/.bash_profile
和 ~/.zshrc
, 基本上建议所有的个人配置都放在 ~/.bash_profile
中,然后在 ~/.zshrc
最后执行 source ~/.bash_profile
, 这样也方便将自己的个人环境变量配置备份。
常用命令
代码语言:javascript复制# 安装/卸载 homebrew install.sh/uninstall.sh
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 注意:安装 Homebrew 会下载 node, 请做好 node 环境被破坏的准备
# 显示隐藏文件 true/false or cmd shift .
defaults write com.apple.finder AppleShowAllFiles -boolean true ; killall Finder
# 释放端口
lsof -i:$your_port # 1. 查看使用端口进程
kill -9 $your_PID # 2. 释放进程
Node
代码语言:javascript复制# 设置阿里镜像
npm config set registry=https://registry.npmmirror.com
# npm config set registry https://registry.npmjs.org
# GitHub 仓库下载地址前缀镜像
# disturl=https://registry.npmmirror.com/-/binary/
# 全局安装的依赖
npm install -g npm@8.13.1
npm install -g cnpm
npm install -g @vue/cli
npm install -g nvm
npm install -g nrm
npm install -g yarn
npm install -g yrm
# npm 参数
--ignore-scripts # 忽略脚本错误
--force # 会无视冲突,并强制获取远端 npm 库资源,即使本地有资源也会覆盖掉
--legacy-peer-deps # 安装时忽略所有 peerDependencies,忽视依赖冲突,采用 npm 版本 4 到版本 6 的样式去安装依赖,已有的依赖不会覆盖
# 清除缓存
npm cache clean --force
rm -rf node_modules
rm -rf package-lock.json
npm install
# nvm
nvm alias default [node_version] # 设置默认版本
# 检查过时依赖
npm outdated
# 安全更新
npm update
# ncu 更新检查工具
# https://blog.51cto.com/u_13028258/5115637?b=totalstatistic
npm install -g npm-check-updates
## 检查
ncu
ncu vue
## 更新
ncu -u
ncu -u vue
electron 相关配置
代码语言:javascript复制# 设置 electron 镜像仓库
# https://registry.npmmirror.com/-/binary/electron
# 13.1.7 版本 下载链接可能会拼错导致 404,要设置成 https://registry.npmmirror.com/-/binary/electron/v
npm config set electron_mirror=https://npmmirror.com/mirrors/electron/
Git
代码语言:javascript复制# 设置 electron 镜像仓库
# https://registry.npmmirror.com/-/binary/electron
# 13.1.7 版本 下载链接可能会拼错导致 404,要设置成 https://registry.npmmirror.com/-/binary/electron/v
npm config set electron_mirror=https://npmmirror.com/mirrors/electron/
提示
将内容写成 shell 脚本,在 SourceTree 中自定义操作。
SourceTree
Custom actions
- Script target:
/bin/bash
- Parameters:
/Users/liruihao/workspace/.shell/ssh.sh
同步远程仓库标签分支脚本
代码语言:javascript复制#! /bin/bash
cd $REPO/.git
git tag -l | xargs git tag -d
# git fetch origin --prune
# git fetch origin --tags
git fetch origin --prune --prune-tags
Terminal
- Terminal: 系统自带
- Shell: zsh
- 美化: ohmyzsh
修改启动语
代码语言:javascript复制vim $PREFIX/etc/motd
sublime-text 3
代码语言:javascript复制# Terminal 启用 sublime 别名 subl
## 1.设置软链(推荐)
sudo ln -s "/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl" /usr/local/bin/subl
## 2.设置别名
vim ~/.bash_profile
alias subl="'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'"
source ~/.bash_profile # 每打开一个命令窗口,需要先让命令生效
.bash_profile 备份
代码语言:javascript复制# -------------------------------------
# This configuration is for Lruihao.
# https://lruihao.cn/posts/config4mac/
# -------------------------------------
export LC_ALL=en_US.UTF-8
export LANG=en_US.UTF-8
# workspace
export WORKSPACE="$HOME/workspace"
# alias
alias subl="'/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl'"
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin
# nvm
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion
# maven
export M2_HOME=/Users/liruihao/Applications/apache-maven-3.8.5
export PATH=$PATH:$M2_HOME/bin
# jenv
export PATH="$HOME/.jenv/bin:$PATH"
eval "$(jenv init -)"
# java
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.2.jdk/Contents/Home
export JAVA_HOME=$JAVA_8_HOME # 设置一个中间变量,为了方便多个 JDK 版本时更换 JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH:. # 冒号前代表 JDK 目录下的 bin 目录,冒号后代表当前目录
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
# jmeter
export JMETER_HOME=/Users/liruihao/jmeter/apache-jmeter-5.4.1
export PATH=$JAVA_HOME/bin:$PATH:.:$JMETER_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JMETER_HOME/lib/ext/ApacheJMeter_core.jar:$JMETER_HOME/lib/jorphan.jar:$JMETER_HOME/lib/logkit-2.0.jar
# platform-tools of Android SDK
export PATH=$PATH:/Users/liruihao/Applications/platform-tools
# Electron-Mac app development
export CSC_LINK=/Users/liruihao/workspace/mac_app_dev/Mac.p12
export CSC_KEY_PASSWORD=xxxxxxxxx
# yarn
export PATH="$HOME/.yarn/bin:$HOME/.config/yarn/global/node_modules/.bin:$PATH"
# zsh custom plugin
# https://mimosa-pudica.net/zsh-incremental.html
source $WORKSPACE/incr*.zsh
.vimrc
Path: ~/.vimrc
先添加一些基础配置 basic.vim
代码语言:javascript复制"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" => Custom config for Lruihao
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
" Enable mouse
set mouse=a
" Enable line-number
set number