MacやLinuxを有効活用する上でシェルコマンドに関する知識は欠かすことができません。とはいえあまり使用頻度が高くなく、たまに使用する程度だと使い方を忘れてその都度ググってしまうという方も多いことでしょう。
本日紹介する「BORG」はこのような悩みを軽減することができる、シェルコマンド専用のサーチエンジンです。わざわざブラウザを起動することなく、ターミナル内で素早く目的の操作をさがしだすことができるのが特徴です。
以下実際の使用方法を説明します。
インストール方法
BorgはGo言語で作られたツールなのでGoの実行環境が準備できているならば「go get」によってインストールすることができます。
go get github.com/crufter/borg
またビルド用のシェルスクリプトを使用することもできます(Linuxの場合)
wget https://github.com/crufter/borg/blob/master/builds/borg_linux_amd64\?raw\=true -O /usr/local/bin/borg chmod 755 /usr/local/bin/borg
その他のプラットフォーム向けのビルド済み実行ファイルが必要な場合、以下のURLカラ適切なファイルをダウンロードしてください。
https://github.com/crufter/borg/tree/master/builds
使用方法
Borgに検索したい文字を引数として与えれば結果が表示されます。例えばディレクトリ内に含まれるファイル一覧を取得したい場合、「borg "list all files in dir"」のように実行します。
$ borg "list all files in dir" (1) create list of all files in every subdirectories in bash [11] find . -type f -exec md5 {} \; [12] #!/bin/sh DIR=${1:-`pwd`} SPACING=${2:-|} cd $DIR for x in * ; do [ -d "$DIR/$x" ] && echo "$SPACING\`-{$x" && $0 "$DIR/$x" "$SPACING " || \ echo "$SPACING $x : MD5=" && md5sum "$DIR/$x" done (2) Bash: How to list only files? [21] find . -maxdepth 1 -type f [22] ls -l | egrep -v '^d' ls -l | grep -v '^d' [23] find * -maxdepth 0 -type f # find -L * ... includes symlinks to files - fls f # list all files in current dir. fls d -tA ~ # list dirs. in home dir., including hidden ones, most recent first fls f^l /usr/local/bin/c* # List matches that are files, but not (^) symlinks (l) - [sudo] npm install fls -g [24] find . -maxdepth 1 -type f|ls -lt|less
findやシェルスクリプト、lsとgrepの組み合わせ等、いろいろな回答例が表示されていることがわかります。ここで記号の意味は以下の通りです。
- ()は質問に対するヒットを表す
- []は可能性のある解決策を表す
- []の下の...はさらに表示する内容が存在することを表す
- -は、同じ情報源からの抽出された別のコード例を表す
クライアントはborg.crufter.comに接続しますが、サーバーを自分で設置することも可能です。詳細はdaemonディレクトリ以下を確認してください。
また以下のフラグをサポートしています
-f (= false) Print full results, ie. no more '...' -h (= "borg.crufter.com") Server to connect to -l (= 5) Result list limit. Defaults to 5 -p (= false) Private search. Your search won't leave a trace. Pinky promise. Don't use this all the time if you want to see the search result relevancy improved
まとめ
記事執筆時Borgはまだ開発の初期段階とされ、今後数週間のうちに検索結果の関連性の改善や、インターフェイス、その他機能の追加等が行われることが予告されています。
シェルコマンドの使い方を毎回検索するのがめんどくさいと思っている方は使用してみてはいかがでしょうか。