macOS开荒
环境配置
登陆
~/.zprofile:打开GU应用或Terminal时,自动从该文件中加载一次系统环境变量,直至本次进程结束- 若
.zprofile修改,GUI需重新登陆生效、CLI需重启或source ~/.zprofile
- 若
1 | ########################################### |
交互
~/.zshrc:每打开一个Terminal的新标签页都会执行,适合设置命令行工具、提示符、自动激活工具- 若
.zshrc修改,CLI需重启或source ~/.zprofile
- 若
1 | ########################################### |
包管理
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能够查询到软件包的基础信息、安装状态、依赖项、注意事项和统计信息,以已安装的openjdk为例
1 | arvin@arvinhwo ~ % brew info openjdk |
bottled表示该软件包提供了预编译的二进制包,Homebrew默认优先使用- 使用二进制包无需从源码编译安装,需要满足运行依赖项
Required
- 使用二进制包无需从源码编译安装,需要满足运行依赖项
keg-only软件包单独存放,安装后不会自动在/opt/homebrew/bin建立全局软链接- 这可以避免直接覆盖系统自带同名软件、破坏系统依赖,如
openjdk,同时若使用Homebrew安装了多版本的keg-only软件包,也可以手动选择使用哪个版本
- 这可以避免直接覆盖系统自带同名软件、破坏系统依赖,如
Analytics是Homebrew的匿名统计数据,反映该软件包的流行程度和稳定性
update
- 使用
brew update拉取最新的软件包列表,会列出可供安装的新软件包和过时的软件包- 或使用
brew outdated查看可升级的软件包
- 或使用
- 升级所有可升级的软件包
brew upgrade,或升级单个软件包brew upgrade xxxupgrade命令会自动下载新版Bottle、安装新版本、自动执行cleanup,把旧版本移除- 若需要保留旧版本,可以在
.zprofile中设置export HOMEBREW_NO_INSTALL_CLEANUP=1关闭自动清除
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,实现每次进入项目目录,虚拟环境自动激活;离开目录,虚拟环境自动退出
Git
Git是一个分布式版本控制系统,用来记录代码历史i、多人协作、管理项目变更
- 使用
git命令运行
- 使用
使用Homebrew进行安装:
brew install git- 输入
brew info git检查是否成功
- 输入
其余操作与Windows平台中相同,参见文章Git指南
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部署
- 使用
hexo-site % npm list --depth=0查看已安装的插件 npm uninstall xxx -save卸载
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:截取指定区域到到剪切板