- CLI
【免费下载链接】jrnl
Collect your thoughts and notes without leaving the command line.
导读
本篇指南围绕 jrnl 项目的官方安装文档(docs/installation.md)展开,完整讲解 jrnl 的安装方式、首次运行的交互式初始化流程,以及最快写入第一条日记的 Quickstart 语法。读完本文,你将掌握通过 pipx 安装 jrnl、理解首次运行时的期刊文件路径与加密询问、并熟练使用「时间戳 + 标题 + 正文」的一行式日记书写格式;同时,我们会结合仓库源码(jrnl/install.py、jrnl/config.py、jrnl/path.py)剖析安装背后实际发生的配置写入逻辑。
环境要求与安装方式
Python 版本要求
根据仓库 pyproject.toml 的声明,jrnl 要求requires-python = '>=3.11.0,<3.15',即官方安装文档中提到的Python 3.11+。同时,pyproject.toml 列出了一批核心运行时依赖,包括cryptography(加密)、keyring(密码存储)、parsedatetime与python-dateutil(自然语言时间解析)、ruamel.yaml(配置文件解析)、rich(终端美化输出)、colorama(跨平台颜色)等,安装时 pip 会自动解析这些依赖。
推荐方式:pipx 安装
官方文档推荐使用 pipx 安装,这是因为它能为命令行应用创建独立隔离的环境,避免污染系统 Python,同时让jrnl命令在全局可用:
pipx install jrnl安装完成后,jrnl可执行文件便已就绪(pyproject.toml 中定义了入口脚本jrnl = 'jrnl.main:run',程序实际从 jrnl/main.py 的run()函数启动)。
重要注意事项:不要使用 sudo
安装文档特别强调:
!!! tip 安装 jrnl 时不要使用 sudo,否则可能导致路径问题。
原因在于:若以sudo安装,pipx/pip 会将包安装到 root 用户的环境,而 jrnl 首次运行时要向当前用户的主目录写入配置文件与期刊文件(详见下文「首次运行的初始化流程」),权限错位会让文件落到错误的位置,或导致后续无法正常读写。
其他安装途径(从源码结构看)
除 pipx 外,由于 jrnl 是一个标准的 Python 包(构建后端为poetry-core,见 pyproject.toml),也完全可以使用常规的 pip 方式安装,例如pip install jrnl,或从本仓库源码直接安装:pip install .。开发者若需调试,还可使用 Poetry:poetry install。选择 pip 直装时同样建议配合虚拟环境,避免 sudo 与全局环境污染。
首次运行的交互式初始化
第一次运行jrnl时,程序会发现本机尚不存在配置文件,随即进入一个交互式安装流程。官方文档概括为两个核心询问:
- 期刊文件(journal file)应该创建在哪里?
- 是否希望对期刊加密?
安装流程在源码中的真实实现
上述交互流程对应 jrnl/install.py 的install()函数,其执行顺序如下:
- 初始化命令行补全:调用
_initialize_autocomplete()(jrnl/install.py),为路径输入提供 Tab 补全(检测到readline模块可用时启用;tests/unit/test_install.py 中还有专门测试验证缺少 readline 时不会抛异常)。 - 询问期刊路径:给出默认路径供用户确认或修改。默认路径由
get_default_journal_path()(jrnl/path.py)计算——它遵循 XDG 规范,将期刊文件放在 XDG 数据目录下的journal.txt,即~/.local/share/jrnl/journal.txt(Linux 典型位置)。 - 创建目录:若期刊文件所在目录不存在,会调用
os.makedirs自动创建(jrnl/install.py)。 - 询问是否加密:通过
yesno提示,默认不加密;若选择加密,则在配置中写入encrypt: true(jrnl/install.py)。加密能力基于cryptography依赖实现,加密期刊默认采用 jrnl v3 格式,详见 docs/encryption.md。 - 询问是否启用彩色输出:默认开启,启用后写入默认配色方案(日期为黑色、标签为黄色、标题为青色,见 jrnl/config.py)。
- 保存配置文件:将默认配置以 YAML 格式写入配置文件,并提示安装完成与配置文件路径(jrnl/install.py)。
配置文件写到哪里
配置文件的默认位置由 jrnl/path.py 的get_config_path()决定:优先使用 XDG 配置目录下的jrnl.yaml(Linux 上为~/.config/jrnl/jrnl.yaml);若该目录不可用则回退到主目录下的~/.jrnl_config。保存时使用 UTF-8 编码的 YAML(jrnl/config.py)。
首次运行生成的核心配置项
安装完成后写入的默认配置(见get_default_config(),jrnl/config.py)包括:
| 配置键 | 默认值 | 说明 |
|---|---|---|
journals.default.journal | XDG 数据目录下的journal.txt | 默认期刊文件路径 |
editor | $VISUAL/$EDITOR环境变量 | 外部编辑器,为空则用内置提示输入 |
encrypt | false | 是否启用 AES 加密 |
default_hour/default_minute | 9/0 | 只给日期不写时间时使用的默认时刻 |
timeformat | %F %r | 期刊内时间显示格式 |
tagsymbols | #@ | 标签符号 |
highlight | true | 是否高亮显示 |
linewrap | 79 | 输出换行宽度 |
colors | 见上文 | 各部分颜色 |
该配置文件的完整参数说明可参考 docs/reference-config-file.md。配置采用 YAML 格式(由ruamel.yaml解析),首次安装写入的配置还会带有当前 jrnl 版本号;后续版本升级时,upgrade_config()(jrnl/install.py)会自动补齐缺失的新配置键并同步版本号。
Quickstart:30 秒写下第一条日记
一行式日记语法
安装完成后,最快的新增方式是在命令行直接输入:
jrnl yesterday: Called in sick. Used the time to clean, and spent 4h on writing my book.按下回车即可完成写入。这条命令的解析规则如下:
yesterday:会被 jrnl 识别为时间戳(借助parsedatetime解析自然语言时间)。文档列出的其他可用写法包括at 6am、last monday、sunday at noon、2 march 2012、5/20/1998 at 23:42等,详见 docs/usage.md。- 第一个句末标点(
.?!:)之前的内容被解释为标题,其余内容作为正文。
写入期刊文件后的实际效果:
2012-03-29 09:00 Called in sick. Used the time to clean the house and spent 4h on writing my book.注意输出中的时间09:00:由于只指定了日期(yesterday)而未指定时刻,jrnl 使用了默认配置中的default_hour: 9与default_minute: 0(jrnl/config.py)。这说明 Quickstart 中「只写日期」的便捷写法背后,是默认时刻机制在起作用。
关于 shell 特殊字符的提醒
虽然一行式写法适合快速记录,但官方文档(docs/usage.md)提醒:大多数 shell 对#、*、括号、不成对的引号等字符有特殊语义,直接写在命令行可能被 shell 先行解释。解决方案有两种:
- 先单独运行
jrnl回车,进入交互式提示后输入正文,规避 shell 解析问题; - 配置外部编辑器进行长文写作,配置方式见 docs/advanced.md 与 docs/external-editors.md。
两种写作模式的定位
从 Quickstart 可以看出 jrnl 的两种基本模式(docs/usage.md):
- 撰写模式(composing):不带短横线参数的调用即为撰写模式,可以直接在命令行写日记,也可以
jrnl后回车进入提示输入; - 查看模式(viewing):使用单短横线参数过滤、双短横线参数控制显示,例如
jrnl -n 10查看最近十条、jrnl -to today查看全部条目。
首次安装完成后,建议先用 Quickstart 写入第一条日记,再用jrnl -n 5或jrnl -to today验证读写是否正常,随后再根据需要阅读 docs/advanced.md 配置多期刊、模板或外部编辑器。
故障排查与后续阅读
- 安装后命令找不到:确认 pipx 的 bin 目录(通常为
~/.local/bin)已加入PATH,并检查是否误用了 sudo 安装。 - 首次运行异常:可尝试删除已生成的配置文件让 jrnl 重新初始化,或用
jrnl --config-file <路径>指定备用配置文件(见 docs/advanced.md)。 - 配置项含义:参考 docs/reference-config-file.md 的完整参数表。
- 加密机制:首次初始化若选择加密,可进一步阅读 docs/encryption.md 了解 jrnl v3 加密文件格式与
jrnl --encrypt/jrnl --decrypt命令。
- CLI
【免费下载链接】jrnl
Collect your thoughts and notes without leaving the command line.
相关推荐
Nginx UI 快速上手指南:安装方式、安装 Secret 与首次运行配置
Nginx UI 快速上手指南:安装方式、安装 Secret 与首次运行配置 本篇指南聚焦 Nginx UI 的「即刻开始」全流程:从在线演示试用、Debian
后端前端运维MCP 服务aider 快速上手指南:安装、API Key 配置与首次运行 AI 结对编程
aider 快速上手指南:安装、API Key 配置与首次运行 AI 结对编程 aider 是一款运行在终端里的 AI 结对编程工具("AI pair prog
人工智能大模型AI Agent代码智能体交互助手CLI开发工具LivePortrait终极指南:三步打造栩栩如生的人像动画
LivePortrait终极指南:三步打造栩栩如生的人像动画 LivePortrait是一款革命性的人像动画生成工具,它能将静态肖像照片转化为生动的动画视频,让
人工智能计算机视觉媒体生成数字人
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考