Terminalのコマンドの履歴表示をAtuinに変える
Termnialでbashなどを使用している際、コマンドの実行履歴は通常はhistoryコマンド等を使うと思います。
historyの代わりにAtuinというツールを使うと実行履歴の表示が便利になります。
以下がAtuinの履歴表示イメージです。
Atuinの特徴
- ↑キーで起動
- 好きな履歴をカーソルで選んでEnterで実行
- 好きな履歴をカーソルで選んでTABでコマンドラインを編集し、実行
- 履歴を検索して絞り込み
- 複数のホスト上で履歴を共有*
*一番の特徴である、複数のホスト上での履歴共有はなぜか私の環境では動いていません…。
インストール
Macの場合
Macの場合はbrewでインストールできます。
brew install atuin
その後、~/.zshrc
にatuinの設定を読み込む処理を追加します。
echo 'eval "$(atuin init zsh)"' >> ~/.zshrc
Terminalを起動し直せばAtuinが使えるようになっています。
Ubuntu + bashの場合
ble.shをインストール
bashの場合、ble.shと一緒に使わないと履歴が一部表示されなかったりしました。まずはble.shのインストールをします。
rootではなく個人アカウントで実行。
git clone --recursive --depth 1 --shallow-submodules https://github.com/akinomyoga/ble.sh.git
make -C ble.sh install PREFIX=~/.local
echo 'source ~/.local/share/blesh/ble.sh' >> ~/.bashrc
autinをインストール
rootではなく個人アカウントで実行。
bash <(curl https://raw.githubusercontent.com/atuinsh/atuin/main/install.sh)
Terminalを起動し直せばAtuinが使えるようになっています。
履歴共有設定
履歴を複数マシンで共有する際には、atuin.shのアカウントを作成してログインしておく必要があります。
一台目のマシン
アカウントの作成をします。
atuin register -u <USERNAME> -e <EMAIL>
パスワードを聞かれるので入力します。
続いて同期の設定をします。
atuin import auto
atuin sync
二代目以後のマシン
atuin.shにログインします。
atuin login
アカウント、パスワードに加え、keyを聞かれるので入力します。keyは一台目のマシン、もしくは既にlogin済みの他のマシンで以下のコマンドを実行すると得られます。
# 既にatuin.shにログイン済みのマシンで実行する
atuin key
続いて同期の設定をします。
atuin import auto
atuin sync
簡単な使い方
履歴を選んで実行
コマンドプロンプト上でCTRL+R
または↑
キーを押すと以下の履歴画面がTerminalいっぱいに表示されます。
緑色または赤色の時間はコマンドの実行にかかった時間です。緑はコマンドが正常終了、赤は異常終了したことを示しています。青の時間はコマンドの実行時刻を示しています。
左端の>
を↑
や↓
で目的の履歴まで移動し、Enter
を押すとそのコマンドが実行されます。
Enter
の代わりにTAB
を押すと即時には実効せずに、コマンドプロンプト上に選択したコマンドラインが表示されます。コマンドラインのパラメータを変更して実行したい際に便利です。
なお、左端にある1-9の数字は、LinuxならALT + 数字
, MacならOption + 数字
を押すとその行のコマンドを実行できるらしいのですが、私の環境では何故か動きませんでした。
履歴の検索
下の検索窓にキーワードを入力すると、そのキーワードで履歴を絞り込んで表示できます。以下はdocker
で検索した例です。
この検索は曖昧検索となっており、以下のようにdcker
とスペルミスしてもちゃんとdockerを検索してくれます。検索したいコマンドがあやふやでも検索できるので便利です。
曖昧検索をしたくない場合は頭にシングルクォートを付けて'docker
のようにすると、正確にキーワードとマッチした履歴のみ表示します。
表示モード
履歴画面の左下にある[ HOST ]
は表示がHOSTモードであることを示しています。モードには以下の種類があります。
モード | 意味 |
---|---|
GLOBAL | 全てのホストの履歴を統合して表示する。(私の環境では動いていない…) |
HOST | そのHOST上の履歴を統合して表示する。 |
SESSION | そのTerminalで実行した履歴のみを表示する。 |
DIRECTORY | カレントディレクトリ上で実行した履歴のみを表示する。 |
各モードは履歴画面でCTRL + R
を押すことで切り替えられます。起動時は[ GLOBAL ]
ですが、設定ファイルで変更可能です。
カスタマイズ
~/.config/atuin/config.toml
の内容を編集することでカスタマイズが可能です。設定内容は下記ページを参照してください。
おすすめ設定
show_preview
をtrueに設定します。
show_preview = true
すると以下のように画面の下にコマンドラインのプレビューが表示されます。履歴上でコマンドラインが長く、Terminalをはみ出してしまう場合にプレビュー上で全体を確認できて便利です。
Discussion