こんにちはエンジニアのG高橋です。
良いネタが思いつかなかったので、
手元にある過去によく使っていたコマンドをまとめてみました。
特に役立つ知識ではないのでお暇な方のみご覧ください。
1. サブディレクトリのグラフィカルツリー
$ ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
2. ソートせずにファイル内の重複エントリを削除します。
$ awk '!x[$0]++' sample_file.txt
3. ファイル内の長い行を特定する
$ awk 'length>290' sample_file.txt
4. マシンのIPアドレスを素早く確認
$ curl -s icanhazip.com
5. 簡易ストップウォッチ
$ time read (※ ctl+dでストップ)
^D
real 0m3.625s
user 0m0.000s
sys 0m0.000s
6. less を途中からtailに変える
$ less sample_file.txt
(※表示中に大文字Fを押す)
7. マトリックス風
$ LC_CTYPE=C tr -c "[:digit:]" " " < /dev/urandom | dd cbs=$COLUMNS conv=unblock | GREP_COLOR="1;32" grep --color "[^ ]"
8. 特定の列をターゲットにしてパターン置換を行う
$ awk '{gsub("hoge","fuga",$5)}1' sample_file.txt
➔ 5列目のみ、hogeのすべてのインスタンスをfugaに置き換えます。
9. サイトのSSL証明書の日付を確認する
$ echo | openssl s_client -connect www.google.com:443 2>/dev/null |openssl x509 -dates -noout
10. BASHのコマンド出力から複数の変数を割り当てる
$ read day month year <<< $(date +'%d %m %y')
$ echo $day
09
11. クイック計算機能
$ ? () { echo "$*" | bc -l; }
$ ? 20*1+3
23
12. ファイルの名前をすばやく変更
$ touch test.txt
$ mv test.{txt,old.txt}
test.txt -> test.old.txt
13. 指定時間にコマンドを実行します。 1回限りのタスクです。
$ echo “ls -l” | at midnight
14. リモートファイルとローカルファイルを比較する
$ ssh user@host cat /path/to/remotefile | diff /path/to/localfile –
15. ホストの接続数をグラフ化します
$ netstat -an | grep ESTABLISHED | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | awk ‘{ printf(“%s\t%s\t”,$2,$1) ; for (i = 0; i < $1; i++) {printf(“*”)}; print “” }’
16. 最も頻繁に使用するコマンドのリスト
$ history | awk ‘{a[$2]++}END{for(i in a){print a[i] ” ” i}}’ | sort -rn | head
17. ネットワークサービスのアクティビティをリアルタイムで
lsof -i
18. 懐かしのSLコマンドを実行する
$ brew install sl
$ alias ls='sl -aF'
$ sl
19. 急にスターウォーズがみたくなった
$ brew install telnet
$ telnet towel.blinkenlights.nl 23
まとめ
以上、つかえるかもしれないコマンド集でした。
これからも役に立つかもしれないコマンドを集めたいと思います。