Skip to content

Instantly share code, notes, and snippets.

@tanish-kr
Last active February 13, 2020 07:16
Show Gist options
  • Save tanish-kr/e29f34e481f0d8895bd8565bc32ac035 to your computer and use it in GitHub Desktop.
Save tanish-kr/e29f34e481f0d8895bd8565bc32ac035 to your computer and use it in GitHub Desktop.
コマンド友人帳

コマンド友人帳

これは何?

Unix/Linux系のコマンドのメモ帳的に綴っていくスペース

ディレクトリ・ファイル操作関連

  • tar展開後、特定階層のディレクトリをスキップ(OSによっては--strip-componentsかも)
$ tar xvzf --strip=<no>

テキストファイル関連

tail結果をフィルタリングして結果を保存

$ tail -f <ログ名> | grep --line-buffered <フィルタリング条件> | tee -a <フィルタリング結果ファイル名>

RAMキャッシュクリア

Root権限でのみ使用可能

  • ページキャッシュのクリア
# sync; echo 1 > /proc/sys/vm/drop_caches
  • dentryとindoesのクリア
# sync; echo 2 > /proc/sys/vm/drop_caches
  • ページキャッシュとdentry, indoesのクリア
# sync; echo 3 > /proc/sys/vm/drop_caches

プロセス管理

lsof

list open files の略であり、オープン中のファイルやそのファイルを開いているプロセスのリストを出力するコマンド

  • ポート番号を指定して、ネットワークコネクションを調べる(そのポートが使用しているプロセスの確認)
$ lsof -i:<port>
  • 実行ユーザを指定して出力する
$ lsof -u <user>
  • 実行されているコマンドを指定して出力する
$ lsof -c <command>
  • 特定のファイルを開いているプロセスを出力する(-Dオプションで再帰的に抽出)
$ lsof <file path>

プロセス名でgrepした結果をすべてkill

$ ps aux | grep [プロセス名] | grep -v grep | awk '{ print "kill -9", $2 }' | sh

サードパーティ

Git

  • あるブランチにある単語をパス指定で検索
  • -Eでegrep(正規表現)
$ git grep -E [pattern] [branch] [path]
  • diffでfile typeでフィルタリング
$ git diff <a> <b> -- '*.type'
  • Authorごとにグルーピングされたコミットログのサマライズ
$ git shortlog
  • ブランチ削除&リモートブランチ削除
$ git branch -D <branch>
$ git push --delete origin <branch>
  • マージ済みのブランチを削除
$ git branch --merged|egrep -v '\*|develop|master'|xargs git branch -d
  • commit id単位でdiffを見たいとき
$ git log --oneline --graph master...feature
  • tarアーカイブをダウンロードし、展開
$ curl -L https://github.com/<username>/<repositoryname>/tarball/<branch> | tar xz --strip=1

https://blog.abelotech.com/posts/how-download-github-tarball-using-curl-wget/

Ansible

  • localでansibleで使用するpackage managerを確認する
$ ansible localhost -m setup | grep ansible_pkg_mgr

Docker

  • 停止しているコンテナを削除
$ docker container rm $(docker container ls -f status=exited -q)

v1.2.5以降だと以下でも可能

$ docker container prune
  • 使用していないイメージを削除
$ docker rmi $(docker images -f "dangling=true" -q)

or

$ docker image prune

https://linuxize.com/post/how-to-remove-docker-images-containers-volumes-and-networks/

tree

  • 第二回層まで表示する -L 2
  • 指定したファイル、ディレクトリを除外する -I
  • .拡張子を含めたすべてのファイルを表示する -a
$ tree . -L 2 -a -I "\.DS_Store|\.git|node_modules|*.swp"
@tanish-kr
Copy link
Author

タイトル的にコマンド返したら友人帳から消えてくのかwww

@tanish-kr
Copy link
Author

新しい発見があったコマンドのみ記載していて、すでに指で覚えてるコマンドは記載してない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment