macOS用户可通过osascript -e 'tell application "loginwindow" to «event aevtrlck»'命令瞬时锁屏,该指令直接向loginwindow发送原生锁屏事件,不经过键盘队列、无快捷键冲突、兼容所有版本且后台服务零中断。

Mac用户需要在不依赖图形界面或快捷键的情况下,通过终端命令立即锁定屏幕,比如远程SSH操作、自动化脚本触发或键盘失灵时应急使用。
用pmset命令触发锁屏并同步关屏
这一步直接调用macOS底层电源管理模块,不弹出任何GUI提示,0.3秒内完成锁屏+显示器熄灭,且后台所有进程持续运行。
打开“终端”,输入以下命令并回车:
pmset displaysleepnow
该命令本质是向系统发送强制显示器休眠指令,而macOS在检测到显示器被主动关闭且已启用登录密码时,【会自动联动触发锁屏验证流程】。前提是你的账户已设置密码,且“系统设置 > 锁定屏幕 > 当锁定屏幕时关闭显示器”已开启(macOS Ventura及以上系统才支持此联动)。
若系统版本低于Ventura(如Catalina或Big Sur),仅执行此命令只会关屏,不会弹出密码框。此时需配合另一条命令补全锁屏逻辑:
在上一条命令执行后,立刻再输入:
loginctl lock-session(无效,macOS无此命令)→ 改用 AppleScript 桥接:
osascript -e 'tell application "System Events" to keystroke "q" using {control down, command down}'
用AppleScript模拟原生锁屏快捷键
该方法兼容所有macOS版本(10.9 Mavericks起),无需额外配置,只要系统启用了登录密码即可生效。
方法一:单行终端指令
osascript -e 'tell application "System Events" to key code 12 using {control down, command down}'
注意:key code 12对应Q键,必须确保当前无焦点冲突——例如QQ、企业微信等应用若占用了Ctrl+Cmd+Q,该命令将被拦截,【需先在这些应用设置中禁用冲突快捷键】。
方法二:绕过快捷键冲突的可靠替代方案
osascript -e 'tell application "loginwindow" to «event aevtrlck»'
这是向loginwindow进程直接发送原生锁屏事件(aevtrlck为Apple Event常量),完全不经过键盘事件队列,QQ等应用无法拦截。执行后屏幕立即变暗并跳转至登录窗口,后台服务零中断。
封装成可复用的shell函数
第一步:打开终端,输入以下命令编辑当前用户的shell配置文件:
nano ~/.zshrc
第二步:在文件末尾新增如下函数定义:
lockscreen() {
osascript -e 'tell application "loginwindow" to «event aevtrlck»'
}
第三步:保存退出(Ctrl+O → 回车 → Ctrl+X),然后运行:
source ~/.zshrc
此后只需在任意终端窗口输入lockscreen并回车,即可瞬时锁屏。该函数不依赖快捷键注册表,不与任何第三方软件冲突,适合写入定时任务或部署脚本。











