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.7Python 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 -dBashhubは、最近使用したコマンドを表示します。
インタラクティブ検索
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 --globalBashhub の記録を再度オンにするには、次を実行してください:
$ bashhub onBashhubを更新
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: 21Bashhubをアンインストールする
プライバシーとセキュリティへの影響が心配な場合、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 リポジトリ



