在日常使用Mac的过程中,开机启动项(Startup Items)是影响系统启动速度和整体性能的重要因素。过多或不必要的启动项不仅会延长开机时间,还可能消耗系统资源,导致运行缓慢。本文将详细介绍如何通过命令行查看、添加和删除Mac的开机启动项,帮助你优化系统启动行为,提升使用体验
什么是开机启动项?
开机启动项(Startup Items)指的是在系统启动或用户登录时自动运行的应用程序、服务或脚本。这些启动项可以通过多种机制实现,包括 Launch Agents、Launch Daemons、登录项(Login Items)以及 Cron Jobs 等。合理管理这些启动项,可以显著提升Mac的启动速度和运行效率。
查看Mac的开机启动项
了解当前系统中的启动项,是管理和优化的第一步。以下是几种常用的方法,通过命令行查看各种类型的启动项。
使用 launchctl
查看 Launch Agents 和 Launch Daemons
Launch Agents 和 Launch Daemons 是macOS中用于管理后台服务和应用程序启动项的主要机制。
-
查看所有已加载的 Launch Agents 和 Launch Daemons:
launchctl list
该命令将列出所有当前加载的 Launch Agents 和 Launch Daemons,包括系统级和用户级的。
-
查看系统级的 Launch Daemons:
ls /Library/LaunchDaemons
-
查看系统级的 Launch Agents:
ls /Library/LaunchAgents
-
查看用户级的 Launch Agents:
ls ~/Library/LaunchAgents
查看登录项(Login Items)
登录项是在用户登录时自动启动的应用程序。你可以使用以下命令查看当前用户的登录项:
osascript -e 'tell application "System Events" to get the name of every login item'
示例输出:
Perplexity, Loop, 夸克网盘, Raycast, PasteNow, ZeroTier, 百度网盘, Yoink, NeatDownloadManager, ApifoxAppAgent, 阿里云盘, FigmaAgent, Shottr
查看 StartupItems 文件夹
尽管在较新的macOS版本中,/Library/StartupItems
目录已不再广泛使用,但有时仍可能存在一些旧版的启动项。
ls /Library/StartupItems
查看 Cron Jobs
Cron Jobs是定时任务,有时也用于开机时执行脚本。
-
查看当前用户的 Cron Jobs:
crontab -l
-
查看系统范围的 Cron Jobs:
sudo cat /etc/crontab
使用 systemsetup
查看系统启动设置
systemsetup
工具主要用于配置系统设置,也可以查看某些启动相关的信息。
-
查看自动登录用户:
systemsetup -getautoLoginUser
管理登录项:添加与删除
在查看了当前的登录项后,你可能需要添加或删除某些不需要的启动项,以优化系统性能。以下是通过命令行管理登录项的具体步骤。
删除指定的登录项
假设你希望删除 Shottr
这个登录项,可以使用以下命令:
osascript -e 'tell application "System Events" to delete login item "Shottr"'
注意: 登录项的名称必须与系统中的名称完全匹配,包括大小写和空格。
批量删除多个登录项
如果需要删除多个登录项,可以依次执行 osascript
命令,或编写一个简单的脚本批量删除。例如,删除 Perplexity
和 Loop
:
osascript -e 'tell application "System Events" to delete login item "Perplexity"'
osascript -e 'tell application "System Events" to delete login item "Loop"'
添加新的登录项
虽然macOS没有直接的命令行工具来添加登录项,但可以使用 osascript
来实现。例如,添加“Visual Studio Code”到登录项:
osascript -e 'tell application "System Events" to make login item at end with properties {path:"/Applications/Visual Studio Code.app", hidden:false}'
参数说明:
path
:应用程序的完整路径。hidden
:是否在启动时隐藏应用程序窗口(true
或false
)。
脚本化管理登录项
为了简化操作,可以将多个删除命令写入一个脚本文件,然后一次性执行。以下是具体步骤:
创建删除脚本
-
打开终端。
-
使用文本编辑器创建脚本文件。例如,使用
nano
创建remove_login_items.sh
:nano remove_login_items.sh
-
在编辑器中粘贴以下内容:
#!/bin/bash # 删除指定的登录项 osascript -e 'tell application "System Events" to delete login item "Perplexity"' osascript -e 'tell application "System Events" to delete login item "Loop"' osascript -e 'tell application "System Events" to delete login item "夸克网盘"' osascript -e 'tell application "System Events" to delete login item "百度网盘"' osascript -e 'tell application "System Events" to delete login item "ApifoxAppAgent"' osascript -e 'tell application "System Events" to delete login item "阿里云盘"' osascript -e 'tell application "System Events" to delete login item "FigmaAgent"' echo "指定的登录项已被删除。"
-
保存并退出编辑器。在
nano
中,按Ctrl + O
然后Enter
保存,接着按Ctrl + X
退出。
赋予脚本执行权限
chmod +x remove_login_items.sh
运行脚本
./remove_login_items.sh
执行后,你应该会看到提示信息:
指定的登录项已被删除。
验证删除结果
为了确认登录项已经被成功删除,可以再次运行以下命令来列出当前的登录项:
osascript -e 'tell application "System Events" to get the name of every login item'
预期输出中不应再包含被删除的项目:
Raycast, PasteNow, ZeroTier, Yoink, NeatDownloadManager, Shottr
通过以上步骤,你可以轻松管理Mac的开机启动项,优化系统性能。如果在操作过程中遇到任何问题,欢迎随时向我们寻求帮助!