〜2013年5月中旬〜
tail -n +Nがありならhead -nにもそんな機能がありそうだと思いman headしてみるとやはりあった。
GNU coreutilsのheadだとhead -n -Nで最後のN行は表示しないという意味になる。
% seq 5 | head -n -2 1 2 3
まあ意味的には最後からだから-でいいんだよな、きっと。
でもどうせ非互換になるなら別なオプションを用意してもよかったんじゃないかな。
実はzshだと最新の2つは*(om[1,2])と表現できる。それを踏まえるとこうなる。
% for i in {0..4};touch -d @$[1367722800+i*3600*24] "foo bar.log.$i" % ls -l total 0 -rw-r--r-- 1 eban eban 0 2013-05-05 12:00:00 foo bar.log.0 -rw-r--r-- 1 eban eban 0 2013-05-06 12:00:00 foo bar.log.1 -rw-r--r-- 1 eban eban 0 2013-05-07 12:00:00 foo bar.log.2 -rw-r--r-- 1 eban eban 0 2013-05-08 12:00:00 foo bar.log.3 -rw-r--r-- 1 eban eban 0 2013-05-09 12:00:00 foo bar.log.4 % rm -f *(om[3,-1]) % ls -l total 0 -rw-r--r-- 1 eban eban 0 2013-05-08 12:00:00 foo bar.log.3 -rw-r--r-- 1 eban eban 0 2013-05-09 12:00:00 foo bar.log.4
omでmtimeでソート、[3,-1]で3番目以降最後までという意味になる。
% for i in {0..4};touch -d @$[1367722800+i*3600*24] "foo bar.log.$i" % print -l *(om) foo bar.log.4 foo bar.log.3 foo bar.log.2 foo bar.log.1 foo bar.log.0 % print -l *(om[3,-1]) foo bar.log.2 foo bar.log.1 foo bar.log.0
Ubuntu(x86_64)でgcc -m32を使うにはgcc-multilibパッケージを入れればいい。
ruby 1.4.6をmakeするには
% ./configure --prefix=$HOME/local --program-suffix=-1.4.6 --host=i386-linux --with-gcc='gcc -m32' % make % ./ruby-1.4.6 -v ruby 1.4.6 (2000-08-16) [i386-linux]
てな感じでok。
4月でクレジットが切れたのはいいとして、新しいカードにはEdy機能がなくなっていた。
しかたがないので古いカードのEdyだけ使っていたんだけど、なんとチャージができなくなった。
クレジットの新たな有効期限で更新すればいいと思ってたが、それすら許されない。
しょうがないから直接5千円でチャージしようとしたら、機械がエラーに。
つまりもうどうしようもない。
クレジットが切れたらEdyも使えなくなるとは。
有効期限切れのカードは破棄してくれってことなんだな。
結局楽天のEdyカードにした。ファミマで買おうとしたら735円ですと言われてさすがに高すぎると断わった。
始まった当時でも500円だったよねえ。楽天だとポイントもついて300円。なんでこんなに違うのか。
転がってるリモコンのボタンをふと押してしまうのはよくあるが、
PS3のリモコンはなぜか電源ボタンじゃなくても電源ONになってしまう。
ピッとかいって結構うっとうしい。
解決策はPS3モードじゃなくてテレビモードにしておくこと。しかし忘れる。
Fedoraだとpackage-cleanupを使えばいい感じで消してくれるが、Ubuntuにはない。
でもupgradeしたときぐらいは過去の全部消してくれてもいいんじゃないかな。/bootを見てそう思った。
というわけで消そう。消す前にcommandlinefuを見てみるといっぱいあった。
だいたいインストールされてるkernelをリスト表示して、
uname -rのkernel以外を消すということをやってるようだ。
なんか最近そんなことばかりやってる気がするが、まあ気にしない。
一番わかりやすいのが これだが、awkだけでいいだろう。
aptitude remove $(dpkg -l|awk '/^ii linux-(im|he)/{print $2}'|grep -v `uname -r`)
と思ったら あった。あれ、評価が0以下は表示されないのか。
しかし、なぞすぎてあまり評価されてない Safely remove old unused kernels in Ubuntu/Debianが一番よさげな気がした。
sudo aptitude purge ~ilinux-image-\[0-9\]\(\!`uname -r`\)
数字はextraやgenericを外すためか。
% aptitude -q search "~ilinux-image-(\!`uname -r`)" i linux-image-3.2.0-24-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-25-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-26-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-27-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-29-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-30-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-31-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-32-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.5.0-27-generic - Linux kernel image for version 3.5.0 on 64 bit x86 SMP i A linux-image-3.8.0-21-generic - Linux kernel image for version 3.8.0 on 64 bit x86 SMP i linux-image-extra-3.5.0-27-generic - Linux kernel image for version 3.5.0 on 64 bit x86 SMP i A linux-image-extra-3.8.0-21-generic - Linux kernel image for version 3.8.0 on 64 bit x86 SMP i linux-image-generic - Generic Linux kernel image % aptitude -q search "~ilinux-image-[0-9](\!`uname -r`)" i linux-image-3.2.0-24-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-25-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-26-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-27-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-29-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-30-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-31-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.2.0-32-generic - Linux kernel image for version 3.2.0 on 64 bit x86 SMP i linux-image-3.5.0-27-generic - Linux kernel image for version 3.5.0 on 64 bit x86 SMP i A linux-image-3.8.0-21-generic - Linux kernel image for version 3.8.0 on 64 bit x86 SMP
実際に消すときは-P(--prompt)をつけたほうがいいかも。というのも
% uname -r 3.8.0-19-generic
-21がすでにあるのにuname -rがまだ-19だし、つまりkernel消す前に再起動が必要だった。
これはsafeでも防げない。
東京の最高気温を表示する。
% curl -s http://weather.yahoo.co.jp/weather/jp/13/4410.html | awk '!i++&&$0=$NF' FS='>' RS=' \\[ ' 25 % curl -s http://tenki.jp/forecast/city-63.html | awk '!i++&&$0=$NF' FS='>' RS='</span>℃' 25
!i++はhead -1相当。
なんというかこうFSとRSではさんで$NFを表示するというパターンって結構万能なんじゃないだろうか。
Ubuntu 13.04になってからこうなっちゃうんだけど、dnsmasqのせいなのか?
% time ruby -rsocket -e 'IPSocket.getaddress("example")' -e:1:in `getaddress': No such file or directory - getaddrinfo (Errno::ENOENT) from -e:1:in `<main>' zsh: exit 1 ruby -rsocket -e 'IPSocket.getaddress("example")' ruby -rsocket -e 'IPSocket.getaddress("example")' 0.01s user 0.01s system 0% cpu 10.027 total
dnsmasqを使ってないUbuntu serverだと起きない。10秒ってのもタイムアウトっぽいな。
結局16ヶ月半。
考えてみるとeneloopを買ったまま充電せずに使っていたので、
次回切れるのはもっと先になるかもしれない。おそるべし。