拾忆🍂拾忆🍂
  • Ollama
  • clawhub-cli
  • dsh
  • OpenClaw
  • OpenClaw-钉钉
  • OpenClaw-飞书
  • Skills
  • MySQL
  • Oracle
  • PostgreSQL
  • MyBatis
  • API升级
  • HMOS
  • HMOS 官方示例项目集
  • HDC
  • 百变小组件
  • 元服务
  • Java
  • MinIO
  • Stream
  • JSP & Struts2
  • Spring
  • FFmpeg
  • SSL证书
  • Linux
  • docker
  • Git
  • Nginx
  • 终端快捷键
  • Adobe Audition
  • Aseprite
  • cpp
  • Excel
  • K
  • Markdown基本用法
  • MuseScore 4.x
  • UVR
  • Windows
  • emoji-cheat-sheet
  • IDE快捷键
  • macOS
  • obs-studio
  • YOLO
  • Python
  • VuePress 2.x
  • 内置组件
  • markdown-container
  • markdown-ext
  • markdown-hint
  • markdown-preview
  • markdown-tab
  • Markdown扩展语法
  • 插件配置
  • prismjs
  • 样式
  • CSS
  • JS
  • TS
  • Vue3
主页
梦的开始🌅
  • Ollama
  • clawhub-cli
  • dsh
  • OpenClaw
  • OpenClaw-钉钉
  • OpenClaw-飞书
  • Skills
  • MySQL
  • Oracle
  • PostgreSQL
  • MyBatis
  • API升级
  • HMOS
  • HMOS 官方示例项目集
  • HDC
  • 百变小组件
  • 元服务
  • Java
  • MinIO
  • Stream
  • JSP & Struts2
  • Spring
  • FFmpeg
  • SSL证书
  • Linux
  • docker
  • Git
  • Nginx
  • 终端快捷键
  • Adobe Audition
  • Aseprite
  • cpp
  • Excel
  • K
  • Markdown基本用法
  • MuseScore 4.x
  • UVR
  • Windows
  • emoji-cheat-sheet
  • IDE快捷键
  • macOS
  • obs-studio
  • YOLO
  • Python
  • VuePress 2.x
  • 内置组件
  • markdown-container
  • markdown-ext
  • markdown-hint
  • markdown-preview
  • markdown-tab
  • Markdown扩展语法
  • 插件配置
  • prismjs
  • 样式
  • CSS
  • JS
  • TS
  • Vue3
主页
梦的开始🌅
  • 「从开始,到永久」
  • AI

    • Ollama
    • clawhub-cli
    • dsh
    • OpenClaw
    • OpenClaw-钉钉
    • OpenClaw-飞书
    • Skills
  • Database

    • MySQL
    • Oracle
    • PostgreSQL
    • MyBatis
  • HarmonyOS

    • API升级
    • HMOS
    • HMOS 官方示例项目集
    • HDC
    • 百变小组件
    • 元服务
  • Java

    • Java
    • MinIO
    • Stream
    • JSP & Struts2
    • Spring
  • Linux

    • FFmpeg
    • SSL证书
    • Linux
    • docker
    • Git
    • Nginx
    • 终端快捷键
  • Others

    • Adobe Audition
    • Aseprite
    • cpp
    • Excel
    • K
    • Markdown基本用法
    • MuseScore 4.x
    • UVR
    • Windows
    • emoji-cheat-sheet
    • IDE快捷键
    • macOS
    • obs-studio
    • YOLO
  • Python

    • Python
  • VuePress

    • VuePress 2.x
    • 内置组件
    • markdown-container
    • markdown-ext
    • markdown-hint
    • markdown-preview
    • markdown-tab
    • Markdown扩展语法
    • 插件配置
    • prismjs
    • 样式
  • Web

    • CSS
    • JS
    • TS
    • Vue3
  • 主页

macOS

快捷键

  • ⌃ = Control(toDesk:Ctrl)
  • ⇧ = Shift
  • ⌥ = Option (toDesk:Alt)
  • ⌘ = Command(toDesk:Win 键)
  • ⏎ = Return/回车
  • ⌫ = Backspace/退格
  • ⇥ = Tab/制表符
  • ␣ = Space/空格

通用

Key GroupsFunctionRemark
⌘ + C / V / X / Z / ⇧ + Z复制、粘贴、剪切、撤销、重做访达内剪切文件:先正常复制,但是用 ⌥ + ⌘ + V 粘贴。
⌃ + ␣切换输入法macOS 10.10 或更低版本:⌘ + ␣
⌘ + ␣Spotlight 聚焦搜索键入 terminal、活动监视器 等
⌘ + Tab切换应用程序按住 ⌘ 不放,按 Tab 选择。
按 ` 可以反向选取。
⌘ + `同一应用之间切换窗口按住 ⌘ 不放,按 ` 选择
⌃ + F7Tab焦点控制开关
⌘ + W关闭窗口大多数应用通用(并不是退出应用)
⌘ + I查看文件简介 / 文件属性如果你选中多个文件,会为每个文件单独打开一个窗口。
⌥ + ⌘ + I打开一个统一的“文件简介”窗口会动态显示当前选中的文件信息,选中不同文件时内容会跟着变化。
--关闭 和 最小化的窗口 不会在快捷键切换应用窗口的列表内,如果想显示所有窗口,参考:调度中心和应用程序窗口
---
⌘ + Q完全退出当前应用和Windows关闭窗口不同,macOS应用通常只是关窗,这个才是彻底退出
(有的应用需要长按)
⇧ + ⌘ + H访达:个人文件夹-
⇧ + ⌘ + .访达:显式文件夹内的隐藏文件/夹-
⇧ + ⌘ + G访达中:进入到指定文件夹。-
⌘ + ⌫访达:删除文件-
⌘ + ↑ / ↓进入 上 / 下 级文件夹-
⌘ + N打开新窗口大多数应用通用
⇧ + ⌘ + N新建文件夹-
⌥ + ⌘ + V移动文件先复制文件( ⌘ + C),然后在目标文件夹按此键进行移动
F11速览桌面-
``

文本输入框跳转行首、行尾

  • 跳到行首 (Home):⌘ + ←
  • 跳到行尾 (End):⌘ + →

提示

这在非input内行为为返回、前进。

按单词移动光标

  • ⌥ + ← : 光标向左移动一个单词
  • ⌥ + → : 光标向右移动一个单词

同时选中单词(编辑器中常用):

  • ⌥ + Shift + ← : 向左选中一个单词
  • ⌥ + Shift + → : 向右选中一个单词

终端

(Terminal/iTerm2)

Key GroupsFunctionRemark
⌃ + C中断当前进程和Linux/Unix一致
⌃ + D退出当前Shell/EOF-
⌃ + A / E光标移动到行首/行末在命令行编辑时非常有用
⌃ + U删除光标前所有字符-
⌘ + K清屏在Terminal中清空屏幕内容
⌘ + D分屏-
⌘ + ⇧ + D取消分屏iTerm2 中 ⌘ + ⇧ + D 是水平分屏,而取消/关闭分屏通常用 ⌘ + W 关闭当前窗格。
⌘ + T新标签页-
⌘ + W关闭当前分屏-

窗口与分屏管理

Key GroupsFunctionRemark
⌥ + ⌘ + D显示 / 隐藏Dock栏给编辑器腾出更多空间
⌃ + ↑打开调度中心查看所有窗口和虚拟桌面
⌃ + ↓同一应用所有窗口-
⌃ + ← / →切换虚拟桌面如果你设置了多个桌面
---
⌃ + ⌘ + F最大化当前窗口-
⌘ + M最小化当前窗口-
⌥ + ⌘ + M最小化所有窗口-
按住 ⌘ + 点按 Tab + 按住⌥ + 松开 ⌘恢复最小化窗口版本不同:⌘ + 点按 切换到该应用图标,松开 ⌘ 键。松开后窗口会自动弹出。
如果没弹出,立即重试:注意这次 Tab 选中之后要先按住 ⌥ 键再松开 ⌘ 键。
⌘ + H隐藏当前应用所有窗口不在Dock栏右侧留下小图标,同时应用会退到后台。
--关闭 和 最小化的窗口 不会在快捷键切换应用窗口的列表内,如果想显示所有窗口,参考:调度中心和应用程序窗口

命令

提示

  • 多行命令:行尾键入 \ 续行符。
  • 查看命令安装位置:which <command-name> 、whereis <command-name>

提示

系统默认不包含开发套件,使用 git -v 诱饵命令触发 /usr/libexec/ota(Over The Air,无线下载安装)的系统守护进程。

它自动下载一整套完整的 Unix开发环境,主要包含以下几类工具:

A. 版本控制系统

  • git:最核心的版本控制工具。
  • svn(Subversion):虽然现在较少使用,但早期版本默认包含,新版本可能已移除或作为可选。

B. 编译器与构建工具

  • Clang/LLVM:Apple 官方的 C、C++、Objective-C 编译器(通过 clang 或 gcc 命令调用)。
  • Make:经典的构建自动化工具(make 命令)。
  • autoconf/automake/libtool:用于生成配置脚本和编译库的工具链。
  • Linker(链接器):如 ld。

C. 系统头文件与框架

  • 这是非常重要的一部分。包含了 macOS 内核级别的 C 语言头文件(/usr/include/),以及 CoreFoundation、Cocoa 等底层框架的开发头文件。这允许你在命令行中编译调用系统API的C程序。

D. 核心 Unix 命令的扩展

  • openssl:加密工具和库。
  • Python 2/3(历史版本中自带,新版本macOS可能不再捆绑,但命令行工具可能会安装或依赖其库)。
  • Perl、Ruby:脚本语言解释器及开发库。
  • rsync、curl、ssh:网络和文件同步工具。

E. 调试与分析工具

  • lldb:LLVM项目的调试器(类似于GDB)。
  • dwarfdump:用于查看调试信息。
  • otool:查看Mach-O二进制文件(macOS可执行文件格式)结构的工具。

F. 性能测试工具

  • xctrace:用于录制系统性能数据。

文件、文件夹

# 桌面创建文件
touch ~/Desktop/openclaw-token.txt

# 指定应用程序打开文件
open [-a TextEdit] openclaw-token.txt

# nano、vim 也可以

网络代理

命令行代理

仅当前终端内的网络请求,或终端内启动的 node 服务器等生效。

# 设置 HTTP/HTTPS 代理
export http_proxy=http://127.0.0.1:7897
export https_proxy=http://127.0.0.1:7897

# 设置 SOCKS5 代理(如果需要)
export all_proxy=socks5://127.0.0.1:7897

# 设置 FTP 代理
export ftp_proxy=http://127.0.0.1:7897

# 设置无代理列表(绕过代理)
export no_proxy="localhost,127.0.0.1,::1"

# 测试代理是否工作 看输出的http状态码
curl -I http://www.google.com

全局代理

echo 'export http_proxy=http://127.0.0.1:7897' >> ~/.zshrc
echo 'export https_proxy=http://127.0.0.1:7897' >> ~/.zshrc
source ~/.zshrc

# 测试代理是否工作 看输出的http状态码
curl -I http://www.google.com

图形化操作

  1. 系统偏好设置 → 网络
  2. 选择当前网络连接(Wi-Fi 或以太网)
  3. 点击高级 → 代理选项卡
  4. 配置代理:
    • 勾选"网页代理(HTTP)":127.0.0.1:7897
    • 勾选"安全网页代理(HTTPS)":127.0.0.1:7897
    • 勾选"SOCKS 代理":127.0.0.1:7897(如果需要)

端口占用

lsof

# Step 1: 查找 PID(和macOS通用)
lsof -ti :18789

# 示例输出
COMMAND   PID   USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    12345   alice  12u  IPv4  0t0    0t0      TCP  *:18789 (LISTEN)
node    12345   alice  13u  IPv4  0t0    0t0      TCP  192.168.1.5:18789->192.168.1.10:54321 (ESTABLISHED)

# Step 2: 杀死进程(和macOS通用)
kill -9 $(lsof -ti :18789)
列名含义示例
COMMAND进程名称node, python, java
PID进程ID12345
USER运行用户root, alice
FD文件描述符12u (u=读写)
TYPE协议类型IPv4, IPv6
DEVICE设备号0t0
SIZE/OFF文件大小/偏移量0t0
NODE协议节点TCP
NAME地址:端口*:18789 (监听), 192.168.1.5:18789->192.168.1.10:54321 (连接)

提示

使用别名:

# 查看端口占用
alias port='lsof -i'

# 杀死指定端口进程
alias killport='function _killport() { kill -9 $(lsof -ti :$1) 2>/dev/null || echo "端口 $1 未被占用"; }; _killport'

# 使用示例:
# port :18789          # 查看 18789 端口
# killport 18789       # 杀死占用 18789 端口的进程

常用技巧

F1~F12实际功能键优先

  • Fn + Esc : 使用键盘自带的Fn锁定功能
  • 系统偏好设置 -> 键盘 -> 勾选 “将 F1、F2 等键用作标准功能键”

root权限

在使用root权限的时候,优先使用 sudo [命令] ,其次使用 sudo -i。

终端@后面的主机名

  • 系统偏好设置 -> 共享 -> 在顶部的“电脑名称”框中输入新名字即可。

终端颜色及其他配置

# ls 颜色(macOS BSD 版)
alias ls='ls -G'
# 显示隐藏文件
alias la='ls -aG'
export CLICOLOR=1
export LSCOLORS='ExGxBxDxCxEgEdxbxgxcxd'

# 启用补全系统
autoload -Uz compinit && compinit

# 让补全列表更直观(区分文件类型和使用颜色)
zstyle ':completion:*' list-colors 'di=34:ln=35:so=32:pi=33:ex=31:bd=36;01:cd=33:su=31:sg=31:tw=34:ow=33'

# 按 tab 时直接显示菜单,不用按两次
setopt AUTO_MENU

# 补全菜单中可以用方向键选择
zstyle ':completion:*' menu select

# 大小写不敏感
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'

# ll 详细列表
alias ll='ls -lh'

# grep 颜色
alias grep='grep --color=auto'

# 模拟tree行为
alias dirtree='find . -not -path "./.git/*" | sort | sed -e "s/[^\/]*\//│   /g" -e "s/│   \([^│]\)/├── \1/g"'

# 启用 git 分支信息,用于终端内显示分支颜色
autoload -Uz vcs_info
precmd() { 
    vcs_info 
}
# 定义 git 分支的显示格式:(黄色分支名)
zstyle ':vcs_info:git:*' formats ' (%F{yellow}%b%f)'

setopt PROMPT_SUBST
# 提示符 用户名@主机名 同颜色
# PROMPT='%F{green}%n@%m%f:%F{blue}%~%f${vcs_info_msg_0_} %# '
# 用户名-绿色、@-白色、主机名-绿色、:-白色、目录-蓝色、%#-白色
PROMPT='%F{green}%n%f@%B%F{green}%m%f%b:%F{blue}%~%f${vcs_info_msg_0_} %# '

# 连续相同命令只存一条
setopt HIST_IGNORE_DUPS
# 空格开头的命令不记录
setopt HIST_IGNORE_SPACE

自带终端主题

自带的终端默认Basic描述文件是会跟随系统深浅色切换的。但是如果像win一样习惯更改终端的背景透明度,就不会自动切换了,那就使用下面的方法:

  1. 分别复制终端Basic描述文件为 Basic-Light 、 Basic-Dark 。并修改颜色、透明度等

  2. 编写脚本,用来检测当前系统颜色模式设置并修改终端的描述文件:

    auto-terminal-color.sh
    #!/bin/zsh
    
    # 直接查询系统实际外观,绕开 `defaults read -g AppleInterfaceStyle` 缓存
    is_dark=$(osascript -e 'tell app "System Events" to tell appearance preferences to get dark mode' 2>/dev/null)
    
    if [ "$is_dark" = "true" ]; then
        # 设置默认配置文件为 Basic-Dark
        osascript -e 'tell application "Terminal" to set default settings to settings set "Basic-Dark"'
        # 同时更新已打开的窗口
        osascript -e 'tell application "Terminal" to set current settings of every window to settings set "Basic-Dark"'
    else
        # 设置默认配置文件为 Basic-Light
        osascript -e 'tell application "Terminal" to set default settings to settings set "Basic-Light"'
        # 同时更新已打开的窗口
        osascript -e 'tell application "Terminal" to set current settings of every window to settings set "Basic-Light"'
    fi
    
    # 打开终端时自动切换深浅色透明度配置文件
    # 由于修改背景透明度之后,背景颜色就固定了,不随主题色切换而改变,所以需要再复制出来两个Basic-Dark/Light描述文件,然后把默认的Basic背景透明度改成0%
    ## 打开 终端 → 偏好设置 → 描述文件。
    ## 选择把 Basic 设置为默认描述文件)。
    ## 点击右侧的 "Shell" 标签页。
    ## 在 "启动" 部分,勾选 "运行命令"。
    ## 在输入框中粘贴以下命令:
    ## /Users/enlin/workspace/startup/auto-terminal-color.sh
    
  3. 编写 LaunchAgent 文件:

    # 1. 创建 LaunchAgent 文件
    nano ~/Library/LaunchAgents/com.user.auto-terminal-theme.plist
    
    ## 复制完下方的内容,按 ⌃ + X 之后按回车保存
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <!-- 唯一标识符,建议用反向域名格式,避免与其他 LaunchAgent 冲突 -->
        <key>Label</key>
        <string>com.user.auto-terminal-theme</string>
        
        <!-- 要执行的程序 -->
        <key>ProgramArguments</key>
        <array>
            <!-- 解释器 -->
            <string>/bin/zsh</string>
            <!-- 脚本路径 -->
            <string>/Users/enlin/workspace/startup/auto-terminal-color.sh</string>
        </array>
        
        <!-- 监听的路径,当这个文件变化时触发脚本 -->
        <key>WatchPaths</key>
        <array>
            <string>/Users/enlin/Library/Preferences/.GlobalPreferences.plist</string>
        </array>
        
        <!-- 加载时立即执行一次 -->
        <key>RunAtLoad</key>
        <true/>
    </dict>
    </plist>
    
  4. 启用 LaunchAgent:

    # 1. 确保脚本有执行权限
    chmod +x /Users/enlin/workspace/startup/auto-terminal-color.sh
    
    # 2. 加载 LaunchAgent(unload是取消加载)
    launchctl load ~/Library/LaunchAgents/com.user.auto-terminal-theme.plist
    
    # 3. 验证是否加载成功
    launchctl list | grep auto-terminal-theme
    

    验证输出

    -	0	com.user.auto-terminal-theme
    
    • 第一列 -:表示进程当前没有运行(正常,因为脚本执行完就退出了)
    • 第二列 0:上次退出状态码,0 表示成功执行
    • 第三列:Label 标识符

提示

查看执行日志:

# 手动运行一次脚本,看是否有报错
/Users/enlin/workspace/startup/auto-terminal-color.sh

# 查看 LaunchAgent 日志
log show --predicate 'subsystem == "com.apple.launchd"' --last 5min | grep auto-terminal

微信-历史版本

下载页
最后一个兼容Big Sur的版本:

  • DestVersion: 3.8.10.17
  • Sha256: 10fe0e2e76cd513f2123cddfacaa68c39ffd6f305e5f6d746e6dc3ba6eaabf84
  • UpdateTime: 2026-03-20 07:47:17 (UTC)
  • DownloadFrom: https://dldir1.qq.com/weixin/mac/WeChatMac.dmg

brew

安装 Homebrew

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

卸载 Homebrew

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

环境变量

# brew 镜像
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.ustc.edu.cn/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.ustc.edu.cn/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles"
export HOMEBREW_API_DOMAIN="https://mirrors.ustc.edu.cn/homebrew-bottles/api"
export HOMEBREW_NO_AUTO_UPDATE=1

安装

#搜索
bash
brew search 关键词        # 搜索软件包
brew search /正则表达式/   # 使用正则搜索

# 安装
bash
brew install 包名          # 安装最新稳定版
brew install 包名@版本号   # 安装指定版本,如 mysql@5.7
brew install --cask 包名   # 安装带 GUI 的 macOS 应用

# 卸载
bash
brew uninstall 包名        # 卸载软件包
brew uninstall --cask 包名 # 卸载 GUI 应用
brew autoremove            # 自动卸载所有未被依赖的包

信息与查询

brew info 包名       # 查看包的完整信息:版本、依赖、安装路径
brew list            # 列出所有已安装的 formula(命令行工具)
brew list --cask     # 列出所有已安装的 cask(GUI 应用)
brew deps 包名       # 查看包的依赖树
brew uses 包名 --installed  # 查看哪些已安装的包依赖了它
brew leaves          # 列出顶层包(你手动安装的,而非依赖拉进来的)

更新

brew update          # 更新 Homebrew 自身及所有仓库信息
brew outdated        # 查看哪些包有新版本可升级
brew upgrade 包名    # 升级指定包
brew upgrade         # 升级所有包
brew pin 包名        # 锁定某个包,禁止升级
brew unpin 包名      # 解除锁定

清理

brew cleanup         # 清理所有软件的旧版本及缓存
brew cleanup -n      # 预览将要清理的内容,不实际执行
brew cleanup -s      # 强力清理,包括缓存文件
brew cleanup --prune=all  # 清理所有缓存和不再使用的符号链接

状态检测

brew doctor          # 检查系统问题,是排错第一步
brew config          # 查看 Homebrew 的编译和环境配置
brew --env           # 显示 Homebrew 构建环境变量

服务管理

brew services list           # 查看所有服务状态
brew services start 服务名   # 启动服务(如 nginx, mysql)
brew services stop 服务名    # 停止服务
brew services restart 服务名 # 重启服务
brew services reload 服务名  # 重加载服务配置(如 nginx)

others

brew --cache          # 显示下载缓存目录
brew --prefix 包名    # 显示包的安装路径
brew --cellar 包名    # 查看 Cellar 中该包所有版本的存放路径

nginx

主要目录结构:

# 配置文件目录
/usr/local/etc/nginx/

# 默认网站根目录(存放静态文件)
/usr/local/var/www/

# 日志文件目录
/usr/local/var/log/nginx/

# 可执行文件
/usr/local/bin/nginx

# 运行时文件(PID等)
/usr/local/var/run/nginx/

配置:

# 使用你喜欢的编辑器打开
vim /usr/local/etc/nginx/nginx.conf
# 或
nano /usr/local/etc/nginx/nginx.conf
# 或使用VSCode
code /usr/local/etc/nginx/nginx.conf

配置文件结构:


/usr/local/etc/nginx/
├── nginx.conf          # 主配置文件
├── servers/            # 可以在这里存放独立的站点配置
│   └── myproject.conf
└── ...

修改配置后重新加载:

# 测试配置是否有语法错误
nginx -t

# 重新加载配置(不停止服务)
brew services reload nginx
# 或
nginx -s reload

# 如果reload不行,就重启
brew services restart nginx

文件重命名

选中文件 -> Enter

截屏

⌘ + ↑ + 3 : 整屏截取为文件
⌘ + ↑ + 4 : 选区截取为文件
⌘ + ↑ + 5 : 截屏和录屏选项

JDK-21

下载页:https://www.oracle.com/cn/java/technologies/downloads/#jdk21-mac

下载链接:https://download.oracle.com/java/21/latest/jdk-21_macos-x64_bin.tar.gz

# 0. 下载 java-21 x64 Compressed Archive 版本
# 1. 解压(注意替换成你下载的实际文件名)
cd ~/Downloads
tar -xvf jdk-21.0.x_linux-x64_bin.tar.gz  # 注意:你写的是x64,实际mac版文件名通常是 jdk-21_macos-aarch64_bin.tar.gz 或 _x64,请按实际名称

# 2. 将解压出的文件夹移动到 /Library/Java/JavaVirtualMachines/(这是macOS存放JDK的标准位置)
sudo mv jdk-21.0.x /Library/Java/JavaVirtualMachines/

# 3. 配置环境变量
nano ~/.zshrc
## 新增
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-21.0.x/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

## 按 Ctrl+O 保存,按 Ctrl+X 退出,然后执行
source ~/.zshrc

## 4. 验证
java -version

IDEA2023.3.x激活失败

Big Sur最高支持到 2023.3.x 版本

# 执行激活命令报错
enlin@W541:~/Downloads/edge下载 % curl -Ls ckey.run -o ckey.run && bash ckey.run
: command not found
'key.run: line 5: syntax error near unexpected token `{
'key.run: line 5: `detect_platform() {

# 查看文件回车格式 : CRLF 是 Windows 风格的换行符(\r\n),LF 才是 Linux/macOS 风格的换行符(\n)
enlin@W541:~/Downloads/edge下载 % file ckey.run 
ckey.run: Bourne-Again shell script text executable, UTF-8 Unicode text, with CRLF line terminators

# 修改文件后再次执行
enlin@W541:~/Downloads/edge下载 % sed -i '' $'s/\r$//' ckey.run && bash ckey.run

# sed命令不能用就用这个
perl -pi -e 's/\r\n/\n/g' ckey.run && bash ckey.run

# 后面如果提示 ~/Library/xxx/IDEA 目录不存在,就先打开一下idea在关闭就行了

调度中心和应用程序窗口

三指上滑 呼出 调度中心 不会显示已经最小化和关闭的应用窗口。

三指下滑 呼出 App Exposé 亦是如此,但是会在下方以小窗的形式展示,如果想一次性恢复这个软件所有被最小化的窗口,可以:

  • 三指下滑
  • 按下下方向键 (↓) 选中任意一个窗口
  • ⌥ + Enter

快捷键关机-弹框提醒

  1. 创建 Automator 服务

    打开 “自动操作.app”(Automator),新建文稿时选择 “快速操作”,顶部设置:

    • 工作流程收到当前:选择 没有输入
    • 位于:选择 任何应用程序
  2. 第二步:添加带确认框的 AppleScript

    在左侧搜索 “AppleScript”,将 “运行 AppleScript” 拖到右侧工作区。

    将以下代码完整替换进去:

    on run {input, parameters}
        -- 带标题的确认对话框
        display dialog "确定要关机吗?" & return & return & "所有未保存的文档将会提示保存。" buttons {"关机", "取消"} default button 1 with icon caution with title "快捷键关机"
        
        if button returned of result is "关机" then
            tell application "System Events"
                shut down
            end tell
        end if
        
        return input
    end run
    

重要

AppleScript 中的设计中,回车按下触发的按钮并不是焦点所在的按钮。当前代码 default button 1 为 关机 按钮,所以可以盲操作直接按回车关机。
但如果想取消,点按 Esc 键或者点按 取消 按钮(也可以按下 Tab 键切换焦点到取消按钮,点按 Space )。

提示

AppleScript 保存的服务(快捷操作)默认保存到:~/Library/Services/服务名字.workflow

  1. 第三步:保存服务

    按 Command + S,命名为 “快捷键关机” 或任何你记得住的名字。

  2. 第四步:绑定快捷键

    打开 “系统设置” > “键盘” > “键盘快捷键”。

    • 在左侧选择 “服务”。
    • 在右侧列表的 “通用” 分类下,找到 “快捷键关机”。
    • 点击右侧的“无”,按下你想要的快捷键(建议用 ⌃ + ⌥ + ⌘ + S 这类不冲突的组合)。

快捷键打开workspace文件夹

提示

入口同上,AppleScript 代码如下:

on run {input, parameters}
    set targetPath to "/Users/enlin/workspace"
    
    try
        -- 用 shell 检查文件夹是否存在
        set folderExists to do shell script "if [ -d " & quoted form of targetPath & " ]; then echo 'true'; else echo 'false'; fi"
        
        if folderExists is "true" then
            do shell script "open " & quoted form of targetPath
            display notification "已打开文件夹" with title "成功"
        else
            error "文件夹不存在"
        end if
    on error errMsg number errNum
        display dialog "错误 " & errNum & ": " & errMsg buttons {"确定"} default button 1 with icon stop
    end try
    
    return input
end run

网页快捷方式

拖动edge浏览器中的小锁到桌面。

ffmpeg

下载:ffmpeg.org,分别下载ffmpeg、ffprobe、ffplay三个长版本号的压缩包。

解压之后,将文件移动到系统目录:

# 如果 /usr/local/bin 不存在,先创建它
sudo mkdir -p /usr/local/bin

# 将 ffmpeg 移动过去(注意替换你实际的下载路径)
sudo mv ~/Downloads/edge下载/ffmpeg /usr/local/bin/
sudo mv ~/Downloads/edge下载/ffprobe /usr/local/bin/
sudo mv ~/Downloads/edge下载/ffplay /usr/local/bin/

添加权限:

sudo chmod +x /usr/local/bin/ffmpeg
sudo chmod +x /usr/local/bin/ffprobe
sudo chmod +x /usr/local/bin/ffplay

环境变量:执行 cat /etc/paths (或 echo $PATH ),一般结果会有 /usr/local/bin 。
如果没有,则需要添加环境变量。

nano ~/.zshrc

# 新增
export PATH="/usr/local/bin:$PATH"

按 ⌃ + X,按 Y,再按回车保存退出。

重新加载配置文件:

source ~/.zshrc

验证:

ffmpeg -version
ffprobe -version
ffplay -version

uv

下载(会自动配置环境变量):

curl -LsSf https://astral.sh/uv/install.sh | sh

重新加载配置:

source ~/.zshrc

多环境配置流程示例:

# 1. 安装多个版本
uv python install 3.12
uv python install 3.11

# 2. 设置系统默认为 3.12
uv python pin 3.12
python3 --version  # 验证:应该显示 Python 3.12.x

# 3. 创建项目 A,使用 3.11
mkdir project-a && cd project-a
echo "3.11" > .python-version
uv init                    # 初始化项目
uv venv                    # 会用 3.11 创建虚拟环境
uv python list             # 显示当前项目使用的版本
uv pip install flask       # 安装到 3.11 环境

# 4. 创建项目 B,使用 3.12
cd .. && mkdir project-b && cd project-b
echo "3.12" > .python-version
uv init
uv venv                    # 会用 3.12 创建虚拟环境
uv pip install django      # 安装到 3.12 环境

# 5. 切换测试:回到项目 A 时,版本自动切换
cd ../project-a
uv python list  # 显示当前使用的还是 3.11

使用技巧

查看当前使用的版本

查看系统默认

uv python pin

查看当前项目使用的版本

uv python list --project

临时使用特定版本(不修改配置文件)

# 临时用 3.10 执行命令
uv run --python 3.10 script.py

# 临时创建 3.9 的虚拟环境
uv venv --python 3.9

删除不需要的版本

uv python uninstall 3.9

缓存位置
uv 的 Python 版本默认存放在系统的用户目录下:

  • macOS / Linux: ~/.local/share/uv/python/ 或者 ~/.cache/uv/

  • Windows: %USERPROFILE%\.local\share\uv\python\

uv项目管理

项目代码 + 依赖声明:放在你的项目文件夹里(比如 my-project/ )

Python 解释器:放在全局目录(上面提到的 ~/.local/share/uv/python/ )

虚拟环境依赖包:通常放在项目文件夹内的 .venv/ 子目录下

所以,如果你想完全删除一个项目及其关联的环境,只删除项目文件夹本身是不够的,因为 Python 解释器还留在全局目录里。

uv全局虚拟环境

  1. 创建虚拟环境
    在用户目录创建一个虚拟环境(比如叫 global-env)
uv venv ~/global-env --python 3.11
  1. 先激活
source ~/global-env/bin/activate
  1. 然后使用 uv pip(它会自动识别当前虚拟环境)
uv pip install requests pandas numpy

提示

在配置文件中持久化别名和函数,在 ~/.zshrc 或 ~/.bash_profile 中,uv的环境变量后面添加,这样就不用每次都要激活环境变量才能正常使用 python 和 pip 命令了。以及在项目中使用的命令。

# uv 安装后自动添加的环境变量(不需要手动处理,这里只是为了展示效果)
. "$HOME/.local/bin/env"

## 全局虚拟环境:创建虚拟环境之后才生效(为了符合在win上使用conda的base环境习惯)
alias gpython='~/global-env/bin/python'
## 全局虚拟环境:--python 要放在最后才能正常使用
gpip() {
    uv pip "$@" --python ~/global-env/bin/python
}

## 让python项目中也可以不用手动激活环境(使用 `uvpython` 运行py文件)
uvpython() {
    if [ -f .python-version ]; then
        uv run python "$@"
    else
        ~/global-env/bin/python "$@"
    fi
}
uvpip() {
    if [ -f .python-version ]; then
        uv pip "$@"
    else
        # 强制指定全局环境的路径
        uv pip "$@" --python ~/global-env/bin/python
    fi
}

应用图标icns

提示

可以使用下方手动生成方法,或者任意找一个在线生成icns的网站。不过最终都需要手动替换。

下面以 Aseprite 为例(因为我的GitHub工作流编译的macOS版本不带应用图标)

  1. 右键 Aseprite.app -> 显示包内容

  2. 确认以下内容是否存在(value为图标的并称,图标默认名为 Aseprite.icns ,value里最好不要带后缀名)

    <key>CFBundleIconFile</key>
    <string>Aseprite</string>
    
  3. 准备一张 1024x1024(256、512也可) 的 PNG 图片 用于制作应用图标

  4. 创建一个图标集目录并放入图片

    mkdir Aseprite.iconset
    
  5. 将 PNG 图片放到该目录,命名为 icon_512x512@2x.png(命名只是为了体现原像素为1024x1024):

    cp your_image.png Aseprite.iconset/icon_512x512@2x.png
    
  6. 用 sips 生成其他所有需要的尺寸:

    cd Aseprite.iconset
    
    # 用 sips 从 1024x1024 图片生成所有尺寸(如果原图像素不够,也要最低生成到128规格的,这是系统强制要求)
    sips -z 16 16     icon_512x512@2x.png --out icon_16x16.png
    sips -z 32 32     icon_512x512@2x.png --out icon_16x16@2x.png
    sips -z 32 32     icon_512x512@2x.png --out icon_32x32.png
    sips -z 64 64     icon_512x512@2x.png --out icon_32x32@2x.png
    sips -z 128 128   icon_512x512@2x.png --out icon_128x128.png
    sips -z 256 256   icon_512x512@2x.png --out icon_128x128@2x.png
    sips -z 256 256   icon_512x512@2x.png --out icon_256x256.png
    sips -z 512 512   icon_512x512@2x.png --out icon_256x256@2x.png
    sips -z 512 512   icon_512x512@2x.png --out icon_512x512.png
    
  7. 用 iconutil 转换为 icns:

    cd ..
    iconutil -c icns Aseprite.iconset
    
  8. 复制 icns 到应用包里面:

    sudo cp Aseprite.icns /Applications/Aseprite.app/Contents/Resources/Aseprite.icns
    
  9. 刷新图标缓存:

    # 设置正确的权限
    sudo chmod 644 /Applications/Aseprite.app/Contents/Resources/Aseprite.icns
    
    # 刷新图标缓存
    sudo rm -rf /Library/Caches/com.apple.iconservices.store
    sudo find /private/var/folders/ -name "com.apple.iconservices" -exec rm -rf {} + 2>/dev/null
    
    # 重启 Dock
    killall Dock
    
  10. (可选)快速验证:

    sips -g all /Applications/Aseprite.app/Contents/Resources/Aseprite.icns
    

访达缩略图

一些不支持的媒体格式,访达中没有缩略图,可以下载:QLVideo 。
安装好打开了一次,点击刷新就可以关闭了。他是以插件形式运行的。
缩略图缓存在:/private/var/folders/.../C/com.apple.QuickLook.thumbnailcache/

清理:

qlmanage -r cache

验证:

killall Finder

telnet

  1. 下载:https://github.com/luckman212/gnu-telnet/releases/

  2. 移除文件的隔离属性(关键步骤)

    xattr -d com.apple.quarantine ~/Downloads/telnet
    
  3. 移动并赋予权限:

    sudo mv ~/Downloads/telnet /usr/local/bin/
    sudo chmod +x /usr/local/bin/telnet
    
  4. 验证:

    telnet -V
    

共享文件夹

第1步:在 Mac 上开启文件共享

  1. 系统设置 → 通用 → 共享
  2. 打开 文件共享 开关
  3. 点右边的 i 按钮(信息),在“共享文件夹”列表点 + 添加你要共享的文件夹
  4. 在“用户”列表里,确保 Everyone 的权限设置为 读与写,或添加你自己的账户并设好权限
  5. 点 选项 按钮,勾选 使用 SMB 来共享文件和文件夹
  6. 在下方账户列表中,勾选你 Mac 的账户,并输入该账户的密码(这就是之后 Win 连接时要用的凭证)

在 Windows 上映射网络驱动器

  1. 打开 文件资源管理器 → 右键 此电脑 → 映射网络驱动器
  2. 选择一个驱动器号(如 M:)
  3. 在文件夹框中输入:\\你的Mac的IP地址,例如 \\192.168.3.30
    • 如果知道 Mac 的电脑名,也可以用 \\你的Mac电脑名.local,例如 \\W541.local
  4. 勾选 使用其他凭据连接 → 点完成
  5. 在弹出的登录窗口输入 Mac 的账户名和密码(就是步骤一第6条你勾选的那个账户),可以勾选记住凭据
  6. 连接成功后,资源管理器里会多出一个 M: 盘,和本地硬盘一样使用

在 Mac 上映射网络驱动器

  1. 在访达菜单栏点 前往 → 连接服务器(快捷键 Command + K)
  2. 输入地址,用对方的 主机名 或 IP:
    • smb://对方的IP地址 比如 smb://192.168.3.30
    • smb://电脑名.local 比如 smb://W541.local
  3. 点连接,选 “注册用户”,输入对方 Mac 的本地账户名和密码
  4. 选择文件夹,挂载后像本地硬盘一样使用

黑苹果

ThinkPad W541

  • EFI简介网页:ThinkPad W541 i7-4810MQ黑苹果安装EFI OC 0.9.0 BIG SUR 11.7.3 - 老吴黑苹果工作室
  • EFI(已购买):ThinkPad W541 i7-4810MQ黑苹果安装EFI OC 0.9.0 BIG SUR 1-来自黑苹果EFI仓库丨爱发电
  • Big Sur DMG镜像:Install macOS Big Sur 11.7.3(20G1116)OC0.8.8 Clover5151 winPE三引导官方原版.dmg - 黑苹果屋
  • 教程:零基础2021最新macOS BigSur黑苹果安装完整教程opencore引导 - 黑苹果屋
最近更新: 2026/8/23 16:30
Contributors: Enlin
Prev
IDE快捷键
Next
obs-studio