ターミナルで良く使っているコマンドについて調べてみた

こんにちは!

開発しているとターミナルってよく使いますよね。どんなコマンドを使っているかな、と思って調べてみました。

目次

よく使ってるコマンドを調べるコマンド

コマンドは次の通りです。(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コマンドを打っていた覚えがありますが、今はタブキーでファイル名補完がききますのであまり入力しなくなったと思います。

その他にもfindgrepnslookupwhoisあたりはインフラ系やってる感ありますね。
そういえば最近は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って便利って思っても使い慣れないと使わないですし、最近のエンジニアさんはもっと面白いコマンドをいっぱい使っているイメージです。

もしよかったら実行して結果を教えてください。

シェアする

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

フォローする