cron实现周期性定时提醒cron是Linux系统自带的周期性任务调度工具,适合每天、每周等固定时间重复执行的提醒任务。
步骤:
crontab -e(首次使用需选择编辑器,如nano或vim)。分钟 小时 日期 月份 星期 命令的格式编写任务。例如,每天上午9点弹出“上班时间到”的提醒,可添加:0 9 * * * /usr/bin/notify-send "上班提醒" "该上班啦!"
若需每小时提醒一次(如“喝水时间”),可设置为:0 * * * * /usr/bin/notify-send "喝水提醒" "请起身活动,喝杯水吧!"
Ctrl+O保存,Ctrl+X退出;vim编辑器按Esc,输入:wq保存并退出。crontab -l可查看当前用户的所有定时任务。cron任务运行时环境变量可能与终端不同,建议在命令中使用绝对路径(如/usr/bin/notify-send而非notify-send),或在脚本中设置环境变量(如HOME=/、SHELL=/bin/bash)。at命令实现一次性定时提醒at命令用于安排一次性任务,适合“某时做某事”的场景(如“明天14点开会提醒”)。
步骤:
at工具(若未安装):在终端输入sudo apt install at,安装完成后启动服务:sudo systemctl enable --now atd。at 时间(如at 14:00),进入交互界面后输入要执行的命令(如/usr/bin/notify-send "会议提醒" "下午2点有项目会议!"),最后按Ctrl+D结束输入。at,例如“5分钟后提醒我关电脑”:echo "/usr/bin/notify-send '关机提醒' '电脑将在5分钟后关机'" | at now + 5 minutes
atq可查看当前所有待执行的at任务(显示任务编号和执行时间);atrm 任务编号(如atrm 1)可删除指定任务。若需要更灵活的提醒(如倒计时、动态调整时间),可通过Shell脚本结合sleep和notify-send实现。
示例脚本(保存为reminder.sh):
#!/bin/bash
while true; do
# 弹出提醒窗口
/usr/bin/notify-send "休息提醒" "您已工作1小时,请起身活动!"
# 等待1小时(3600秒)
sleep 3600
done
步骤:
chmod +x reminder.sh。./reminder.sh(前台运行,关闭终端则停止);若需后台运行,可添加&(./reminder.sh &)或添加到~/.bashrc(开机自启)。若偏好图形界面,可使用以下工具简化定时提醒设置:
cron和at任务,图形化操作。安装命令:sudo apt install gnome-schedule,运行后点击“新建”即可设置任务名称、时间和命令。以上方法覆盖了Ubuntu下定时提醒的主要场景,可根据需求选择合适的方式(周期性选cron、一次性选at、灵活需求选脚本、图形界面选第三方工具)。