在 Linux 命令行中“完成任务”

了解如何通过这些从命令行跟踪待办事项的方式来组织自己。
398 位读者喜欢这篇文章。
Terminal view

Jamie Cox。由 Opensource.com 修改。CC BY 2.0。

关于在命令行中完成任务有很多讨论。有多少文章是关于使用 ls 的晦涩标志、Sed 和 Awk 的巧妙正则表达式以及如何使用 Perl 解析大量文本的? 这不是本文要讨论的内容。

本文是关于“完成任务”,确保我们必须做的事情确实被跟踪并完成,使用的工具不需要图形桌面、Web 浏览器或互联网连接。 为此,我们将研究跟踪待办事项列表的四种方法:纯文本文件、Todo.txt、TaskWarrior 和 Org-mode。

纯文本(且简单)

plaintext

opensource.com

管理待办事项列表最直接的方法是使用您选择的编辑器中的纯文本文件。 只需打开一个空文件并添加任务,每行一个任务。 完成后,删除该行。 简单、有效,并且使用什么工具并不重要。 但是,这种方法也有一些缺点。 一旦您删除一行并保存文件,它将永远消失。 如果您必须报告本周或上周所做的事情,这可能会成为一个问题。 虽然使用简单的文件很灵活,但它也很容易变得混乱。

Todo.txt:纯文本升级

todo.txt screen

opensource.com

这就引出了 Todo.txt 文件格式和应用程序。 安装很简单——从 GitHub 下载最新版本,并从解压缩的存档中运行 sudo make install。

Installing todo.txt

opensource.com

Todo.txt 使添加任务、列出任务和将任务标记为完成变得非常容易

todo.sh add "一些任务" 将“一些任务”添加到我的待办事项列表
todo.sh ls 列出我的所有任务
todo.sh ls due:2018-02-15 列出所有在 2018 年 2 月 15 日到期的任务
todo.sh do 3 将任务编号 3 标记为“已完成”

实际列表仍然是纯文本格式,只要您遵循正确的格式,就可以使用您喜欢的文本编辑器对其进行编辑。

该应用程序还内置了非常强大的帮助功能。

Syntax highlighting in todo.txt

opensource.com

还有大量附加组件可供选择,以及用于编写您自己的附加组件的规范。 甚至还有浏览器扩展、移动应用程序和桌面应用程序支持 Todo.txt 格式。

GNOME extensions in todo.txt

opensource.com

Todo.txt 最大的缺点是缺乏自动或内置的同步机制。 大多数(如果不是全部)浏览器扩展和移动应用程序都需要 Dropbox 来执行应用程序和桌面副本之间的同步。 如果您想要一些内置同步功能的东西,我们有...

Taskwarrior:现在我们开始使用 Python 了

Taskwarrior screenshot

opensource.com

Taskwarrior 是一个 Python 应用程序,具有与 Todo.txt 许多相同的功能。 但是,它将数据存储在数据库中,并具有内置的同步功能。 它还会跟踪接下来要做什么,记录任务的旧程度,并在您有比刚做的事情更重要的事情要做时警告您。

Taskwarrior reminder

opensource.com

Taskwarrior 的安装可以通过您的发行版的软件包管理器、Python 的 pip 实用程序或从源代码构建来完成。 使用它也很简单,命令类似于 Todo.txt

task add "一些任务" 将“一些任务”添加到列表
task list 列出所有任务
task list due :today 列出所有在今天到期的任务
task do 3 完成任务编号 3

Taskwarrior 还有一些非常不错的文本用户界面。

Taskwarrior in Vit

opensource.com

与 Todo.txt 不同,Taskwarrior 可以与本地或远程服务器同步。 如果您希望运行自己的服务器,可以使用一个名为 taskd 的非常基本的同步服务器,如果您不希望运行自己的服务器,则可以使用多种服务。

Taskwarrior 还有一个蓬勃发展且广泛的附加组件和扩展生态系统,以及移动和桌面应用程序。

Taskwarrior on GNOME

opensource.com

Taskwarrior 唯一的缺点是,与此处列出的其他程序不同,您无法直接修改待办事项列表本身。 您可以将任务列表导出为各种格式,修改导出,然后重新导入文件,但这比直接在文本编辑器中打开文件要麻烦得多。

这就引出了最强大的一个...

Emacs Org-mode:Hulk 猛击任务

Org-mode

opensource.com

Emacs Org-mode 是迄今为止最强大、最灵活的开源待办事项列表管理器。 它支持多个文件,使用纯文本,几乎可以无限自定义,并且理解日历、截止日期和计划。 与此处列出的其他应用程序相比,它的设置也复杂得多。 但是一旦设置好,它就可以完成其他应用程序所做的一切以及更多。 如果您熟悉或喜欢 Bullet Journals,Org-mode 可能是您在计算机上能找到的最接近的替代品。

Org-mode 将在 Emacs 运行的任何地方运行,并且还有一些移动应用程序可以与之交互。 不幸的是,没有支持 Org 的桌面应用程序或浏览器扩展。 尽管如此,Org-mode 仍然是跟踪待办事项列表的最佳应用程序之一,因为它非常强大。

选择您的工具

最后,所有这些程序的目标都是帮助您跟踪您需要做的事情,并确保您不会忘记做某事。 虽然它们都具有相同的基本功能,但选择哪一个适合您取决于很多因素。 您是否需要内置同步功能? 您需要移动应用程序吗? 任何附加组件是否包含“必备”功能? 无论您选择什么,请记住,程序本身不能让您更井井有条,但它可以提供帮助。

标签
User profile image.
Kevin Sonney 是一位技术专业人士、媒体制作人和播客主持人。 作为 Linux 系统管理员和开源倡导者,Kevin 在 IT 行业拥有超过 25 年的经验,在开源领域拥有超过 15 年的经验。 他目前在 elastic 担任 SRE。

7 条评论

我一直不太喜欢待办事项列表。 我有需要做的事情,但它们属于不同的类别和关注程度。 我需要去买食物,我需要洗车,我需要编写一些 Python 脚本,或者写一些文章…… 将这些事情放在一起不是很有用。
我发现命令行程序 remind 和 remind-gui 更适合我的需求。 您可以使用 'tkremind' 在命令行中访问它。 它有一个默认访问的文件,名为 .reminders,但您可以创建其他文件,例如 .pythontasks,因此您可以键入 'tkremind .pythontasks' 它在日历结构上工作,但您可以让事情每天重复一段时间或永远重复,直到它们被删除。 我还设置了别名来键入类似 'next4w' 的内容,并在终端中向我显示接下来 4 周的此信息集合。

感谢您强调使用纯文本文件(这是我首选的方式)。 它简单、快速,并且不需要您在计算机上尚未安装的任何软件。

对不起,我需要纠正您。 Taskwarrior 是一个 C++ 程序,而不是用 Python 编写的。 即使有几种编程语言的扩展。

此外,还有一个“task edit”命令,允许您使用选择的文本编辑器编辑任务,或使用“task modify”修改现有任务。

最简单的方法,我已经使用了十多年

摘要

$ touch ~/.db.txt
$ vi .bashrc
function edittext { vi ~/.db.txt; }
function findtext { grep -i $1 ~/.db.txt; }
function lesstext { less ~/.db.txt;}
$ source .bashrc

详细信息:如果可能,请避免。

其他注意事项
- 使用您自己的名称和位置
- 使用 gedit、nano、emacs 等代替 vi
- 对于多台服务器,只允许在一台服务器上进行编辑,并带有注释
- 使用 rsync 和 cron 在服务器之间每日同步 .db.txt

在每行左侧使用一个类别词,并编号您要组织的词 - 然后在类别词右侧写任何您想要的内容。

使用管道来缩小搜索范围

$ findtext perl | grep hash | grep reference
$ findtext network | grep 192.168
$ findtext recover | grep data |grep tools

我长期使用 TuDu(我最终切换到了 Wunderlist)。 它很好地处理子任务,并将所有内容存储在 XML 文件中。

我使用 Todo.sh,我非常喜欢它。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.