生産性を上げる為に使いこなしたいコマンドラインアプリケーション集

先日の合宿で、大富豪をした時にKYな発言をし過ぎてしまい、本性がバレてしまった前田です。
少し勝ちが続いたのでつい煽り的な発言をしてしまったのですが、自分が得意な分野になるとついつい調子に乗ってしまう性格みたいですね。
嫌われないように気をつけます。

さて、今回は仕事をする上で生産性を上げる為に使っていきたいコマンドラインアプリケーション(コンソールアプリケーション)を集めてみました。

peco

https://github.com/peco/peco

peco でググったらたくさん出てきますが、超絶便利なコマンドです。
例えば下記のようなコマンドで、ホームディレクトリ以下の2階層下までのディレクトリを全て検索して、インタラクティブモード(対話モード)で検索しながら行きたいディレクトリを絞り込んで直接指定したディレクトリに移動することができます。

1
cd "$( ls -1d $HOME/*/* | peco )"

# 現在のカレントディレクトリから2階層下までを検索するのは下記コマンド。
cd "$( ls -1d ./*/* | peco )"

pecoコマンドをパイプで繋いで、スニペットをファイル毎にジャンル分けしておいて、ファイル選択 → スニペット選択 → クリップボードにコピー なども実現できます。
*ホームディレクトリ以下に peco/snippet_git.txt、peco/snippet_rails.txt などを準備しておく

1
cat "$(ls -1d ~/peco/* | peco )" | peco | tr -d '\n' | pbcopy

また他にもよく使用するディレクトリをブックマークしておいてすぐに移動できるようにしたり、Control + Rをキーバインドしてコマンド履歴をインタラクティブモードで検索したり、など応用が凄くありそうです。
また、vimを使う人は下記のキーバインド設定をすると更にいい感じになります。
vimっぽいキーバインド

その他参考URL
pecoの基礎の基礎
ターミナルのディレクトリ移動を高速化する
bash/zsh のヒストリを peco で便利にする
よく作業するディレクトリをpecoで選択して移動するコマンド
peco/percolでCUIなスニペットツールを作ってみる

hub

https://github.com/github/hub

GitHubユーザーのための支援ツールです。

ダウンロード後、 git コマンドで hub を使用出来るように .bashrc.bash_profile にエイリアスを加えたら準備完了です。

1
eval "$(hub alias -s)"

便利なコマンド

  • GitHubページを開く
    レポジトリに移動して開きたいブランチにチェックアウトして

    1
    git browse
  • ローカルでプルリクエストを作る

    1
    git pull-request
  • 比較する(ブラウザが開きます)

    1
    git compare 比較したいブランチ

参考
GitHubユーザーのためのhubコマンド
GitHubを使ってるならhubコマンドを使うべし

ag

https://github.com/ggreer/the_silver_searcher

検索したいコードを簡単に高速で検索出来るコマンドです。

下記コマンドでカレントディレクトリ以下を検索します。

1
ag target_word

非常にシンプルですね!

参考
the silver searcherのファイル指定オプション
ag(grepの早いやつ)を入れてみた

私はvimと組み合わせたりなどはやっていませんが、便利そうですね。
agでvimの検索関連を高速化

その他、あったら便利かもしれないちょっとしたシェルスクリプト達

tab

https://gist.github.com/bobthecow/757788
tabコマンドで、現在と同じディレクトリを別タブで開くシェルスクリプトです。

bashkmarks

https://github.com/huyng/bashmarks
よく使うディレクトリをブックマークしておき、簡単にブックマークしたディレクトリに移動できるコマンドです。
pecoがあるので必要ないかもしれませんが。。

cdf

http://brettterpstra.com/2013/02/09/quick-tip-jumping-to-the-finder-location-in-terminal/
Finderで開いているディレクトリに、コマンドラインで移動出来るます。
Finderでディレクトリを探して、コマンドライン上でそのディレクトリに移動したい、という時に使えるかもしれません。

まとめ

いかがでしょうか?
まだまだ他にも未知の良いコマンドがたくさんあると思います。
個人的にはこれらのコマンドラインアプリケーションを組み合わせて自分なりのカスタムシェルスクリプトを作成してもっと使いやすくしていきたいなと思っています。

このエントリーをはてなブックマークに追加