Ledger-复式记账的一个功能强大的命令行工具 ================================== 无论你是一个电脑极客还是普通用户,记录账户开销总是必不可少的。虽然在Linux上有很多基于GUI的记账工具(比如 - [GNUCash][1])受到大家欢迎,但是工作在命令行的记账工具是很多用户难以想象的。在本文中,我们将讨论一个功能强大的命令行记账工具-**Ledger**。 ![](http://mylinuxbook.com/wp-content/uploads/2013/09/ledger-main.png) ###Ledger - 复式记账工具 Ledger是复式记账的一个功能强大的命令行工具。对于那些不了解“复式(Double-Entry)”的用户,它这意味着每笔交易都必须有一个源。站在一个外行的角度来看,这意味着,每做成一笔账户信贷,一个账户必须有一个借记卡。所以,Ledger跟踪资金运转并且帮助你了解你的开支。 Ledger没有自己的数据库,它依赖于通过用户维护一个开支表(一个简单的文本文件)。不过开支表有一种Ledger能够理解的特殊格式。 例如,下图是我准备的一个简单的开支表: ![](http://mylinuxbook.com/wp-content/uploads/2013/09/ledger-11.png) 几个值得注意的要点: * 分类之下的所有行是tab缩进(例如 - Shopping,Leisure或EMI)。 * 同样,所有的开支金额也是tab缩进(包括:$)。 * 作为复式记账工具,制定信用卡和借记卡是很重要的,否则Ledger将会报错。 ###简短教程 当你准备好了费用表,参照下图来了解怎样检查总体费用。 ![](http://mylinuxbook.com/wp-content/uploads/2013/09/ledger-2.png) 所以,通过**-f 选项**你可以看到,你可以指定你的开支表的名称并且balance是Ledger的一个命令,它能够处理明确显示的总付款记录。另外,借记卡支付显示为红色,支出显示为白色。 正如前面所讨论的,Ledger要求用户输入正确的借方贷方详细信息。下面是一个当费用表中提到了错误账户对应关系时的示例: ![](http://mylinuxbook.com/wp-content/uploads/2013/09/ledger-3.png) 我只是把鞋子的购物费用从$50改到$60,但是没改变付款价格。正如你看到的,Ledger显示了“**Transaction does not balance**“错误。 除了balance命令,你可以用**register**命令去显示所有条目对应的报表查询。 例如: ![](http://mylinuxbook.com/wp-content/uploads/2013/09/ledger-4.png) 所以,你可以从上面示例中看到 - **register**命令是用来shopping报表查询,所有有关这一类的交易都在输出中显示。 这只是冰山一角,Ledger提供很多其他选项值得一试(包括:report generation)。更多内容访问[手册页][2]。 **优点** * 强大且功能丰富的记账工具 * 便于使用 * 彩色输出 **缺点** * 开支文件需要分别维护 * 有一定的学习曲线 ###下载/安装 下面是一些有关Ledger命令行工具的重要链接: * [主页][3] * [下载][4] * [文档][5] * [一个在LWN上的详细综述][6] Ubuntu用户可以通过Ubuntu软件中心下载和安装这个工具。这篇文章使用的版本是3.0。 ###总结 Ledger是一个智能小巧的命令行实用程序用来管理你的开支。你可以用它来管理日常以及复杂的业务账户。虽然它有一定的学习曲线,但是它拥有各种功能,在学习使用Ledger中投入一点努力是值得的。 via: 本文由 [LCTT][] 原创翻译,[Linux中国][] 荣誉推出 译者:[Vito][] 校对:[Caroline][] [LCTT]:https://github.com/LCTT/TranslateProject [Linux中国]:http://linux.cn/portal.php [Vito]:http://linux.cn/space/Vito [Caroline]:http://linux.cn/space/14763 [1]:http://www.gnucash.org/ [2]:http://www.ledger-cli.org/3.0/doc/ledger.1.html [3]:http://www.ledger-cli.org/ [4]:http://www.ledger-cli.org/download.html [5]:http://www.ledger-cli.org/2.6/ledger.pdf [6]:http://lwn.net/Articles/501681/