ターミナル出力をログに残す
概要
ターミナル出力をブログに書く場合コピペしていましたが、操作が多いと面倒なのでログ出力するようにしました。
ログ出力する方法はいくつかあるようですが、過去に使ったことがあるscreenを使うことにしました。
環境
設定
.screenrcにログ出力設定を追加します。
ログファイルのパスはフルパスを記述しないとログ出力されませんでした。
$ cat ~/.screenrc logfile "/Users/unokun/logs/screen-%Y%m%d-%n.log" deflog on
ログ表示
出力されるログには制御記号が含まれています。-rオプションを付けてlessで表示するといい感じに表示されます。
cd% ^M ^M~/work^M[~/work]$ ls -l^M lstotal 1088 drwxr-xr-x+ 7 unokun staff 238 9 6 17:39 elixir drwxr-xr-x+ 6 unokun staff 204 8 29 10:58 firebase drwxr-xr-x+ 4 unokun staff 136 7 21 05:35 gae drwxr-xr-x+ 9 unokun staff 306 8 9 16:25 gcp drwxr-xr-x+ 28 unokun staff 952 7 1 21:46 gdbm-1.9.1 -rw-r--r--+ 1 unokun staff 554843 7 1 21:44 gdbm-1.9.1.tar.gz drwxr-xr-x+ 8 unokun staff 272 8 16 11:14 react drwxr-xr-x+ 3 unokun staff 102 8 24 2014 the_vim_way drwxr-xr-x+ 4 unokun staff 136 9 7 06:04 ttyrec % ^M ^M~/work^M[~/work]$ exit^M exit
lessで表示
「... may be a binary file. See it anyway?」と聞かれるので「y」を入力します。
$ less -r ~/logs/screen-20150909-0.log "/Users/unokun/logs/screen-20150909-0.log" may be a binary file. See it anyway?
制御記号がなくなって、良い感じに表示できます。
$ cd work $ ls -l total 1088 drwxr-xr-x+ 7 unokun staff 238 9 6 17:39 elixir drwxr-xr-x+ 6 unokun staff 204 8 29 10:58 firebase drwxr-xr-x+ 4 unokun staff 136 7 21 05:35 gae drwxr-xr-x+ 9 unokun staff 306 8 9 16:25 gcp drwxr-xr-x+ 28 unokun staff 952 7 1 21:46 gdbm-1.9.1 -rw-r--r--+ 1 unokun staff 554843 7 1 21:44 gdbm-1.9.1.tar.gz drwxr-xr-x+ 8 unokun staff 272 8 16 11:14 react drwxr-xr-x+ 3 unokun staff 102 8 24 2014 the_vim_way drwxr-xr-x+ 4 unokun staff 136 9 7 06:04 ttyrec [~/work]$ exit