必须用终端穿透图形界面限制:先运行launchctl list | grep -e "(com\..*\.|org\..*\.|local\..*\.|system\..*\.|user\/)"列出所有活跃启动项;再用launchctl print user/$(id -u)查用户级代理状态;最后用find命令扫描~/和/library下所有plist文件定位隐藏配置。

Mac终端怎么查看所有隐藏的启动项:当你发现开机后有陌生进程在运行、CPU持续占用却找不到对应应用图标,或系统设置里查不到自启条目时,必须通过终端命令穿透图形界面限制,一次性列出所有用户级和系统级加载的启动代理与守护进程。
用launchctl list查看当前活跃的所有启动项
这一步不修改任何文件,只做诊断,是排查隐藏启动项的第一手依据。
1、打开“应用程序→实用工具→终端”。
2、输入以下命令并回车:
launchctl list | grep -E "(com..*.|org..*.|local..*.|system..*.|user/)"
该命令会过滤出所有符合标准命名规范的plist服务条目,排除系统内部临时任务干扰。如果返回为空,不代表没有隐藏项——可能服务已加载但处于非活跃状态,需进一步检查配置文件是否存在。
用launchctl print检查用户级LaunchAgents详情
LaunchAgents目录下的.plist文件由当前用户权限加载,最常被卸载不干净的软件残留利用。print命令能显示每个代理是否启用、最后启动时间、可执行路径等关键信息。
方法一:逐个查看可疑项
先用ls ~/Library/LaunchAgents/列出全部文件,再对某个疑似文件执行:
launchctl print user/$(id -u)/com.example.appname
注意:com.example.appname要替换成实际plist中Label字段的值,不是文件名。比如文件叫com.adobe.acc.installer.plist,Label可能是com.adobe.acc.installer或com.adobe.ACCMIS。
方法二:批量导出所有用户代理状态
输入命令:
launchctl print user/$(id -u) 2>/dev/null | grep -E "^(Label|LastExitStatus|PID|State)"
这条命令会跳过权限错误提示,只输出每个代理的核心运行状态字段,方便快速识别“State: running”且“PID: -1”的假死残留项。
用find命令扫描所有plist配置文件位置
有些恶意或老旧软件会把启动配置藏在非标准路径,比如~/Library/Preferences/或/Applications/某App.app/Contents/Resources/下。必须主动搜索。
第一步:搜索用户主目录下所有.plist文件
find ~/ -name "*.plist" -type f -mtime -30 2>/dev/null
加上-mtime -30是为了优先聚焦近一个月内新增的文件,大幅缩小人工审查范围。若你刚卸载某软件,它的残留配置大概率就在这批结果里。
第二步:搜索系统级常见藏匿点
sudo find /Library /System/Library -name "*.plist" -type f -perm -o=r 2>/dev/null | grep -E "(Launch|agent|daemon)"
【执行此命令需输入管理员密码,且必须确认自己清楚每行输出路径的用途】。/System/Library目录下的plist严禁手动删除,仅作比对参考;/Library/LaunchDaemons里的才允许清理。











