Référence rapide

Aide-mémoire Ledger CLI

Guide de référence complet pour Ledger CLI : comptabilité en partie double en texte brut, drapeaux, dates auxiliaires, assertions de solde et filtrage de requêtes.

· Publié le

Ledger est un puissant outil en ligne de commande pour la comptabilité en partie double au format texte brut. En gérant vos finances dans des fichiers journaux lisibles, Ledger vous permet de calculer les soldes, générer des registres et éditer des rapports financiers détaillés.


Concepts fondamentaux et prise en main

L'équation comptable en partie double

Dans Ledger, chaque transaction se compose de deux écritures ou plus dont la somme doit obligatoirement être égale à zéro :

$$\text{Assets} + \text{Expenses} = \text{Liabilities} + \text{Equity} + \text{Income}$$

Assets:Checking          -$600.00   ; Asset decreases (credit)
Expenses:Rent             $600.00   ; Expense increases (debit)
---------------------------------
Solde net = 0,00 $

Aperçu des commandes principales

Commande Forme complète Description
ledger bal ledger balance Calcule et affiche les soldes actuels des comptes
ledger reg ledger register Liste chronologiquement les écritures avec solde progressif
ledger print ledger print Formate et affiche les écritures brutes du journal
ledger csv ledger csv Exporte les écritures filtrées au format CSV standard
ledger payees ledger payees Liste tous les bénéficiaires uniques présents dans le journal
ledger accounts ledger accounts Liste l'ensemble des comptes et leur hiérarchie

Syntaxe du journal de transactions

Structure de base d'une transaction

2024/01/03 * (CODE#001) Landlord John ; tag:rent
    Expenses:Rent:Apartment       $600.00
    Assets:Checking:MainBank
  • Décomposition de la ligne d'en-tête ::
2024/01/03   *       (CODE#001)   Landlord John     ; tag:rent
^            ^       ^            ^                 ^
Date         State   Code/Check#  Payee/Description Comment & Tags
  • Élision automatique : Ledger déduit automatiquement le montant d'une écriture pour équilibrer la transaction.

Indicateurs d'état des transactions

Drapeau État Description et usage type
(None) Non rapproché Nouvelles transactions non encore vérifiées sur relevé bancaire
! En attente Opérations engagées en attente de règlement
* Rapproché Transactions vérifiées et enregistrées sur le compte bancaire

Dates auxiliaires

Le signe égal permet de dissocier la date de l'événement de la date de valeur effective :

; Format: EventDate=SettlementDate
2024/01/01=2024/01/15 Consulting Client A
    Assets:AccountsReceivable    $1,000.00
    Income:Consulting

Assertions et affectations de solde

  • Assertion de solde (= $VALUE) : vérifie que le solde cumulé correspond précisément à la valeur indiquée.
  • Affectation de solde (= $VALUE) : calcule automatiquement le montant nécessaire pour atteindre le solde.
; 1. Balance Assertion
2024/01/01 * Restaurant
    Expenses:Food:Dinner          $20.00
    Assets:Cash                  -$20.00 = $500.00

; 2. Balance Assignment
2024/01/01 * Opening Balance
    Assets:Cash                 = $500.00
    Equity:OpeningBalances

Account Declarations & Validation

account Expenses:Food
    note Dining and grocery expenses
    alias food
    payee ^(KFC|McDonalds|Starbucks)$
    check commodity == "$"
    assert commodity == "$"
    default

account Assets:Cash
    alias cash

Commodities & Currencies

; 1. Per-unit cost (@ symbol)
2024/05/31 * Farmers Market
    Expenses:Food:Apples         10 APPLE @ $1.50
    Assets:Checking             -$15.00

; 2. Total cost (@@ symbol)
2024/06/01 * Brokerage
    Assets:Investments:AAPL      5 AAPL @@ $950.00
    Assets:Checking             -$950.00

; 3. Explicit currency price history
P 2024/06/01 00:00:00 EUR $1.0850

Directives

; Global default currency
D $1,000.00

; Set default year
Y2024

Including Sub-Journals

include accounts.journal
include 2023.journal
include 2024.journal

account Business
include company_expenses.journal
end

Budgeting

~ Monthly
    Expenses:Rent               $600.00
    Expenses:Food               $400.00
    Expenses:Utilities          $100.00
    Expenses                    $100.00
    Assets

~ Yearly
    Expenses:Insurance        $1,200.00
    Assets
  • ledger bal --budget Expenses
  • ledger bal --unbudgeted Expenses

Expressions de périodes

Ledger fournit des filtres temporels en langage naturel avec l'option -p ou --period.

Syntax Structure

[INTERVAL] [BEGIN] [END]

Intervalles

Intervalle Signification
every day / daily Daily
every week / weekly Weekly
biweekly Every two weeks
every month / monthly Monthly
every quarter / quarterly Quarterly
every year / yearly Yearly
every N days/weeks/months Custom interval

Period Filtering Examples

ledger reg -p "since last month"
ledger reg Expenses -p "every month from 2024 to 2024/12/31" -M
ledger bal -p "from 2024/01/01 until this month"
ledger bal Expenses:Food -p "last quarter"

Expressions de requête et filtrage

Syntax Cible Exemple Description
Account Account name ledger bal Assets Substring/regex match
^Account Root account ledger bal ^Expenses Accounts starting with Expenses
@Payee Payee name ledger reg @Starbucks Match payee field
%Tag Tag presence ledger reg %reimburse Match tagged transactions
%Tag=Value Tag value ledger reg %project=alpha Match tag key-value pairs
=Note Memo note ledger reg =taxi Match memo text
#Code Transaction code ledger reg #1042 Match check or order number

Logique booléenne

ledger reg Expenses:Food and @Starbucks and not dining
ledger bal Rent or Transportation
ledger bal Expenses and not \( Drinks or Food \)

Options de filtrage courantes

Drapeau Option Description
-b DATE --begin DATE Filter transactions on or after date
-e DATE --end DATE Filter transactions before date
-C --cleared Only cleared transactions (*)
-U --uncleared Only uncleared transactions
--pending --pending Only pending transactions (!)
-R --real Exclude virtual postings
-r --related Show the offsetting balancing postings

Rapports et export de données

-s, --subtotal         # Calculate subtotals for grouped postings
-n, --collapse         # Collapse multi-line postings into one line
--flat                 # Render account tree as a flat list
--tail N               # Limit output to last N lines
--invert               # Invert numerical signs (display expenses as positive)
-X CUR, --exchange CUR # Convert foreign holdings to specified currency at latest rate
# Export all entries to CSV
ledger csv > report.csv

# Export this month's dining expenses
ledger csv Expenses:Food -p "this month"

Exemples pratiques

# Current assets vs liabilities
ledger bal ^Assets ^Liabilities

# Net revenue this month with positive expenses
ledger bal ^Expenses ^Income -p "this month" --invert

# Top 10 largest expenses
ledger reg Expenses -S amount --tail 10

# Monthly average daily expenses
ledger reg Expenses -M -n --average

Références

Sujets associés