こんにちは!
開発しているとターミナルってよく使いますよね。どんなコマンドを使っているかな、と思って調べてみました。
目次
よく使ってるコマンドを調べるコマンド
コマンドは次の通りです。(MacOS Darwin aramaki.local 16.6.0, iTerm2, Zshで試しました。)
$ history | sed -E 's/^[ ]*//g' | sed -E 's/ +/ /g' | cut -d' ' -f2 | sort | uniq -c | sort -nr | head -n 10 | nl -w 2
結果
というわけで結果です。
| 順位 | 回数 | コマンド |
|---|---|---|
| 1 | 1050 | cd |
| 2 | 707 | curl |
| 3 | 634 | ssh |
| 4 | 464 | git |
| 5 | 463 | wp |
| 6 | 424 | less |
| 7 | 414 | ga |
| 8 | 388 | docker |
| 9 | 349 | php |
| 10 | 284 | rm |
ディレクトリ移動のcdコマンドが一位に来ましたね!
historyにあるトータルのコマンドが11,181件でしたので、10回に一回はディレクトリ移動をしてる計算になります。
二番目はcurlだそうです。
REST APIとかプログラムのデバッグにはめっちゃ便利ですね。
ところでこのcurl(cURL?)なんですが、オプションを毎度忘れてしまうということで備忘録を兼ねてコマンドジェネレータ(ビルダー)を作りました。
お仕事で関係する人などに「curlコマンド便利っすよ!使いましょう!」とオススメするのですが、オプションが忘れてしまったりわからなくなったりするのでその手助けになれば、と思いました。
というか今回の件はこのジェネレータで使っているオプションを調べようと思ったのがきっかけです。
sshコマンドが3位です。他のホストで作業していますね。
当たり前ですがこの結果には他のホストでのコマンドは入っていません。
他のホストで行っている作業を入れるとまた違った結果になりそうですね。
4位と7位にはgitコマンドがきました。
7位のgaは追加、コミット、プッシュをひとまとめにしたエイリアスです。
小さいチームで開発していて
「コミットしたけどプッシュ忘れて衝突したよ!」とか
「えっコード見てくださいよ!あっすみませんプッシュし忘れてました」
「コミット面倒なのでしてないです ;)」というのを防ぐために書きました。
慣れるとコミットプッシュが捗るのですごく便利です。
5位にはwp-cliコマンドが来ましたね。
WordPressでの開発案件では活躍してますけど、そんなに使ってる印象はなかったです。
でももう手放せないですね、wp-cli。
8位にdockerコマンド来ましたね。
dockerすごく楽しいです。でもdocker-composeとかと別れている印象はありますね。
11位以下
下位はこんな感じです。
こうしてみるとlsコマンドが少ないですね。MS-DOS時代にはひたすらDIRコマンドを打っていた覚えがありますが、今はタブキーでファイル名補完がききますのであまり入力しなくなったと思います。
その他にもfindやgrep、nslookupにwhoisあたりはインフラ系やってる感ありますね。
そういえば最近はPhpStormを導入してemacsを開かなくなりました。
何でもかんでもPhpStormで開いてしまっている感あります。
引数も含めてみる
オプションを含めてどんなのがあるか、cutコマンドに二つ目まで入れてみました。
パイプやリダイレクションも引数に入っちゃうので完全には違いますが、なんとなく雰囲気はわかります。
$ history | sed -E 's/^[ ]*//g' | sed -E 's/ +/ /g' | cut -d' ' -f2,3 | sort | uniq -c | sort -nr | head -n 50 | nl -w 2
gitをコミットするga -mが一番でした。
phpコマンドはLaravel用だったんですね。artisanがくっついています。
コマンドの補足
$ history | sed -E 's/^[ ]*//g' | sed -E 's/ +/ /g' | cut -d' ' -f2 | sort | uniq -c | sort -nr | head -n 10 | nl -w 2
ざっくり解説すると以下のとおりです。
| コマンド | 何をしているか |
|---|---|
| history | コマンド履歴を出力。シェルの環境変数によっては件数が制限されていることや、複数のシェルを使っているとカウントされないことも。 |
| sed -E ‘s/^[ ]*//g’ | 行頭のスペースを削除。 |
| sed -E ‘s/ +/ /g’ | 連続したスペースを一つに。cutし易いようにまとめました。 |
| cut -d’ ‘ -f2 | スペースで区切って二つ目の要素を取得。 |
| sort | 文字列で並び替え |
| uniq -c | 連続する同じ行をカウント |
| sort -nr | uniq -cでカウントした数で並び替え |
| head -n 10 | カウント総数10位までを出力 |
| nl -w 2 | 行頭に順位をつける |
雑感
コマンドってなかなか新しいものを開拓しにくいですよね。findとかawsって便利って思っても使い慣れないと使わないですし、最近のエンジニアさんはもっと面白いコマンドをいっぱい使っているイメージです。
もしよかったら実行して結果を教えてください。



