可通过终端直接管理macos屏幕共享连接:所有连接以plist文件存于~/library/preferences/com.apple.screensharing.connections/,支持用plutil读取、rm删除、defaults清空或注入新连接,并可批量导出为文本清单。

你想在终端里直接查看、添加、删除或修改 macOS 上所有已保存的屏幕共享连接,而不是每次打开“屏幕共享” App 点来点去——这些连接实际以 plist 文件形式存在,可被命令行读写。
查所有已保存的屏幕共享连接
系统把每个手动创建的屏幕共享连接存为独立 plist 文件,路径固定在 ~/Library/Preferences/com.apple.ScreenSharing.connections/ 目录下。
运行:ls -1 ~/Library/Preferences/com.apple.ScreenSharing.connections/
输出类似:0F3A8B2C-1D4E-5F6A-7B8C-9D0E1F2A3B4C.plist 这种 UUID 命名的文件,每个对应一个连接。
要读取某个连接的具体配置(比如服务器地址、端口、用户名),用:plutil -convert xml1 -o - ~/Library/Preferences/com.apple.ScreenSharing.connections/0F3A8B2C-1D4E-5F6A-7B8C-9D0E1F2A3B4C.plist | grep -E "(host|port|user)"
【注意:不要用 plutil -p 直接输出,会混入大量二进制乱码;必须先转成 xml1 格式再 grep】
删掉某个特定屏幕共享连接
方法一:直接删除对应 plist 文件
确认目标文件名后,执行:rm ~/Library/Preferences/com.apple.ScreenSharing.connections/0F3A8B2C-1D4E-5F6A-7B8C-9D0E1F2A3B4C.plist
方法二:用 defaults 命令清空整个连接列表(慎用)
运行:defaults delete com.apple.ScreenSharing connections
这会清空所有用户创建的连接,但不会影响系统级管理式连接(如通过 Apple ID 自动同步的连接)。
批量导出所有连接信息为文本清单
第一步:创建临时目录存放解码后的 XML 文件mkdir -p /tmp/ss-conns && cd /tmp/ss-conns
第二步:把所有连接 plist 转为可读 XML 并重命名为有意义的名字for f in ~/Library/Preferences/com.apple.ScreenSharing.connections/*.plist; do uuid=$(basename "$f" .plist); plutil -convert xml1 -o "${uuid}.xml" "$f"; done
第三步:提取关键字段生成表格化清单for x in *.xml; do echo "--- $(basename "$x" .xml) ---"; xpath -e '//key[text()="host"]/following-sibling::string[1]/text()' "$x" 2>/dev/null | sed 's/^/Host: /'; xpath -e '//key[text()="port"]/following-sibling::integer[1]/text()' "$x" 2>/dev/null | sed 's/^/Port: /'; xpath -e '//key[text()="user"]/following-sibling::string[1]/text()' "$x" 2>/dev/null | sed 's/^/User: /'; echo; done > all-connections.txt
完成后,cat all-connections.txt 就能看到结构清晰的连接摘要。
从终端新建一个屏幕共享连接
macOS 不提供原生命令直接写入新连接 plist,但可通过构造标准格式并调用 defaults 注入。
先生成一个基础模板:defaults write com.apple.ScreenSharing.connections -dict-add "new-conn-$(date +%s)" '{"host" = "192.168.1.100"; "port" = 5900; "user" = "admin";}'
然后强制刷新 plist 文件:defaults export com.apple.ScreenSharing.connections ~/Desktop/ss-connections-backup.plist
最后重启屏幕共享服务使新连接生效:killall ScreenSharing
【新连接不会立即出现在“屏幕共享” App 的边栏中,需重启该 App 或重新打开“连接”窗口】











