MacOS环境配置
环境配置
.zprofile
.zprofile管理环境:打开GU应用或Terminal时,自动从该文件中加载一次全局环境变量,直至本次进程结束- 若
.zprofile修改,GUI应用需要重启、Terminal重启或source ~/.zprofile
- 若
1 | # 设置全局变量 |
.zshrc
.zshrc管理交互:每打开一个Terminal的新标签页都会执行,适合设置命令行工具、提示符、自动激活工具
1 | # 进入目录的同时打印,builtin强调shell原始命令,避免递归 |
包管理
Homebrew
Install
- Homebrew是macOS上的包管理器,是用于安装、更新、卸载各种开发工具的和软件的命令行工具
- 使用官方安装脚本:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"/bin/bash -c:指定使用Bash shell,从字符串$(...)中读取命令并执行curl -fsSL:从GitHub下载官方安装脚本install.sh-f (--fail):入请求失败,直接返回非零退出码-s (--silent):静默模式,不显示进度条、连接信息等冗余输出-S (--show-error):与-s结合使用,当发生错误时显示冗余错误信息-L (--location):若目标URL有跳转,自动跟进最终地址
- 在
~/.zprofile中设置环境变量:eval "$(/opt/homebrew/bin/brew shellenv)"eval会自动执行$(...)内的字符串输出:自动将/opt/homebrew/bin中的可执行文件或软链接加入全局变量source ~/.zrofile后,输入brew -v (--version)检查环境变量设置是否成功
Info
- 使用
brew info xxx能够查询到软件包的基础信息、安装状态、依赖项、注意事项和统计信息
1 | arvin@arvinhwo ~ % brew info openjdk |
bottled表示该软件包提供了预编译的二进制包,Homebrew默认优先使用- 使用二进制包无需从源码编译安装,需要满足运行依赖项
Required
- 使用二进制包无需从源码编译安装,需要满足运行依赖项
keg-only软件包单独存放,安装后不会自动在/opt/homebrew/bin建立全局软链接- 这可以避免直接覆盖系统自带同名软件、破坏系统依赖,如
openjdk,同时若使用Homebrew安装了多版本的keg-only软件包,也可以手动选择使用哪个版本
- 这可以避免直接覆盖系统自带同名软件、破坏系统依赖,如
Analytics是Homebrew的匿名统计数据,反映该软件包的流行程度和稳定性
Python3
-
Python3是新一代Python语言和运行环境
- 使用
pip3、python3等命令运行 pip3是Python3自带的包管理工具(Package Installer for Python)
- 使用
-
使用Homebrew安装Python3:
brew install python- 输入
brew info python检查是否成功
- 输入
-
从info中得知,Homebrew并未直接将
python、pip等无版本号命令加入全局链接- 在
~/.zprofile中将/opt/homebrew/opt/python@3.14/libexec/bin加入环境变量后,即可使用pip、python等命令运行 - 若同时打开
/opt/homebrew/bin/pip3和/opt/homebrew/opt/python@3.14/libexec/bin/pip可以发现内容是相同的
- 在
1 | !/opt/homebrew/Cellar/python@3.14/3.14.0_1/bin/python3.14 |
- 若项目需要,可在项目根目录创建虚拟环境:
python -m venv myenv- 虚拟环境能实现在不同项目中使用不同版本的库,避免冲突
- 手动激活虚拟环境:
source myenv/bin/activate;或使用下列dienv工具
Direnv
- Direnv让目录自己管理环境,进出自动生效/撤销,不污染全局Shell
- 使用Homebrew安装Direnv:
brew install direnv- 输入
brew info direnv检查是否成功
- 输入
- 配置自动识别:
echo 'eval "$(direnv hook zsh)"' >> ~/.zshrc- 放在
.zshrc而非.zprofile是为了在新开的tab也能生效
- 放在
- 在项目根目录创建
.envrc:echo 'source ./myenv_path/bin/activate' > .envrc>>追加写入;>覆盖写入
- 允许
.envrc:dirnev allow,实现每次进入项目目录,虚拟环境自动激活;离开目录,虚拟环境自动退出
Node.js
-
Node.js是运行JavaScript的高性能运行环境
- 使用
npm命令安装包,npm是Node.js自带的包管理器(Node Package Manager)
- 使用
-
使用Homebrew进行安装:
brew install node- 输入
brew info node检查是否成功
- 输入
Hexo
- Hexo是一个快速、轻量的静态博客框架
- 使用
npm命令安装Hexo:npm install -g hexo-cli - 其余操作与Windows平台中相同,参见文章Hexo部署
Git
-
Git是一个分布式版本控制系统,用来记录代码历史i、多人协作、管理项目变更
- 使用
git命令运行
- 使用
-
使用Homebrew进行安装:
brew install git- 输入
brew info git检查是否成功
- 输入
-
其余操作与Windows平台中相同,参见文章Git指南
OpenJDK
- Open Java Development Kit是Java平台的开源实现,包含Java开发和运行的核心组件
- 使用
java命令运行
- 使用
- 使用Homebrew安装:
brew install openjdk- 也可以使用
brew search openjdk搜索可用版本并安装 - 输入
brew info openjdk检查是否成功
- 也可以使用
- OpenJDk是keg-only软件,需要在
~/.zprofile中设置环境变量source ~/.zrofile后,输入java -version检查环境变量设置是否成功
1 | export JAVA_HOME="/opt/homebrew/opt/openjdk" |
PlantUML
-
PlantUML是一个文字画UML图的工具,内部可以调用Graphviz来排版
- 使用
plantuml运行脚本 - UML:Unified Modeling Landuage Diagram,统一建模语言图
- 使用
-
使用Homebrew安装:
brew install plantuml- 输入
brew info plantuml检查是否成功
- 输入
Graphviz
- Graphviz是一个图形布局引擎和绘图库,绘图基础工具
- 使用
dot命令运行脚本
- 使用
- 使用Homebrew安装:
brew install graphviz- 输入
brew info graphviz检查是否成功
- 输入
Tcl/Tk
- Tlk/Tk是一个跨平台脚本语言和GUI工具包
- Tcl:Tool Command Language,用于自动化、测试、嵌入式开发,使用
tclsh命令运行脚本 - Tk:Tcl的图形界面库,可快速创建窗口、按钮、文本框等GUI,使用
wish命令运行脚本
- Tcl:Tool Command Language,用于自动化、测试、嵌入式开发,使用
- 使用Homebrew安装:
brew install tcl-tk- 输入
brew info tcl-tk检查是否成功
- 输入
快捷键
系统
- 锁屏:
ctrl+command+q - 结束当前应用进程:
command+q - 卡死时强制退出:
command+option+esc - 显示或隐藏程序坞
command+option+d - 切换应用:
command+tab- 切换上一个应用:
command+shift+tab - 切换同一个应用的窗口:
command+num
- 切换上一个应用:
窗口
- 关闭当前窗口:
command+w- 对应窗口左上角红色圆点,应用转为后台运行,内存不足时自动退出
- 最小化窗口到程序坞:
command+m- 对应窗口左上角黄色圆点
- 进入/退出全屏:
ctrl+command+F- 对应窗口左上角绿色圆点
- 隐藏当前应用所有窗口:
command+h
截图
command+shift+3:截取屏幕到文件command+shift+control+3:截取屏幕到剪切板
command+shift+4:截取指定区域到到文件command+shift+control+4:截取指定区域到到剪切板