生産性を上げる為に使いこなしたいコマンドラインアプリケーション集
先日の合宿で、大富豪をした時にKYな発言をし過ぎてしまい、本性がバレてしまった前田です。
少し勝ちが続いたのでつい煽り的な発言をしてしまったのですが、自分が得意な分野になるとついつい調子に乗ってしまう性格みたいですね。
嫌われないように気をつけます。
さて、今回は仕事をする上で生産性を上げる為に使っていきたいコマンドラインアプリケーション(コンソールアプリケーション)を集めてみました。
peco
peco
でググったらたくさん出てきますが、超絶便利なコマンドです。
例えば下記のようなコマンドで、ホームディレクトリ以下の2階層下までのディレクトリを全て検索して、インタラクティブモード(対話モード)で検索しながら行きたいディレクトリを絞り込んで直接指定したディレクトリに移動することができます。
cd "$( ls -1d $HOME/*/* | peco )"
# 現在のカレントディレクトリから2階層下までを検索するのは下記コマンド。
cd "$( ls -1d ./*/* | peco )"
peco
コマンドをパイプで繋いで、スニペットをファイル毎にジャンル分けしておいて、ファイル選択 → スニペット選択 → クリップボードにコピー なども実現できます。
*ホームディレクトリ以下に peco/snippet_git.txt、peco/snippet_rails.txt などを準備しておく
cat "$(ls -1d ~/peco/* | peco )" | peco | tr -d '
' | pbcopy
また他にもよく使用するディレクトリをブックマークしておいてすぐに移動できるようにしたり、Control + R
をキーバインドしてコマンド履歴をインタラクティブモードで検索したり、など応用が凄くありそうです。
また、vimを使う人は下記のキーバインド設定をすると更にいい感じになります。
vimっぽいキーバインド
その他参考URL
pecoの基礎の基礎
ターミナルのディレクトリ移動を高速化する
bash/zsh のヒストリを peco で便利にする
よく作業するディレクトリをpecoで選択して移動するコマンド
peco/percolでCUIなスニペットツールを作ってみる
hub
GitHubユーザーのための支援ツールです。
ダウンロード後、 git
コマンドで hub
を使用出来るように .bashrc
か .bash_profile
にエイリアスを加えたら準備完了です。
eval "$(hub alias -s)"
便利なコマンド
-
GitHubページを開く
レポジトリに移動して開きたいブランチにチェックアウトしてgit browse
-
ローカルでプルリクエストを作る
git pull-request
-
比較する(ブラウザが開きます)
git compare 比較したいブランチ
参考
GitHubユーザーのためのhubコマンド
GitHubを使ってるならhubコマンドを使うべし
ag
https://github.com/ggreer/the_silver_searcher
検索したいコードを簡単に高速で検索出来るコマンドです。
下記コマンドでカレントディレクトリ以下を検索します。
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でディレクトリを探して、コマンドライン上でそのディレクトリに移動したい、という時に使えるかもしれません。
まとめ
いかがでしょうか?
まだまだ他にも未知の良いコマンドがたくさんあると思います。
個人的にはこれらのコマンドラインアプリケーションを組み合わせて自分なりのカスタムシェルスクリプトを作成してもっと使いやすくしていきたいなと思っています。