それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

tail コマンドがファイルの削除、作成時でも動くようにする

tail -f コマンドを使うとファイルの削除で動作が止まる。

tail -f /path/to/log

で ログファイルを見ているときに、別のプロセスでファイルが消えたら

ファイルが消えたら、動作が止まる。

mv /path/to/log /dev/null
rm /path/to/log 
echo hello > /path/to/log 

これはファイルディスクリプタだけを見ているので、ファイルが消えるとログを追尾できない

-F / –follow=name を使う

tail -F /path/to/log
tail --follow=name a.log

これでパス名のファイルの有無などを監視してくれるようになる。

tail -f は inotify や fsevent を見てると思うので、基本的には -F で良い気がする。

man tail

-f, --follow[={name|descriptor}]
              output appended data as the file grows;

              an absent option argument means 'descriptor'

-F     same as --follow=name --retry

inotify を見てる話はman にそう書いてる。

      -s, --sleep-interval=N
              with -f, sleep for approximately N seconds (default 1.0) between iterations; with inotify  and
              --pid=P, check process P at least once every N seconds

tail -f コマンドがログ監視てるプログラムが死んだら一緒に自動的に終了する

pid を指定すると tail コマンドが自動的に終了する

tail -f --pid=$PID /path/to/log

PIDを指定したときに

ローカルホスト開発ツールのログ監視してるときとかに便利ですね。

man tail

       --pid=PID
              with -f, terminate after process ID, PID dies

参考資料

https://hydrocul.github.io/wiki/commands/tail.html

ChromeのDeveloper tools(開発ツール)のコンソール(コマンドライン)で出てくる記号と関数

chrome の dev tools に出てくる関数

$ と $$ の違い

$ = document.querySelector
$$ = document.querySelectorAll

$x は Xpath

$x('//a')

xpath は組み立てと呼び出しが面倒なので、とても嬉しい。

その他の関数をマトメておくと

クエリ系

  • $
  • $$
  • $x

直前のものを再利用

  • $_

選択された要素

  • $0
  • $1
  • $2
  • $3
  • $4

デバッグ

  • debug
  • monitor/unmonitor
  • table
  • copy
  • profile/profileEnd

要素やオブジェクトの検証

  • inspect

イベントハンドラの監視と調査

  • getEventListeners
  • monitorEvents/unmonitorEvents

参考資料

https://developers.google.com/web/tools/chrome-devtools/console/command-line-reference?hl=ja#04