習慣使用番茄工做法,在Linux上工做時也須要一個番茄鍾。 安裝一個Linux下番茄鍾工做軟件? 其實根本不必,咱們能夠用Linux下經典的at命令實現一個簡單的番茄鍾。工具
通常Linux基本系統裏都包含了at這個小巧實用的工具,不須要安裝。命令行
不過林子大了,什麼鳥都有,好比我最近使用的centOS中竟然沒有at命令。 因而我安裝這個包。code
sudo yum install at
你能夠用 which at
查看有沒有at命令。若是沒有,就安裝一個。視頻
軟件準備好了,簡單實驗一下at的用法。隊列
首先咱們要啓動atd服務 (freeBSD彷佛不須要這一步,並且找不到atd服務)。圖片
# service atd start
若是你沒有service命令,你可能須要使用相似下面的命令。ip
# /etc/init.d/atd start
或許你的系統已經拋棄了initscripts,已經再用systemd了, 你能夠用systemd啓動服務it
# 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
一個番茄鍾是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環境,就不能用顯示圖片的方式了,能夠播放聲音來提醒。
2014-03-21 Fri