👌

令和のコマンド履歴はコイツで見よう!「Atuin」の紹介

2024/12/19に公開

👋 はじめに

コマンド履歴と言えば、historyコマンドやCtrl+Rでの検索が一般的ですが、より高度な履歴管理を実現するツールとして「Atuin」を紹介します。私自身も導入してからコマンドの履歴検索などが曖昧な記憶でもリッチなUIから検索できて、作業が効率的になった気がするので、気になったら導入してみてはいかがでしょうか。

🐢 Atuinとは

Atuinは、シェルの履歴をより強力で使いやすくするためのツールです。シェルの履歴を検索したり、統計情報を表示したり、私は使用してませんが同期機能を利用して複数のデバイス間で履歴を共有できたりもします。

terminal

Repository
https://github.com/atuinsh/atuin

Docs
https://docs.atuin.sh/

言語としてはRustで書かれています。OSSで開発自体も2024/12/19現在はリポジトリを見る限り活発に行われているみたいです。

📥 インストール方法

Atuinのインストール方法は公式ドキュメントに詳細が記載されていますが、以下は一般的なインストール手順です。

  1. Rustのツールチェインをインストールします(もしまだインストールされていない場合)。

    curl --proto '=https' --tlsv1.2 -LsSf https://setup.atuin.sh | sh
    

    もしツールを指定してインストールしたい場合は、以下からインストールできます。
    https://docs.atuin.sh/guide/installation/#manual-installation

    基本的には上記のインストールのみで十分な機能が活用できます。同期などをしたい場合は以下の2の設定が必要です。

  2. (同期の設定)

    atuin register -u <USERNAME> -e <EMAIL>
    atuin import auto
    atuin sync
    

🎮 基本的な使い方

🔍 履歴の検索

Atuinではシェル履歴を簡単に検索できます。
基本的には上矢印キーを押下して、TUIが開くので、そこで検索ワードを入力すれば過去のコマンドが検索できます。(デフォルトの上矢印キーが気に食わない方は後述のキーバインディングによって変更できます。)Ctrl+Rを打つことで、「GLOBAL,HOST,SESSION,DIRECTORY」のように履歴検索の範囲を指定できます。これによって、最近のコマンドに絞ったり、全部のコマンドに絞ったりできるので検索から見つけるまでが早くなります。enterを押すことで実行、tabを押すことでそのコマンドの入力まで(実行はされない)がterminalに反映されます。

また、直接コマンドを使用して検索をするのもできますが私自身あまり使っていないです。

atuin search <検索ワード>

📊 統計情報の表示

TUIを開いてからデフォルトではCtrl+Oでそのコマンドの統計情報を表示することができたりします。例えば、lsコマンドの統計情報を以下のようにみることできます。「なんか最近よくこのコマンド使ってんなー」みたいなものがあれば見たりして、aliasとして設定する参考になると思います。

stats1

また以下のコマンドで、よく使うコマンドなどの統計情報を表示できたりします。

atuin stats

stats2

この辺はドキュメントにも色々載っているので、凝った検索などしたい人は参考になると思います。
https://docs.atuin.sh/reference/stats/

🔄 同期機能

私は使っていませんが、Atuinの同期機能を利用することで、複数のデバイス間で履歴を共有できます。以下のコマンドで同期を開始します。

atuin sync

同期は複数デバイスで開発をする必要がある人などはユースケースはあるかもですが、そこまで同じ履歴を取得したいかといえば、そのような人は少ないような気もしますね...。

https://docs.atuin.sh/reference/sync/

⚙️ 便利な設定・カスタマイズ

⌨️ キーバインドのカスタマイズ

Atuinのキーバインドはカスタマイズ可能です。以下の設定ファイルを編集して、自分好みのキーバインドに変更できます。私自身あまりカスタマイズしていませんが、凝った設定をしたい方はしてみても良いかと思います。

~/.config/atuin/config.toml

https://docs.atuin.sh/configuration/config

例えばvimに使い慣れている方は、vimモードにできたりもします。

https://docs.atuin.sh/configuration/config/#vim

また上矢印を無効にしたい場合も制御することが可能です。

https://docs.atuin.sh/configuration/key-binding/#disable-up-arrow

🎯 検索設定

履歴の検索設定もカスタマイズ可能です。

  • prefix
  • fulltext
  • fuzzy
  • skim

など様々な検索設定が可能も指定できたりします。

https://docs.atuin.sh/configuration/config/#search_mode

📝 まとめ

Atuinはシェルの履歴管理を一段と便利にするツールです。強力な検索機能や統計表示、同期機能により、シェルの履歴を効率的に管理できます。カスタマイズも豊富で、自分の使い方に合わせて最適化できます。ぜひ試してみてください。

Discussion