ウェブサイト検索

Bashhubを使ってどこからでもターミナルの履歴にアクセスする


ご存知の通り、シェルで実行したコマンドは .bash_history ファイルに保存され、history コマンドを使うか、上下の矢印キーを使うか、CTRL+R キーの組み合わせでリバース検索を行うことで、いつでも確認することができます。しかし、これらは同じマシンからしか閲覧、アクセス、再実行することはできません。ネットワーク上の別のシステムからターミナルの履歴にアクセスしたい場合はどうでしょうか?問題ありません!ここで役立つのが "Bashhub" ユーティリティです。Bashhub は、すべてのコマンドを保存し、どこからでもアクセスできるウェブサービスです。Bashhub はすべてのセッションやシステムで入力されたすべてのコマンドを保存するため、どこからでもアクセス可能です。簡単に言えば、あなたの BASH 履歴全体がクラウド上で利用可能になり、履歴全体がインデックス化され、検索可能になります!Bashhub は完全に無料かつオープンソースです。

すべてのコマンドは、LUKSを使用したストレージレベルの暗号化で保護されたBashhubのデータベースに保存されます。Bashhubは、それぞれのユーザーに対して一意の識別トークンを生成します。このトークンは、コマンドAPIでユーザーに代わって操作を行うために必須です。ユーザーに代わって記録されたコマンドは、そのユーザーの認証トークンを使用した場合にのみアクセス可能です。現時点では、これらのコマンドを共有する方法はなく、公開されることもありません。また、Bashhubでは、ユーザーのパスワードなどの機密情報を含む一部のコマンドを無視することができます。Bashhubによる記録を完全にオフにするために、そのようなコマンドを安全に記録対象から除外することが可能です。

Bashhubをインストールする

システムに Python 2.7 がインストールされていることを確認してください。Python 2.7 はほとんどの Linux ディストリビューションのデフォルトリポジトリで利用可能なので、ディストリビューションのパッケージマネージャを使用してインストールできます。たとえば、Debian およびその派生ディストリビューションで Python 2.7 をインストールするには、次のコマンドを実行します。

$ sudo apt-get install python2.7

Python 2.7 をインストールした後、使用している SHELL に応じて以下のいずれかのコマンドを実行してください。

もしあなたのシェルがBASHの場合、次のコマンドを入力してください:

$ curl -OL https://bashhub.com/setup && bash setup

<strong>Zsh</strong>の場合:

$ curl -OL https://bashhub.com/setup && zsh setup

数分後、すでにアカウントを持っていない場合は、新しいアカウントを作成するよう求められます。有効なメールID、ユーザー名、パスワード、およびシステムの名前を入力してください。

What's your email? sk@senthilkumar.com
What username would you like? sk
What password?

Email: sk@senthilkumar.com Username: sk
Are these correct? [Y/n] y
Registered new user sk

What do you want to call this system? For example Home, File Server, ect. [ubuntuserver]: 
Registered a new system ubuntuserver
Should be good to go! Please close and restart your terminal session.

完了!あなたのアカウントはBashhubで作成されました。あなたのプロフィールには https://bashhub.com/<your-user-name> でアクセスできます。Bashhubは、いくつかのスクリプトとPython仮想環境を含む.bashhubというディレクトリをあなたの$HOMEディレクトリに作成します。

既存のユーザーであれば、「新しいユーザーですか?」と聞かれたときに「n」と入力し、登録済みのメールアドレスとパスワードを入力してください。

ターミナルを閉じて再起動すると、ターミナルの履歴の記録を開始できます。

Bashhubを使ってどこからでもターミナルの履歴にアクセスする

さて、ランダムなコマンドを実行して、本当に動作するか確認してください。

私は次のコマンドを実行しました:

clear
pwd
uname -a
ls -l
touch test.txt

さて、私が入力したコマンドを確認する時です。

それを行うには、次を実行してください:

$ bh

サンプル出力:

Bashhubの動作

このコマンドは、デフォルトで最後の100件のコマンドを表示します。デフォルトの制限は「-n」フラグを使うことで上書きできます。

最後の10個のコマンドだけを表示するには、次を実行してください:

$ bh -n 10

特定の用語を使用してコマンドを表示する

特定のコマンドも、例えば「ls」のように特定の用語を使って表示することができます。

$ bh -n 10 "ls"

特定のコマンドを検索語で検索し、それを同時に実行したい場合は、以下のように "-i" フラグを使用してください。

$ bh -i "ls"

コマンドを複数回実行している場合は、リストから実行したいコマンドを選択し、Enterキーを押してください。

上にご覧の通り、私は「ls」コマンドを三回実行しました。

ディレクトリで実行されたコマンドの一覧を表示する

現在の作業ディレクトリで実行した最後のコマンドの一覧を表示するには、「-d」フラグを使用します。

$ bh -d

Bashhubは、最近使用したコマンドを表示します。

インタラクティブ検索

Bashhubのもう一つの注目すべき機能はインタラクティブ検索です。これはリバース検索に似ており、bh -i または ctrl+b キーを押すことで呼び出すことができます。

インタラクティブ検索を行いましょう。

$ bh -i
(bashhub-i-search): uname

上記のコマンドは、「uname」文字列を含むコマンドを検索します。以下に示すように、「-d」フラグを使用して、現在の作業ディレクトリで対話的に検索を行うことができます。

$ bh -i -d
(bashhub-i-search): ls

コマンドの詳細を表示する

インタラクティブ検索から、コマンドの詳細情報も確認できます。

最初にインタラクティブ検索を起動します:

$ bh -i

次に、リストからコマンドを選択し、選択したコマンドの詳細を表示するには「i」キーまたは「スペースバー」キーを押してください。

コマンドを削除

Bashhubでは、Bashhubデータベースから任意のコマンドをいつでも削除することができます。そのためには、インタラクティブ検索を起動してください:

$ bh -i "ls"

削除したいコマンドを選択し、キーボードの「Backspace」キーまたは「Delete」キーを押してください。

録音から特定のコマンドを無視する

これはBashhubユーティリティのもう一つの便利な機能です。ユーザー名やパスワードなどの機密情報を含む特定のコマンドがbashhubに記録されるのを防ぐことができます。

そうするには、コマンドの末尾に#ignoreを追加するだけです。

例:

$ uname -r #ignore

上記のコマンド「uname -r」は記録されません。既に履歴をスペース無視に設定している場合、コマンドの先頭にスペースを付けて実行するとBashはそのコマンドを保存しません。その場合、「#ignore」を使用する必要はありません。

録音コマンドを無効にする

もしBashhubにコマンドを記録させたい場合は、次のコマンドを実行して有効にできます:

$ bashhub off

それをオンにするまで、コマンドはこれ以上記録されません。

これがデフォルトで現在のシェルセッションにのみ影響することを覚えておいてください。すべてのセッションの記録をグローバルに無効にするには、次のコマンドを実行してください:

$ bashhub off --global

Bashhub の記録を再度オンにするには、次を実行してください:

$ bashhub on

Bashhubを更新

Bashhubを更新するには、インストールコマンドを再実行してください。あるいは、"bashhub update"コマンドを実行して更新することもできます。

別のシステムからBashhubにアクセスする

ご注意ください 同じシステム上で「bh」を実行する必要はありません。すべてのコマンドはBashhubのデータベースに保存されるため、任意のシステムから端末の履歴を確認できます。システムにBashhubクライアントをインストールし、登録済みのメールIDとパスワードでログインしていることを確認してください。

Are you a new user? [Y/n] n
Please enter your bashhub credentials
Username: sk
Password:

ユーザー統計を確認する

$ bashhub status

サンプル出力:

=== Bashhub Status
https://bashhub.com/sk
Total Commands: 21
Total Sessions: 1
Total Systems: 1
===
Session PID 1154 Started 2 hours ago
Commands In Session: 21
Commands Today: 21

Bashhubをアンインストールする

プライバシーとセキュリティへの影響が心配な場合、Bashhubは適していません。システムから次のディレクトリを削除することでアンインストールできます。

$ rm -r ~/.bashhub

詳細については、ヘルプセクションを参照してください:

$ bashhub 
Usage: bashhub [OPTIONS] COMMAND [ARGS]...

Bashhub command line client

Options:
 -V, --version Display version
 -h, --help Show this message and exit.

Commands:
 filter Check if a command is filtered from bashhub.
 help Show this message and exit
 off Turn off saving commands to Bashhub.
 on Turn on saving commands to Bashhub.
 save Save a command to Bashhub
 setup Run Bashhub user and system setup
 status Stats for this session and user
 update Update your Bashhub installation
 util Misc utils used by Bashhub
 version Display version

リソース:

  • Bashhub GitHub リポジトリ