小ネタ系コマンドの自分用備忘録
随時更新
diffで中間ファイルを作らず直接コマンド出力結果を比較
diff <(ls dir1) <(ls dir2)
<(...)
はコマンドの結果を(名前付き)パイプに放り込む方法で、名前付きパイプはファイルと同等の扱いをされます。
マージ済リモートブランチをローカルからも削除
# リモートから最新情報をフェッチ
git fetch origin --prune
# マージ済ブランチ削除
git branch --merged | grep -vE '^\*|master$|develop$' | xargs -I % git branch -d %
dockerのプロセスを一律kill
docker ps -a | awk -F ' +' 'NR > 1 {print $7}' | xargs docker rm -f
# ついでに溜まったimageなどを削除
docker system prune -af --volumes
Gitでソースだけ落としてくる
curl -L https://github.com/pinard/Pymacs/tarball/v0.24-beta2 | tar zx
GitのOrganization内の全リポジトリClone
いつ使うのかって
横展開系作業が発生したときですよ…
curl -H "Authorization: token <ACCESS_TOKEN>" https://github.com/api/v3/orgs/<Organization-name>/repos?per_page=500 | jq '.[].ssh_url' | sed -e 's/"//g' | xargs -I{} git clone {}
lsof
# ポート指定
# portが80, 443で開いているプロセスを表示できる
lsof -i:80,443
# 明示的にLISTENされているプロセスを調べたい場合
lsof -i:6379 |grep LISTEN
# TCPとして指定する
lsof -iTCP:6379 |grep LISTEN
# プロセス名を指定
lsof -c ruby
# PIDを指定
lsof -p 376
# ユーザー名を指定
lsof -c ruby
awkで重複削除
awk '!a[$0]++'
複数プロセスを同時kill
kill `ps -ef | egrep -r <プロセス名> | grep -v grep | awk '{print $4}'`
すべての画像をjpg -> pngに変換
mogrifyはconvertの一括変換版
mogrify -format jpg *.png