转载自:https://segmentfault.com/a/1190000000453765

习惯使用番茄工作法,在Linux上工作时也需要一个番茄钟。 安装一个Linux下番茄钟工作软件? 其实根本没必要,我们可以用Linux下经典的at命令实现一个简单的番茄钟。

安装AT

一般Linux基本系统里都包含了at这个小巧实用的工具,不需要安装。

不过林子大了,什么鸟都有,比如我最近使用的centOS中居然没有at命令。 于是我安装这个包。

sudo yum install at

你可以用 which at 查看有没有at命令。如果没有,就安装一个。

AT的基本用法

软件准备好了,简单实验一下at的用法。

首先我们要启动atd服务 (freeBSD似乎不需要这一步,而且找不到atd服务)。

# service atd start

如果你没有service命令,你可能需要使用类似下面的命令。

# /etc/init.d/atd start

或许你的系统已经抛弃了initscripts,已经再用systemd了, 你可以用systemd启动服务

# systemctl start atd

服务启动后,我们看看怎么用at添加一个定时任务。

输入 at now+1 minutes 回车, 命令行显示 > ,让你输入要执行的任务。 我们输入 echo "hello world!" 按 control 和 d 结束任务输入。

这样我们就有了一个job. 输入 atq 命令可以查看任务队列。 有任务号和任务将执行的时间。

上面添加的任务表示1分钟后,在终端输出 hello world!

想查看某个任务的详细信息, at -c 任务号.

想删除某个任务, atrm 任务号 或者 at -d 任务号

这个交互式的输入任务的方式比较麻烦,不利于用脚本添加at任务。 怎么办?可以用管道为at指定任务。 上面添加任务的过程可以简化为一行命令

echo "echo 'hello, world!'"|at now+1 minutes

用AT做番茄钟

一个番茄钟是25分钟, 在at命令中使用 now+25 minutes 就能指定25分钟的时间间隔。 当一个番茄钟的时间间隔过去后,用什么方式提醒我们时间到了呢? 我们可以播放一段音乐,显示一个图片,甚至播放一段视频。

好,因为在办公室里使用,播放音乐会干扰别人,我们就采用显示一张图片的方式吧。 显示图片的工具很多。比如 feh,比如 ImageMagick 中的 display。 当然别的还有很多。这里以 feh 为例。

我们可以显示一个美女图片,比如其路径是 ~/pics/girl.png 。 那么我们要执行的任务就是 feh ~/pics/girl.png 。 我们想要25分钟后,显示这个图片,就这样做:

echo 'feh ~/pics/girl.png' | at now+25 minutes

我们可以先把时间间隔设为一分钟,看看效果。

echo 'feh ~/pics/girl.png' | at now+1 minutes

一分钟到了,怎么回事?不显示图片。 atq 查看任务队列,队列也空了,证明任务执行完了。 atq 输出时,告诉我: You have mail in /var/spool/mail/jolly. (其中jolly是我的用户名)。 用 mail 命令查看邮件,内容是:

(feh:2632): Gdk-WARNING **: cannot open display:

display后面是空的,证明feh执行的时候没有指定display。 再加入上述任务:

echo 'feh ~/pics/girl.png' | at now+1 minutes

at -c 任务号 查看它的详细内容。

发现在 'feh' 命令之前,还有很多的环境变量。 但环境变量里不包含 DISPLAY。怪不得找不到display呢。

echo $DISPLAY ,发现DISPLAY的值是 :0.

好,我们在执行feh命令的同时,用 env 指定DISPLAY的值。 再实验一下:

echo 'env DISPLAY=:0 feh ~/pics/girl.png' | at now+1 minutes

一分钟之后,果然开始显示图片了。 成功!

用脚本包装

为了方便,我们写一个脚本, new-clock

#!/bin/sh
echo "env DISPLAY=:0 feh ~/pics/girl.png" |at now+25 minutes

chmod +x new-clock
把new-clock放入执行路径,比如放入 ~/bin 目录下。

cp new-clock ~/bin

这样我们敲入 'new-clock' 命令,就启动了一个番茄钟。 25分钟过后,将显示图片提醒我们。

如果你没有X环境,就不能用显示图片的方式了,可以播放声音来提醒。

Linux/Unix 下自制番茄钟相关推荐

  1. Linux/Unix下的任务管理器-top命令

    Linux/Unix下的任务管理器-top命令 Posted on 2012-07-11 09:14 fengyv 阅读(15453) 评论(1) 编辑 收藏 Windows下的任务管理器虽然不好用( ...

  2. 修改linux下全局数据库名,linux/unix下修改oracle数据库实例名的方法

    linux/unix下修改oracle数据库实例名的方法 2018年12月10日 | 萬仟网IT编程 | 我要评论 linux/unix下修改oracle实例名的方法 1.检查原来的数据库实例名 $ ...

  3. Linux/Unix下tar命令详解

    tar命令是Linux/Unix系统下的打包压缩工具,可以将多个文件合并为一个文件,打包后的文件后缀为".tar". 这里首先需要明确两个概念:打包和压缩.打包是指将一大堆文件或目 ...

  4. linux文件字节函数,各位大侠:linux/unix下有什么双字节的字符类型及其一整套处理函数? 高分送出,请帮帮小弟!!!!!!...

    linux/unix下小弟需要操作双字节,相对单字节char 有什么双字节的字符类型及其一整套处理函数,如strstr(),strcpy(),strchr等功能相同的双字节操作函数,它用到什么头文件? ...

  5. linux 下 任务管理器,Linux/Unix下的任务管理器-top命令

    Windows下的任务管理器虽然不好用(个人更喜欢Process Explorer些),但也算方便,可以方便的查看进程,CPU,内存...也可以很容易的结束进程 没有图形化界面下的Linux,也有命令 ...

  6. linux清理oracle磁盘空间,Linux / Unix 下文件删除、句柄 与空间释放问题

    Linux / Unix 下文件删除.句柄 与空间释放问题 临时表空间,并切换了数据库设置:[oracle@corde tdb]$ ls -sort total 35101212 51264 -rw- ...

  7. linux/unix下telnet提示Escape character is ‘^]‘的意义

    在linux/unix下使用telnet hostname port连接上主机后会提示Escape character is '^]' 这个提示的意思是按Ctrl + ] 会呼出telnet的命令行, ...

  8. 10个 Linux/Unix下 Bash 和 KSH shell 的作业控制实例

    Linux 和 Unix 属于多任务的操作系统,也就是说一个系统在同一时间段内能运行多重任务(进程).在这个新的博客系列,我将会列出相关的 Linux 和 Unix 作业(job)控制的命令,你可以通 ...

  9. fork linux 低权限,linux/Unix下python的fork详解及应用举例

    forking是Unix和Linux最重要的一个点. 总结下其特点如下: 1,子进程与父进程的复制关系: 子进程拥有父进程的所有内存的精确副本.当使用fork给进程分叉时,它会创建一个自己的副本.在多 ...

最新文章

  1. python02-条件语句到循环语句
  2. VC6.0生成文件的种类和作用
  3. 有图有真相!同是滑屏,荣耀Magic2不只比小米MIX3缝隙小,还更稳定
  4. poj 1006(中国剩余定理)
  5. Luogu P3031 高于中位数
  6. Lync2013 升级错误总结2 Lync2013 PC和手机客户端登录无法验证
  7. python爬虫作业帮_【Python爬虫】01作业
  8. 西南科技大学OJ题 图的按录入顺序深度优先搜索1068
  9. 数字电子技术基础知识点总结_数字电子技术课程线上授课一周之感想 ——信息与控制学院 电工基础教研室 李姿...
  10. 视频教程-区块链技术与应用视频课程【基础篇】-区块链
  11. (娱乐项目)Python图片转换成矩阵数据,矩阵数据转换成图片
  12. Guitar Pro教程之记谱法简介
  13. 计算机无法启动无法修复工具,windows资源保护无法启动修复服务的解决方法
  14. 【MySQL】查看mysql的warnings
  15. 微型真空气体采样泵气路的流导计算
  16. wordpress主题_这些顶级WordPress主题可以使2018年成为有史以来最好的一年
  17. 慕容垂:百万战骨风云里——激荡的鲜卑史略之一(转载)
  18. //编写一个学生类(Students),包括姓名(name)、性别(sex)、学号(num)、语文课(Chinese)、英语课(English)、 //数学课(Math)和平均值(avg)
  19. debug - UITextField 输入完跳入下一field,按钮变化
  20. Googlebot(谷歌机器人)深入了解

热门文章

  1. android Activity转场动画makeSceneTransitionAnimation
  2. 关键nmcli 命令
  3. IP地址物理位置查询,支持IPV6
  4. 区块链技术的价值传递
  5. java计算机毕业设计社区食堂供餐源码+系统+数据库+lw文档+mybatis+运行部署
  6. eplan 电箱布局_基于Eplan的电柜三维布线的应用
  7. table1 | 一秒搞定你的三线表
  8. 对讲机的功能与使用频率范围
  9. 计算机网络自考2020,2020年8月自考02141计算机网络技术真题及答案
  10. 11. PHP接入微信企业付款功能