用途別・個人的良く使うコマンドチートシート
メモ帳に書いてたのを雑に公開。小技系が多いです。
動作環境はMac + zsh環境がメインで、たまにlinuxです。たまにオプションとか違う場合もありますのでご注意。でも大体動くはずです。
随時追記します。
ファイルの行数
単純にカウント
cat hoge.txt | wc -l
行数の監視
watch -n 1 'cat hoge.txt | wc -l'
ログファイルとか、バッチの進捗確認に。
ログファイルの特定の項目を抜き出す
基本
cat xxxxx.log| awk '{print $7}'
$7
は特定の項目のインデックス。数えるようりも適当に数字変えて動かしてみた方が早い。
特定の文字列が含まれる行のみ
cat xxxxx.log | grep info |awk '{print $7}'
info
に特定の文字列を設定
特定の文字列が含まれる行を除外
cat xxxxx.log | grep -v info |awk '{print $7}'
info
に特定の文字列を設定
複数列表示する
cat xxxxx.log| awk '{print $7 "\t" $8}'
tab文字で区切って出力するとエクセルとかに貼り付けた時に見やすい
結果の個数をカウントする
cat xxxxx.log |awk '{print $7}' | sort -n | uniq -c | sort -n
結果文字列を置換する
cat xxxxx.log |awk '{print $7}' | sed s/hoge/fuga/
↑だとhoge
をfuga
に置換する。fuga
を空にすれば削除になる
コマンド履歴
検索する
history 0 | grep ls
0をつけると全部対象になる
検索結果から実行する
!100
historyの番号を指定して実行できる
ディレクトリ
権限を指定してディレクトリ作成
sudo mkdir -m 777 hogedir
ファイル名検索
find . -type f -name "*.text"
ファイルの中身で検索
find . -type f -print | xargs grep hoge
ファイルをマージする
ディレクトリ配下全部
cat ./* > merge.txt
今のディレクトリ配下のファイルをがっちゃんこしたファイルを作成。
特定のファイル
cat hoge.txt fuga.txt > merge.txt
ファイル転送(scp)
ローカルにもってくる
scp -r -P ポート番号 -i 鍵へのpath ユーザー@ホスト:ホスト側のpath ローカルのpath
例
scp -r -P 10000 -i ~/.ssh daisuke-fukuda@192.168.1.1:/var/log ./
-r はディレクトリを取得する時に必要。
その他
今のディレクトリをfinderで開く
open .
jsonを整形する
jqがインストールされてる前提。jqはいっぱいあるけど、とりあえずこれが一番使う。あとはヘルプみながら頑張る。
直接
echo '{ "name" : "John Smith", "sku" : "20223", "price" : 23.95, "shipTo" : { "name" : "Jane Smith", "address" : "123 Maple Street", "city" : "Pretendville", "state" : "NY", "zip" : "12345" }, "billTo" : { "name" : "John Smith", "address" : "123 Maple Street", "city" : "Pretendville", "state" : "NY", "zip" : "12345" } }' | jq .
ファイルから
cat hoge.json | jq .
クリップボードから
pbpaste | jq .
pbpaste
がクリックボードからechoするコマンド。地味に便利。