From 796a8f59a61ed6e54d0d2b41a5d0155c5bb9696b Mon Sep 17 00:00:00 2001 From: Benedikt Peetz Date: Wed, 10 Jun 2026 21:32:08 +0200 Subject: chore: Remove unneeded files --- docs-i18n/.gitignore | 20 --- docs-i18n/ru/config_ru.md | 146 ---------------------- docs-i18n/ru/import_ru.md | 27 ---- docs-i18n/ru/key-binding_ru.md | 39 ------ docs-i18n/ru/list_ru.md | 11 -- docs-i18n/ru/search_ru.md | 38 ------ docs-i18n/ru/server_ru.md | 160 ------------------------ docs-i18n/ru/shell-completions_ru.md | 20 --- docs-i18n/ru/stats_ru.md | 40 ------ docs-i18n/ru/sync_ru.md | 60 --------- docs-i18n/zh-CN/README.md | 234 ----------------------------------- docs-i18n/zh-CN/config.md | 137 -------------------- docs-i18n/zh-CN/docker.md | 90 -------------- docs-i18n/zh-CN/import.md | 25 ---- docs-i18n/zh-CN/k8s.md | 195 ----------------------------- docs-i18n/zh-CN/key-binding.md | 48 ------- docs-i18n/zh-CN/list.md | 11 -- docs-i18n/zh-CN/search.md | 37 ------ docs-i18n/zh-CN/server.md | 75 ----------- docs-i18n/zh-CN/shell-completions.md | 19 --- docs-i18n/zh-CN/stats.md | 35 ------ docs-i18n/zh-CN/sync.md | 51 -------- 22 files changed, 1518 deletions(-) delete mode 100644 docs-i18n/.gitignore delete mode 100644 docs-i18n/ru/config_ru.md delete mode 100644 docs-i18n/ru/import_ru.md delete mode 100644 docs-i18n/ru/key-binding_ru.md delete mode 100644 docs-i18n/ru/list_ru.md delete mode 100644 docs-i18n/ru/search_ru.md delete mode 100644 docs-i18n/ru/server_ru.md delete mode 100644 docs-i18n/ru/shell-completions_ru.md delete mode 100644 docs-i18n/ru/stats_ru.md delete mode 100644 docs-i18n/ru/sync_ru.md delete mode 100644 docs-i18n/zh-CN/README.md delete mode 100644 docs-i18n/zh-CN/config.md delete mode 100644 docs-i18n/zh-CN/docker.md delete mode 100644 docs-i18n/zh-CN/import.md delete mode 100644 docs-i18n/zh-CN/k8s.md delete mode 100644 docs-i18n/zh-CN/key-binding.md delete mode 100644 docs-i18n/zh-CN/list.md delete mode 100644 docs-i18n/zh-CN/search.md delete mode 100644 docs-i18n/zh-CN/server.md delete mode 100644 docs-i18n/zh-CN/shell-completions.md delete mode 100644 docs-i18n/zh-CN/stats.md delete mode 100644 docs-i18n/zh-CN/sync.md (limited to 'docs-i18n') diff --git a/docs-i18n/.gitignore b/docs-i18n/.gitignore deleted file mode 100644 index b2d6de30..00000000 --- a/docs-i18n/.gitignore +++ /dev/null @@ -1,20 +0,0 @@ -# Dependencies -/node_modules - -# Production -/build - -# Generated files -.docusaurus -.cache-loader - -# Misc -.DS_Store -.env.local -.env.development.local -.env.test.local -.env.production.local - -npm-debug.log* -yarn-debug.log* -yarn-error.log* diff --git a/docs-i18n/ru/config_ru.md b/docs-i18n/ru/config_ru.md deleted file mode 100644 index b1e64218..00000000 --- a/docs-i18n/ru/config_ru.md +++ /dev/null @@ -1,146 +0,0 @@ -# Конфигурация - -Autin использует два файла конфигурации. Они хранятся в `~/.config/atuin/`. Данные -хранятся в `~/.local/share/atuin` (если не определено другое в XDG\_\*). - -Путь до катклога конфигурации может быть изменён установкой -параметра `ATUIN_CONFIG_DIR`. Например - -``` -export ATUIN_CONFIG_DIR = /home/ellie/.atuin -``` - -## Пользовательская конфигурация - -``` -~/.config/atuin/config.toml -``` - -Этот файл используется когда клиент работает на локальной машине (не сервере). - -See [config.toml](../../atuin-client/config.toml) for an example - -### `dialect` - -Этот параметр контролирует как [stats](stats.md) команда обрабатывает данные. -Может принимать одно из двух допустимых значений: - -``` -dialect = "uk" -``` - -или - -``` -dialect = "us" -``` - -По умолчанию - "us". - -### `auto_sync` - -Синхронизироваться ли автоматически если выполнен вход. По умолчанию - да (true) -``` -auto_sync = true/false -``` - -### `sync_address` - -Адрес сервера для синхронизации. По умолчанию `https://api.atuin.sh`. - -``` -sync_address = "https://api.atuin.sh" -``` - -### `sync_frequency` - -Как часто клиент синхронизируется с сервером. Может быть указано в -понятном для человека формате. Например, `10s`, `20m`, `1h`, и т.д. -По умолчанию `1h` - -Если стоит значение 0, Autin будет синхронизироваться после каждой выполненной команды. -Помните, что сервера могут иметь ограничение на количество отправленных запросов. - -``` -sync_frequency = "1h" -``` - -### `db_path` - -Путь до базы данных SQlite. По умолчанию это -`~/.local/share/atuin/history.db`. - -``` -db_path = "~/.history.db" -``` - -### `key_path` - -Путь до ключа шифрования Autin. По умолчанию, -`~/.local/share/atuin/key`. - -``` -key = "~/.atuin-key" -``` - -### `session_path` - -Путь до серверного файла сессии Autin. По умолчанию, -`~/.local/share/atuin/session`. На самом деле это просто API токен. - -``` -key = "~/.atuin-session" -``` - -### `search_mode` - -Определяет, какой режим поиска будет использоваться. Autin поддерживает "prefix", -текст целиком (fulltext) и неточный ("fuzzy") поиск. Режим "prefix" производит -поиск по "запрос\*", "fulltext" по "\*запрос\*", и "fuzzy" использует -[вот такой](#fuzzy-search-syntax) синтаксис. - -По умолчанию стоит значение "fuzzy" - -### `filter_mode` - -Фильтр, по-умолчанию использующийся для поиска - -| Столбец 1 | Столбец 2 | -|------------------|----------------------------------------------------------| -| global (default) | Искать историю команд со всех хостов, сессий и каталогов | -| host | Искать историю команд с этого хоста | -| session | Искать историю команд этой сессии | -| directory | Искать историю команд, выполненных в текущей папке | - -Режимы поиска могут быть изменены через ctrl-r - - -``` -search_mode = "fulltext" -``` - -#### fuzzy search syntax - -Режим поиска "fuzzy" основан на -[fzf search syntax](https://github.com/junegunn/fzf#search-syntax). - -| Токен | Тип совпадений | Описание | -|-----------|----------------------------|-------------------------------------| -| `sbtrkt` | fuzzy-match | Всё, что совпадает с `sbtrkt` | -| `'wild` | exact-match (В кавычках) | Всё, что включает в себя `wild` | -| `^music` | prefix-exact-match | Всё, что начинается с `music` | -| `.mp3$` | suffix-exact-match | Всё, что заканчивается на `.mp3` | -| `!fire` | inverse-exact-match | Всё, что не включает в себя `fire` | -| `!^music` | inverse-prefix-exact-match | Всё, что не начинается с `music` | -| `!.mp3$` | inverse-suffix-exact-match | Всё, что не заканчивается на `.mp3` | - -Знак вертикальной черты означает логическое ИЛИ. Например, запрос ниже вернет -всё, что начинается с `core` и заканчивается либо на `go`, либо на `rb`, либо на `py`. - -``` -^core go$ | rb$ | py$ -``` - -## Серверная конфигурация - -`// TODO` diff --git a/docs-i18n/ru/import_ru.md b/docs-i18n/ru/import_ru.md deleted file mode 100644 index 993d89b8..00000000 --- a/docs-i18n/ru/import_ru.md +++ /dev/null @@ -1,27 +0,0 @@ -# `atuin import` - -Autin может импортировать историю из "старого" файла истории - -`atuin import auto` предпринимает попытку определить тип командного интерфейса -(через \$SHELL) и запускает нужный скрипт импорта. - -К сожалению, эти файлы содержат не так много информации, как Autin, так что не -все функции будут доступны с импортированными данными. - -# zsh - -``` -atuin import zsh -``` - -Если у вас есть HISTFILE, то эта команда должна сработать. Иначе, попробуйте - -``` -HISTFILE=/path/to/history/file atuin import zsh -``` - -Этот параметр поддерживает как и упрощённый, так и полный формат. - -# bash - -TODO diff --git a/docs-i18n/ru/key-binding_ru.md b/docs-i18n/ru/key-binding_ru.md deleted file mode 100644 index d6917e4e..00000000 --- a/docs-i18n/ru/key-binding_ru.md +++ /dev/null @@ -1,39 +0,0 @@ -# Key binding - -По умолчанию, Autin будет переназначать Ctrl-r и клавишу 'стрелка вверх'. -Если вы не хотите этого, установите параметр ATUIN_NOBIND прежде чем вызывать `atuin init` - -Например, - -``` -export ATUIN_NOBIND="true" -eval "$(atuin init zsh)" -``` - -Таким образом вы можете разрешить переназначение клавиш Autin, если это необходимо. -Делайте это до инициализирующего вызова. - -# zsh - -Autin устанавливает виджет ZLE "atuin-search" - -``` -export ATUIN_NOBIND="true" -eval "$(atuin init zsh)" - -bindkey '^r' atuin-search - -# зависит от режима терминала -bindkey '^[[A' atuin-search -bindkey '^[OA' atuin-search -``` - -# bash - -``` -export ATUIN_NOBIND="true" -eval "$(atuin init bash)" - -# Переопределите ctrl-r, и любые другие сочетания горячих клавиш тут -bind -x '"\C-r": __atuin_history' -``` diff --git a/docs-i18n/ru/list_ru.md b/docs-i18n/ru/list_ru.md deleted file mode 100644 index e40d3045..00000000 --- a/docs-i18n/ru/list_ru.md +++ /dev/null @@ -1,11 +0,0 @@ -# Вывад истории на экран - -``` -atuin history list -``` - -| Аргумент | Описание | -| -------------- | ------------------------------------------------------------------------------ | -| `--cwd/-c` | Каталог, историю команд которой необходимо вывести (по умолчанию все каталоги) | -| `--session/-s` | Выводит историю команд только текущей сессии (по умолчанию false) | -| `--human` | Читаемый формат для времени и периодов времени (по умолчанию false) | diff --git a/docs-i18n/ru/search_ru.md b/docs-i18n/ru/search_ru.md deleted file mode 100644 index 8302decc..00000000 --- a/docs-i18n/ru/search_ru.md +++ /dev/null @@ -1,38 +0,0 @@ -# `atuin search` - -``` -atuin search -``` - -Поиск в Atuin также поддерживает wildcards со знаками `*` или `%`. -По умолчанию, должен быть указан префикс (т.е. все запросы автоматически дополняются wildcard -ами) - -| Аргумент | Описание | -| ------------------ | ------------------------------------------------------------------------------------------- | -| `--cwd/-c` | Каталог, для которого отображается история (по умолчанию, все каталоги)) | -| `--exclude-cwd` | Исключить команды которые запускались в этом каталоге (по умолчанию none) | -| `--exit/-e` | Фильтровать по exit code (по умолчанию none) | -| `--exclude-exit` | Исключить команды, которые завершились с указанным значением (по умолчанию none) | -| `--before` | Включить только команды, которые были запущены до указанного времени (по умолчанию none) | -| `--after` | Включить только команды, которые были запущены после указанного времени (по умолчанию none) | -| `--interactive/-i` | Открыть интерактивный поисковой графический интерфейс (по умолчанию false) | -| `--human` | Использовать читаемое формавтирование для времени и периодов времени (по умолчанию false) | - -## Примеры - -``` -# Начать интерактивный поиск с текстовым пользовательским интерфейсом -atuin search -i - -# Начать интерактивный поиск с текстовым пользовательским интерфейсом и уже введённым запросом -atuin search -i atuin - -# Искать по всем командам, начиная с cargo, которые успешно завершились -atuin search --exit 0 cargo - -# Искать по всем командам которые завершились ошибками и были вызваны в текущей папке и были запущены до первого апреля 2021 -atuin search --exclude-exit 0 --before 01/04/2021 --cwd . - -# Искать по всем командам, начиная с cargo, которые успешно завершились и были запущены после трёх часо дня вчера -atuin search --exit 0 --after "yesterday 3pm" cargo -``` diff --git a/docs-i18n/ru/server_ru.md b/docs-i18n/ru/server_ru.md deleted file mode 100644 index 25b45abf..00000000 --- a/docs-i18n/ru/server_ru.md +++ /dev/null @@ -1,160 +0,0 @@ -# `atuin server` - -Autin позволяет запустить свой собственный сервер синхронизации, если вы -не хотите использовать мой :) - -Здесь есть только одна субкоманда, `atuin server start`, которая запустит -Autin http-сервер синхронизации - -``` -USAGE: - atuin server start [OPTIONS] - -FLAGS: - --help Prints help information - -V, --version Prints version information - -OPTIONS: - -h, --host - -p, --port -``` - -## config - -Серверная конфигурация лежит отдельно от файла пользовательсокй, даже если -это один и тот же бинарный файл. Серверная конфигурация лежит в `~/.config/atuin/server.toml`. - -Этот файл выглядит как-то так: - -```toml -host = "0.0.0.0" -port = 8888 -open_registration = true -db_uri="postgres://user:password@hostname/database" -``` - -Конфигурация так же может находииться в переменных окружения. - -```sh -ATUIN_HOST="0.0.0.0" -ATUIN_PORT=8888 -ATUIN_OPEN_REGISTRATION=true -ATUIN_DB_URI="postgres://user:password@hostname/database" -``` - -### host - -Адрес хоста, который будет прослушиваться сервером Autin - -По умолчанию это `127.0.0.1`. - -### post - -POST, который будет прослушиваться сервером Autin. - -По умолчанию это `8888`. - -### open_registration - -Если `true`, autin будет разрешать регистрацию новых пользователей. -Установите флаг `false`, если после создания вашего аккаута вы не хотите, чтобы другие -могли пользоваться вашим сервером. - -По умолчанию `false`. - -### db_uri - -Действующий URI postgres, где будет сохранён аккаунт пользователя и история. - -## Docker - -Поддерживается образ Docker чтобы сделать проще развертывание сервера в контейнере. - -```sh -docker run -d -v "$USER/.config/atuin:/config" ghcr.io/ellie/atuin:latest server start -``` - -## Docker Compose - -Использование вашего собственного docker-образа с хостингом вашего собственного Autin может быть реализовано через -файл docker-compose. - -Создайте файл `.env` рядом с `docker-compode.yml` с содержанием наподобие этому: - -``` -ATUIN_DB_USERNAME=atuin -# Choose your own secure password -ATUIN_DB_PASSWORD=really-insecure -``` - -Создайте `docker-compose.yml`: - -```yaml -version: '3.5' -services: - atuin: - restart: always - image: ghcr.io/ellie/atuin:main - command: server start - volumes: - - "./config:/config" - links: - - postgresql:db - ports: - - 8888:8888 - environment: - ATUIN_HOST: "0.0.0.0" - ATUIN_OPEN_REGISTRATION: "true" - ATUIN_DB_URI: postgres://$ATUIN_DB_USERNAME:$ATUIN_DB_PASSWORD@db/atuin - postgresql: - image: postgres:14 - restart: unless-stopped - volumes: # Don't remove permanent storage for index database files! - - "./database:/var/lib/postgresql/data/" - environment: - POSTGRES_USER: $ATUIN_DB_USERNAME - POSTGRES_PASSWORD: $ATUIN_DB_PASSWORD - POSTGRES_DB: atuin -``` - -Запустите службы с помощью `docker-compose`: - -```sh -docker-compose up -d -``` - -### Использование systemd для управления сервером Autin - -`systemd` юнит чтобы управлять службами, контролируемыми `docker-compose`: - -``` -[Unit] -Description=Docker Compose Atuin Service -Requires=docker.service -After=docker.service - -[Service] -# Where the docker-compose file is located -WorkingDirectory=/srv/atuin-server -ExecStart=/usr/bin/docker-compose up -ExecStop=/usr/bin/docker-compose down -TimeoutStartSec=0 -Restart=on-failure -StartLimitBurst=3 - -[Install] -WantedBy=multi-user.target -``` - -Включите и запустите службу командой: - -```sh -systemctl enable --now atuin -``` - -Проверьте, работает ли: - -```sh -systemctl status atuin -``` - diff --git a/docs-i18n/ru/shell-completions_ru.md b/docs-i18n/ru/shell-completions_ru.md deleted file mode 100644 index 56fb1602..00000000 --- a/docs-i18n/ru/shell-completions_ru.md +++ /dev/null @@ -1,20 +0,0 @@ -# `atuin gen-completions` - -[Shell completions](https://en.wikipedia.org/wiki/Command-line_completion) для Atuin -могут бять сгенерированы путём указания каталога для вывода и желаемого shell через субкомманду `gen-completions`. - -``` -$ atuin gen-completions --shell bash --out-dir $HOME - -Shell completion for BASH is generated in "/home/user" -``` - -Возможные команды для аргумента `--shell`могут быть следующими: - -- `bash` -- `fish` -- `zsh` -- `powershell` -- `elvish` - -Также рекомендуем прочитать [supported shells](./../../README.md#supported-shells). diff --git a/docs-i18n/ru/stats_ru.md b/docs-i18n/ru/stats_ru.md deleted file mode 100644 index 842ad71b..00000000 --- a/docs-i18n/ru/stats_ru.md +++ /dev/null @@ -1,40 +0,0 @@ -# `atuin stats` - -Atuin также может выводить статистику, основанную на истории. Пока что в очень простом виде, -но скоро должно появиться больше возможностей. - -Статистика выводится пока только на английском -Statistics in english only -# TODO - -``` -$ atuin stats day last friday - -+---------------------+------------+ -| Statistic | Value | -+---------------------+------------+ -| Most used command | git status | -+---------------------+------------+ -| Commands ran | 450 | -+---------------------+------------+ -| Unique commands ran | 213 | -+---------------------+------------+ - -$ atuin stats day 01/01/21 # also accepts absolute dates -``` - -Также, может быть выведена статистика всей известной Autin истории: - -``` -$ atuin stats all - -+---------------------+-------+ -| Statistic | Value | -+---------------------+-------+ -| Most used command | ls | -+---------------------+-------+ -| Commands ran | 8190 | -+---------------------+-------+ -| Unique commands ran | 2996 | -+---------------------+-------+ -``` diff --git a/docs-i18n/ru/sync_ru.md b/docs-i18n/ru/sync_ru.md deleted file mode 100644 index 08831cbd..00000000 --- a/docs-i18n/ru/sync_ru.md +++ /dev/null @@ -1,60 +0,0 @@ -# `atuin sync` - -Autin может сделать резервную копию вашей истории на сервер чтобы обеспечить использование -разными компьютерами одной и той же истории. Вся история будет зашифрована двусторонним шифрованием, -так что сервер _никогда_ не получит ваши данные! - -Можно сделать свой сервер (запустив `atuin server start`, об этом написано в других -файлах документациии), но у меня есть свой https://api.atuin.sh. Это серверный адрес по умолчанию, -который может быть изменён в [конфигурации](config_ru.md). Опять же, я _не_ могу получить ваши данные -и они мне не нужны. - -## Частота синхронизации - -Синхронизация будет происходить автоматически, если обратное не было указано в конфигурации. -Отконфигурировать сей параметр можно в [config](config_ru.md) - -## Синхронизация - -Синхронизироваться также можно вручную, используя команду `atuin sync` - -## Регистрация - -Можно зарегистрировать аккаунт для синхронизации: - -``` -atuin register -u -e -p -``` - -Имена пользователей должны быть уникальны, и электронная почта должна использваться -только для срочных уведомлений (изменения политик, нарушения безопасности и т.д.) - -Псоле регистрации, вы уже сразу вошли в свой аккаунт :) С этого момента синхронизация -будет проходить автоматически - -## Ключ - -Поскольку все данные шифруются, Autin при работе сгенерирует ваш ключ. Он будет сохранён в -каталоге с данными Autin (`~/.local/share/atuin` на системах с GNU/Linux) - -Также можно сделать это самим: - -``` -atuin key -``` - -Никогда не передавайте никому этот ключ! - -## Вход - -Если вы хотите войти с другого компьютера, вам потребуется ключ безопасности (`atuin key`). - -``` -atuin login -u -p -k -``` - -## Выход - -``` -atuin logout -``` diff --git a/docs-i18n/zh-CN/README.md b/docs-i18n/zh-CN/README.md deleted file mode 100644 index 065d1b4d..00000000 --- a/docs-i18n/zh-CN/README.md +++ /dev/null @@ -1,234 +0,0 @@ -

- - - Text changing depending on mode. Light: 'So light!' Dark: 'So dark!' - -

- -

-神奇的 shell 历史记录 -

- -
- -

- - - - - - - -

- - -[English] | [简体中文] - -Atuin 使用 SQLite 数据库取代了你现有的 shell 历史,并为你的命令记录了额外的内容。此外,它还通过 Atuin 服务器,在机器之间提供可选的、完全加密的历史记录同步功能。 - -

- animated -

- -

-显示退出代码、命令持续时间、上次执行时间和执行的命令 -

- -除了搜索 UI,它还可以执行以下操作: - -``` -# 搜索昨天下午3点之后记录的所有成功的 `make` 命令 -atuin search --exit 0 --after "yesterday 3pm" make -``` - -你可以使用我(ellie)托管的服务器,也可以使用你自己的服务器!或者干脆不使用 sync 功能。所有的历史记录同步都是加密,即使我想,也无法访问你的数据。且我**真的**不想。 - -## 功能 - -- 重新绑定 `up` 和 `ctrl-r` 的全屏历史记录搜索UI界面 -- 使用 sqlite 数据库存储 shell 历史记录 -- 备份以及同步已加密的 shell 历史记录 -- 在不同的终端、不同的会话以及不同的机器上都有相同的历史记录 -- 记录退出代码、cwd、主机名、会话、命令持续时间,等等。 -- 计算统计数据,如 "最常用的命令"。 -- 不替换旧的历史文件 -- 通过 Alt-\ 快捷键快速跳转到之前的记录 -- 通过 ctrl-r 切换过滤模式;可以仅从当前会话、目录或全局来搜索历史记录 - -## 文档 - -- [快速开始](#快速开始) -- [安装](#安装) -- [导入](./import.md) -- [配置](./config.md) -- [历史记录搜索](./search.md) -- [历史记录云端同步](./sync.md) -- [历史记录统计](./stats.md) -- [运行你自己的服务器](./server.md) -- [键绑定](./key-binding.md) -- [shell 补全](./shell-completions.md) - -## 支持的 Shells - -- zsh -- bash -- fish - -## 社区 - -Atuin 有一个 Discord 社区, 可以在 [这里](https://discord.gg/Fq8bJSKPHh) 获得 - -# 快速开始 - -## 使用默认的同步服务器 - -这将为您注册由我托管的默认同步服务器。 一切都是端到端加密的,所以你的秘密是安全的! - -阅读下面的更多信息,了解仅供离线使用或托管您自己的服务器。 - -``` -bash <(curl https://raw.githubusercontent.com/ellie/atuin/main/install.sh) - -atuin register -u -e -p -atuin import auto -atuin sync -``` - -### 使用活跃图 - -除了托管 Atuin 服务器外,还有一个服务可以用来生成你的 shell 历史记录使用活跃图!这个功能的灵感来自于 GitHub 的使用活跃图。 - -例如,这是我的: - -![](https://api.atuin.sh/img/ellie.png?token=0722830c382b42777bdb652da5b71efb61d8d387) - -如果你也想要,请在登陆你的同步服务器后,执行 - -``` -curl https://api.atuin.sh/enable -d $(cat ~/.local/share/atuin/session) -``` - -执行结果为你的活跃图 URL 地址。可以共享或嵌入这个 URL 地址,令牌(token)并不是加密的,只是用来防止被枚举攻击。 - -## 仅离线 (不同步) - -``` -bash <(curl https://raw.githubusercontent.com/ellie/atuin/main/install.sh) - -atuin import auto -``` - -## 安装 - -### 脚本 (推荐) - -安装脚本将帮助您完成设置,确保您的 shell 正确配置。 它还将使用以下方法之一,在可能的情况下首选系统包管理器(pacman、homebrew 等)。 - -``` -# 不要以root身份运行,如果需要的话,会要求root。 -bash <(curl https://raw.githubusercontent.com/ellie/atuin/main/install.sh) -``` - -然后可直接看 Shell 插件 - -### 通过 cargo - -最好使用 [rustup](https://rustup.rs/) 来设置 Rust 工具链,然后你就可以运行下面的命令: - -``` -cargo install atuin -``` - -然后可直接看 Shell 插件 - -### Homebrew - -``` -brew install atuin -``` - -然后可直接看 Shell 插件 - -### MacPorts - -Atuin 也可以在 [MacPorts](https://ports.macports.org/port/atuin/) 中找到 - -``` -sudo port install atuin -``` - -然后可直接看 Shell 插件 - -### Pacman - -Atuin 在 Arch Linux 的 [社区存储库](https://archlinux.org/packages/community/x86_64/atuin/) 中可用。 - -``` -pacman -S atuin -``` - -然后可直接看 Shell 插件 - -### 从源码编译安装 - -``` -git clone https://github.com/ellie/atuin.git -cd atuin/crates/atuin -cargo install --path . -``` - -然后可直接看 Shell 插件 - -## Shell 插件 - -安装二进制文件后,需要安装 shell 插件。 如果你使用的是脚本安装,那么这一切应该都会帮您完成! - -### zsh - -``` -echo 'eval "$(atuin init zsh)"' >> ~/.zshrc -``` - -或使用插件管理器: - -``` -zinit load ellie/atuin -``` - -### bash - -我们需要设置一些钩子(hooks), 所以首先需要安装 bash-preexec : - -``` -curl https://raw.githubusercontent.com/rcaloras/bash-preexec/master/bash-preexec.sh -o ~/.bash-preexec.sh -echo '[[ -f ~/.bash-preexec.sh ]] && source ~/.bash-preexec.sh' >> ~/.bashrc -``` - -然后设置 Atuin - -``` -echo 'eval "$(atuin init bash)"' >> ~/.bashrc -``` - -### fish - -添加 - -``` -atuin init fish | source -``` - -到 `~/.config/fish/config.fish` 文件中的 `is-interactive` 块中 - -### Fig - -通过 [Fig](https://fig.io) 可为 zsh, bash 或 fish 一键安装 `atuin` 脚本插件。 - - - -## ...这个名字是什么意思? - -Atuin 以 "The Great A'Tuin" 命名, 这是一只来自 Terry Pratchett 的 Discworld 系列书籍的巨龟。 - -[English]: ../../README.md -[简体中文]: ./README.md diff --git a/docs-i18n/zh-CN/config.md b/docs-i18n/zh-CN/config.md deleted file mode 100644 index 3aa63a9e..00000000 --- a/docs-i18n/zh-CN/config.md +++ /dev/null @@ -1,137 +0,0 @@ -# 配置 - -Atuin 维护两个配置文件,存储在 `~/.config/atuin/` 中。 我们将数据存储在 `~/.local/share/atuin` 中(除非被 XDG\_\* 覆盖)。 - -您可以通过设置更改配置目录的路径 `ATUIN_CONFIG_DIR`。 例如 - -``` -export ATUIN_CONFIG_DIR = /home/ellie/.atuin -``` - -## 客户端配置 - -``` -~/.config/atuin/config.toml -``` - -客户端运行在用户的机器上,除非你运行的是服务器,否则这就是你所关心的。 - -见 [config.toml](../../atuin-client/config.toml) 中的例子 - -### `dialect` - -这配置了 [stats](stats.md) 命令解析日期的方式。 它有两个可能的值 - -``` -dialect = "uk" -``` - -或者 - -``` -dialect = "us" -``` - -默认为 "us". - -### `auto_sync` - -配置登录时是否自动同步。默认为 true - -``` -auto_sync = true/false -``` - -### `sync_address` - -同步的服务器地址! 默认为 `https://api.atuin.sh` - -``` -sync_address = "https://api.atuin.sh" -``` - -### `sync_frequency` - -多长时间与服务器自动同步一次。这可以用一种"人类可读"的格式给出。例如,`10s`,`20m`,`1h`,等等。默认为 `1h` 。 - -如果设置为 `0`,Atuin将在每个命令之后进行同步。一些服务器可能有潜在的速率限制,这不会造成任何问题。 - -``` -sync_frequency = "1h" -``` - -### `db_path` - -Atuin SQlite数据库的路径。默认为 -`~/.local/share/atuin/history.db` - -``` -db_path = "~/.history.db" -``` - -### `key_path` - -Atuin加密密钥的路径。默认为 -`~/.local/share/atuin/key` - -``` -key = "~/.atuin-key" -``` - -### `session_path` - -Atuin服务器会话文件的路径。默认为 -`~/.local/share/atuin/session` 。 这本质上只是一个API令牌 - -``` -key = "~/.atuin-session" -``` - -### `search_mode` - -使用哪种搜索模式。Atuin 支持 "prefix"(前缀)、"fulltext"(全文) 和 "fuzzy"(模糊)搜索模式。前缀(prefix)搜索语法为 "query\*",全文(fulltext)搜索语法为 "\*query\*",而模糊搜索适用的搜索语法 [如下所述](#fuzzy-search-syntax) 。 - -默认配置为 "fuzzy" - -### `filter_mode` - -搜索时要使用的默认过滤器 - -| 模式 | 描述 | -|--------------- | --------------- | -| global (default) | 从所有主机、所有会话、所有目录中搜索历史记录 | -| host | 仅从该主机搜索历史记录 | -| session | 仅从当前会话中搜索历史记录 | -| directory | 仅从当前目录搜索历史记录| - -过滤模式仍然可以通过 ctrl-r 来切换 - - -``` -search_mode = "fulltext" -``` - -#### `fuzzy` 的搜索语法 - -`fuzzy` 搜索语法的基础是 [fzf 搜索语法](https://github.com/junegunn/fzf#search-syntax) 。 - -| 内容 | 匹配类型 | 描述 | -| --------- | -------------------------- | ------------------------------------ | -| `sbtrkt` | fuzzy-match | 匹配 `sbtrkt` 的项目 | -| `'wild` | exact-match (quoted) | 包含 `wild` 的项目 | -| `^music` | prefix-exact-match | 以 `music` 开头的项目 | -| `.mp3$` | suffix-exact-match | 以 `.mp3` 结尾的项目 | -| `!fire` | inverse-exact-match | 不包括 `fire` 的项目 | -| `!^music` | inverse-prefix-exact-match | 不以 `music` 开头的项目 | -| `!.mp3$` | inverse-suffix-exact-match | 不以 `.mp3` 结尾的项目 | - - -单个条形字符术语充当 OR 运算符。 例如,以下查询匹配以 `core` 开头并以 `go`、`rb` 或 `py` 结尾的条目。 - -``` -^core go$ | rb$ | py$ -``` - -## 服务端配置 - -`// TODO` diff --git a/docs-i18n/zh-CN/docker.md b/docs-i18n/zh-CN/docker.md deleted file mode 100644 index 64704679..00000000 --- a/docs-i18n/zh-CN/docker.md +++ /dev/null @@ -1,90 +0,0 @@ -# Docker - -Atuin 提供了一个 docker 镜像(image),可以更轻松地将服务器部署为容器(container)。 - -```sh -docker run -d -v "$USER/.config/atuin:/config" ghcr.io/ellie/atuin:latest server start -``` - -# Docker Compose - -使用已有的 docker 镜像(image)来托管你自己的 Atuin,可以使用提供的 docker-compose 文件来完成 - -在 docker-compose.yml 同级目录下创建一个 .env 文件,内容如下: - -``` -ATUIN_DB_USERNAME=atuin -# 填写你的密码 -ATUIN_DB_PASSWORD=really-insecure -``` - -创建 `docker-compose.yml` 文件: - -```yaml -version: '3.5' -services: - atuin: - restart: always - image: ghcr.io/ellie/atuin:main - command: server start - volumes: - - "./config:/config" - links: - - postgresql:db - ports: - - 8888:8888 - environment: - ATUIN_HOST: "0.0.0.0" - ATUIN_OPEN_REGISTRATION: "true" - ATUIN_DB_URI: postgres://$ATUIN_DB_USERNAME:$ATUIN_DB_PASSWORD@db/atuin - postgresql: - image: postgres:14 - restart: unless-stopped - volumes: # 不要删除索引数据库文件的永久存储空间! - - "./database:/var/lib/postgresql/data/" - environment: - POSTGRES_USER: $ATUIN_DB_USERNAME - POSTGRES_PASSWORD: $ATUIN_DB_PASSWORD - POSTGRES_DB: atuin -``` - -使用 `docker-compose` 启动服务: - -```sh -docker-compose up -d -``` - -## 使用 systemd 管理你的 atuin 服务器 - -以下 `systemd` 的配置文件用来管理你的 `docker-compose` 托管服务: - -``` -[Unit] -Description=Docker Compose Atuin Service -Requires=docker.service -After=docker.service - -[Service] -# Where the docker-compose file is located -WorkingDirectory=/srv/atuin-server -ExecStart=/usr/bin/docker-compose up -ExecStop=/usr/bin/docker-compose down -TimeoutStartSec=0 -Restart=on-failure -StartLimitBurst=3 - -[Install] -WantedBy=multi-user.target -``` - -启用服务: - -```sh -systemctl enable --now atuin -``` - -检查服务是否正常运行: - -```sh -systemctl status atuin -``` diff --git a/docs-i18n/zh-CN/import.md b/docs-i18n/zh-CN/import.md deleted file mode 100644 index c1f1d06d..00000000 --- a/docs-i18n/zh-CN/import.md +++ /dev/null @@ -1,25 +0,0 @@ -# `atuin import` - -Atuin 可以从您的“旧”历史文件中导入您的历史记录 - -`atuin import auto` 将尝试找出你的 shell(通过 \$SHELL)并运行正确的导入器 - -不幸的是,这些旧文件没有像 Atuin 那样存储尽可能多的信息,因此并非所有功能都可用于导入的数据。 - -# zsh - -``` -atuin import zsh -``` - -如果你设置了 HISTFILE,这应该会被选中!如果没有,可以尝试以下操作 - -``` -HISTFILE=/path/to/history/file atuin import zsh -``` - -这支持简单和扩展形式 - -# bash - -TODO diff --git a/docs-i18n/zh-CN/k8s.md b/docs-i18n/zh-CN/k8s.md deleted file mode 100644 index ce63aab1..00000000 --- a/docs-i18n/zh-CN/k8s.md +++ /dev/null @@ -1,195 +0,0 @@ -# Kubernetes - -你可以使用 Kubernetes 来托管你的 Atuin 服务器。 - -为数据库凭证创建 [`secrets.yaml`](../../k8s/secrets.yaml) 文件: - -```yaml -apiVersion: v1 -kind: Secret -metadata: - name: atuin-secrets -type: Opaque -stringData: - ATUIN_DB_USERNAME: atuin - ATUIN_DB_PASSWORD: seriously-insecure - ATUIN_HOST: "127.0.0.1" - ATUIN_PORT: "8888" - ATUIN_OPEN_REGISTRATION: "true" - ATUIN_DB_URI: "postgres://atuin:seriously-insecure@localhost/atuin" -immutable: true -``` - -为 Atuin 服务器创建 [`atuin.yaml`](../../k8s/atuin.yaml) 文件: - - -```yaml ---- -apiVersion: apps/v1 -kind: Deployment -metadata: - name: atuin -spec: - replicas: 1 - selector: - matchLabels: - io.kompose.service: atuin - template: - metadata: - labels: - io.kompose.service: atuin - spec: - containers: - - args: - - server - - start - env: - - name: ATUIN_DB_URI - valueFrom: - secretKeyRef: - name: atuin-secrets - key: ATUIN_DB_URI - optional: false - - name: ATUIN_HOST - value: 0.0.0.0 - - name: ATUIN_PORT - value: "8888" - - name: ATUIN_OPEN_REGISTRATION - value: "true" - image: ghcr.io/atuinsh/atuin:latest - name: atuin - ports: - - containerPort: 8888 - resources: - limits: - cpu: 250m - memory: 1Gi - requests: - cpu: 250m - memory: 1Gi - volumeMounts: - - mountPath: /config - name: atuin-claim0 - - name: postgresql - image: postgres:14 - ports: - - containerPort: 5432 - env: - - name: POSTGRES_DB - value: atuin - - name: POSTGRES_PASSWORD - valueFrom: - secretKeyRef: - name: atuin-secrets - key: ATUIN_DB_PASSWORD - optional: false - - name: POSTGRES_USER - valueFrom: - secretKeyRef: - name: atuin-secrets - key: ATUIN_DB_USERNAME - optional: false - resources: - limits: - cpu: 250m - memory: 1Gi - requests: - cpu: 250m - memory: 1Gi - volumeMounts: - - mountPath: /var/lib/postgresql/data/ - name: database - volumes: - - name: database - persistentVolumeClaim: - claimName: database - - name: atuin-claim0 - persistentVolumeClaim: - claimName: atuin-claim0 ---- -apiVersion: v1 -kind: Service -metadata: - labels: - io.kompose.service: atuin - name: atuin -spec: - type: NodePort - ports: - - name: "8888" - port: 8888 - nodePort: 30530 - selector: - io.kompose.service: atuin ---- -kind: PersistentVolume -apiVersion: v1 -metadata: - name: database-pv - labels: - app: database - type: local -spec: - storageClassName: manual - capacity: - storage: 300Mi - accessModes: - - ReadWriteOnce - hostPath: - path: "/Users/firstname.lastname/.kube/database" ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - labels: - io.kompose.service: database - name: database -spec: - storageClassName: manual - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 300Mi ---- -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - labels: - io.kompose.service: atuin-claim0 - name: atuin-claim0 -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 10Mi -``` - -最后,你可能想让 atuin 使用单独的命名空间(namespace),创建 [`namespace.yaml`](../../k8s/namespaces.yaml) 文件: - -```yaml -apiVersion: v1 -kind: Namespace -metadata: - name: atuin-namespace - labels: - name: atuin -``` - -在企业级安装部署时,你可能想要数据库内容永久存储在集群中,而不是在主机系统中。在上述配置中,`storageClassName` 配置为 `manual`,主机系统的挂载目录配置为 `/Users/firstname.lastname/.kube/database`,请注意,这些配置将会使得数据库内容存储在 kubernetes 集群外部中。 - -你还应该将 `secrets.yaml` 文件中的 `ATUIN_DB_PASSWORD` 和 `ATUIN_DB_URI` 修改为更安全的加密字符串。 - -Atuin 运行在主机系统的 `30530` 端口上。这是通过 `nodePort` 属性进行陪你的。Kubernetes 有一个严格规则,即不允许暴露小于 30000 的端口号。为了使客户端能够正常工作,你需要在你的 `config.toml` 文件中设置端口号,例如 `sync_address = "http://192.168.1.10:30530"`。 - -使用 `kubectl` 部署 Atuin 服务器: - -```shell - kubectl apply -f ./namespaces.yaml - kubectl apply -n atuin-namespace \ - -f ./secrets.yaml \ - -f ./atuin.yaml -``` - -上面示例同时也位于 atuin 仓库(repository)的 [k8s](../../k8s) 目录下。 diff --git a/docs-i18n/zh-CN/key-binding.md b/docs-i18n/zh-CN/key-binding.md deleted file mode 100644 index 54c68b37..00000000 --- a/docs-i18n/zh-CN/key-binding.md +++ /dev/null @@ -1,48 +0,0 @@ -# 键位绑定 - -默认情况下, Atuin 将会重新绑定 Ctrl-r 和 `up` 键。如果你不想使用默认绑定,请在调用 `atuin init` 之前设置 ATUIN_NOBIND - -例如: - -``` -export ATUIN_NOBIND="true" -eval "$(atuin init zsh)" -``` - -如果需要,你可以在调用 `atuin init` 之后对 Atuin 重新进行键绑定 - -# zsh - -Atuin 定义了 ZLE 部件 "atuin-search" - -``` -export ATUIN_NOBIND="true" -eval "$(atuin init zsh)" - -bindkey '^r' atuin-search - -# 取决于终端模式 -bindkey '^[[A' atuin-search -bindkey '^[OA' atuin-search -``` - -# bash - -``` -export ATUIN_NOBIND="true" -eval "$(atuin init bash)" - -# 绑定到 ctrl-r, 也可以在这里添加任何其他你想要的绑定方式 -bind -x '"\C-r": __atuin_history' -``` - -# fish - -``` -set -gx ATUIN_NOBIND "true" -atuin init fish | source - -# 在 normal 和 insert 模式下绑定到 ctrl-r,你也可以在此处添加其他键位绑定 -bind \cr _atuin_search -bind -M insert \cr _atuin_search -``` diff --git a/docs-i18n/zh-CN/list.md b/docs-i18n/zh-CN/list.md deleted file mode 100644 index fe03529f..00000000 --- a/docs-i18n/zh-CN/list.md +++ /dev/null @@ -1,11 +0,0 @@ -# 历史记录列表 - -``` -atuin history list -``` - -| 参数 | 描述 | -| -------------- | ----------------------------------------------------- | -| `--cwd/-c` | 要列出历史记录的目录(默认:所有目录) | -| `--session/-s` | 只对当前会话启用列表历史(默认:false) | -| `--human` | 对时间戳和持续时间使用人类可读的格式(默认:false)。 | diff --git a/docs-i18n/zh-CN/search.md b/docs-i18n/zh-CN/search.md deleted file mode 100644 index 24e320d5..00000000 --- a/docs-i18n/zh-CN/search.md +++ /dev/null @@ -1,37 +0,0 @@ -# `atuin search` - -``` -atuin search -``` - -Atuin 搜索还支持带有 `*` 或 `%` 字符的通配符。 默认情况下,会执行前缀搜索(即,所有查询都会自动附加通配符)。 - -| 参数 | 描述 | -| ------------------ | ----------------------------------------------------- | -| `--cwd/-c` | 列出历史记录的目录(默认:所有目录) | -| `--exclude-cwd` | 不包括在此目录中运行的命令(默认值:none) | -| `--exit/-e` | 按退出代码过滤(默认:none) | -| `--exclude-exit` | 不包括以该值退出的命令(默认值:none) | -| `--before` | 仅包括在此时间之前运行的命令(默认值:none) | -| `--after` | 仅包含在此时间之后运行的命令(默认值:none) | -| `--interactive/-i` | 打开交互式搜索 UI(默认值:false) | -| `--human` | 对时间戳和持续时间使用人类可读的格式(默认值:false) | - -## 举例 - -``` -# 打开交互式搜索 TUI -atuin search -i - -# 打开预装了查询的交互式搜索 TUI -atuin search -i atuin - -# 搜索所有以 cargo 开头且成功退出的命令。 -atuin search --exit 0 cargo - -# 从当前目录中搜索所有在2021年4月1日之前运行且失败的命令。 -atuin search --exclude-exit 0 --before 01/04/2021 --cwd . - -# 搜索所有以 cargo 开头,成功退出且是在昨天下午3点之后运行的命令。 -atuin search --exit 0 --after "yesterday 3pm" cargo -``` diff --git a/docs-i18n/zh-CN/server.md b/docs-i18n/zh-CN/server.md deleted file mode 100644 index 4cb39df9..00000000 --- a/docs-i18n/zh-CN/server.md +++ /dev/null @@ -1,75 +0,0 @@ -# `atuin server` - -Atuin 允许您运行自己的同步服务器,以防您不想使用我(ellie)托管的服务器 :) - -目前只有一个子命令,`atuin server start`,它将启动 Atuin http 同步服务器。 - -``` -USAGE: - atuin server start [OPTIONS] - -FLAGS: - --help Prints help information - -V, --version Prints version information - -OPTIONS: - -h, --host - -p, --port -``` - -## 配置 - -服务器的配置与客户端的配置是分开的,即使它们是相同的二进制文件。服务器配置可以在 `~/.config/atuin/server.toml` 找到。 - -它看起来像这样: - -```toml -host = "0.0.0.0" -port = 8888 -open_registration = true -db_uri="postgres://user:password@hostname/database" -``` - -另外,配置也可以用环境变量来提供。 - -```sh -ATUIN_HOST="0.0.0.0" -ATUIN_PORT=8888 -ATUIN_OPEN_REGISTRATION=true -ATUIN_DB_URI="postgres://user:password@hostname/database" -``` - -### host - -Atuin 服务器应该监听的地址 - -默认为 `127.0.0.1`. - -### port - -Atuin 服务器应该监听的端口 - -默认为 `8888`. - -### open_registration - -如果为 `true` ,atuin 将接受新用户注册。如果您不希望其他人能够使用您的服务器,请在创建自己的账号后将此设置为 `false` - -默认为 `false`. - -### db_uri - -一个有效的 postgres URI, 用户和历史记录数据将被保存到其中。 - -### path - -path 指的是给 server 添加的路由前缀。值为空字符串将不会添加路由前缀。 - -默认为 `""` - -## 容器部署说明 - -你可以在容器中部署自己的 atuin 服务器: - -* 有关 docker 配置的示例,请参考 [docker](docker.md)。 -* 有关 kubernetes 配置的示例,请参考 [k8s](k8s.md)。 diff --git a/docs-i18n/zh-CN/shell-completions.md b/docs-i18n/zh-CN/shell-completions.md deleted file mode 100644 index 0979dcb0..00000000 --- a/docs-i18n/zh-CN/shell-completions.md +++ /dev/null @@ -1,19 +0,0 @@ -# `atuin gen-completions` - -Atuin 的 [Shell 补全](https://en.wikipedia.org/wiki/Command-line_completion) 可以通过 `gen-completions` 子命令指定输出目录和所需的 shell 来生成。 - -``` -$ atuin gen-completions --shell bash --out-dir $HOME - -Shell completion for BASH is generated in "/home/user" -``` - -`--shell` 参数的可能值如下: - -- `bash` -- `fish` -- `zsh` -- `powershell` -- `elvish` - -此外, 请参阅 [支持的 Shells](./README.md#支持的-Shells). diff --git a/docs-i18n/zh-CN/stats.md b/docs-i18n/zh-CN/stats.md deleted file mode 100644 index 2bf557ba..00000000 --- a/docs-i18n/zh-CN/stats.md +++ /dev/null @@ -1,35 +0,0 @@ -# `atuin stats` - -Atuin 还可以根据你的历史记录进行计算统计数据 - 目前这只是一个小的基本功能,但更多功能即将推出 - -``` -$ atuin stats day last friday - -+---------------------+------------+ -| Statistic | Value | -+---------------------+------------+ -| Most used command | git status | -+---------------------+------------+ -| Commands ran | 450 | -+---------------------+------------+ -| Unique commands ran | 213 | -+---------------------+------------+ - -$ atuin stats day 01/01/21 # 也接受绝对日期 -``` - -它还可以计算所有已知历史记录的统计数据。 - -``` -$ atuin stats all - -+---------------------+-------+ -| Statistic | Value | -+---------------------+-------+ -| Most used command | ls | -+---------------------+-------+ -| Commands ran | 8190 | -+---------------------+-------+ -| Unique commands ran | 2996 | -+---------------------+-------+ -``` diff --git a/docs-i18n/zh-CN/sync.md b/docs-i18n/zh-CN/sync.md deleted file mode 100644 index 2fd451d8..00000000 --- a/docs-i18n/zh-CN/sync.md +++ /dev/null @@ -1,51 +0,0 @@ -# `atuin sync` - -Atuin 可以将您的历史记录备份到服务器,并使用它来确保多台机器具有相同的 shell 历史记录。 这都是端到端加密的,因此服务器操作员_永远_看不到您的数据! - -任何人都可以托管一个服务器(尝试 `atuin server start`,更多文档将在后面介绍),但我(ellie)在 https://api.atuin.sh 上托管了一个。这是默认的服务器地址,可以在 [配置](config.md) 中更改。 同样,我_不能_看到您的数据,也不想。 - -## 同步频率 - -除非另有配置,否则同步将自动执行。同步的频率可在 [配置](config.md) 中配置。 - -## 同步 - -你可以通过 `atuin sync` 来手动触发同步 - -## 注册 - -注册一个同步账号 - -``` -atuin register -u -e -p -``` - -用户名(USERNAME)必须是唯一的,电子邮件(EMAIL)仅用于重要通知(安全漏洞、服务更改等) - -注册后,意味着你也已经登录了 :) 同步应该从这里自动发生! - -## 密钥 - -由于你的数据是加密的, Atuin 将为你生成一个密钥。它被存储在 Atuin 的数据目录里( Linux 上为 `~/.local/share/atuin`) - -你也可以通过以下方式获得它 - -``` -atuin key -``` - -千万不要跟任何人分享这个! - -## 登录 - -如果你想登录到一个新的机器上,你需要你的加密密钥(`atuin key`)。 - -``` -atuin login -u -p -k -``` - -## 登出 - -``` -atuin logout -``` -- cgit v1.3.1