bashでmap

大量ファイルを操作するときには forは inの後を展開してから動作するために困ってた。

whileとreadを組み合わせれば 関数型言語のmapのように動作する。

$ seq 1 10 | while read i ; do echo $(($i+2)) ; done | while read i ; do echo $(($i*2)) ; done

まさにrubyのメソッドチェーン。ってrubyのほうが |を.にしただけだよな。

ubuntu11.04にてリモートデスクトップ操作時にキーリングのロックを解除しないためには

リモートデスクトップを操作するときに パスワード入力してしまうとリモートからのvncログイン時にパスワード入力後に「パスワードを入力してログインのキーリングのロックを解除してください」と聞かれてしまう。

これを回避するためには「パスワードと暗号鍵」でvinoの設定を削除する。
このとき先ほど設定したリモートデスクトップのパスワードも削除されてしまうので、もう一度入力する。
このとき キーリングのパスワードを再び求めてくるがこれはキャンセルする。
一文字づつきいてくるので他のところで書いてから一気にペーストするとよい。

centOS5.5でputtyにてloginした際にscreenを同時起動すると漢字が化ける

centOS5.5でputtyにてloginした際にscreenを同時起動すると漢字が化けるとき

puttyでのlogin時にscreen -xRを立ちあげると操作がすごく便利なのだがcentOSでは漢字が化けていた。
そこでscreen -xRUとUオプションを指定すると化けないようになる。

ちなみにyumでインストールされるzshは入力の漢字が化けるので自分でコンパイルすること。

kvm qemuにて ゲストwindowsから ホストsambaをマウントする

kvm qemuにて ゲストであるwindowsから、ホスト上のsambaをマウントするには

/etc/samba/smb.confに以下を追加

[mountpoint]
   comment = mountpoint
   path = /tmp/mountpoint
   guest ok = yes

ゲスト上のwindowsからはホストは 10.0.2.2なので まずcmdで ping 10.0.2.2 を確認した後

エクスプローラ->ツール->ネットワークドライブの割り当てにて \\10.0.2.2\mountpoint で終了。

ubuntu 10.10 にて capslock を ctrlにする (capsもctrlも両方ctrlキーにする)

ubuntu 10.10 にて capslock を ctrlにする。
つまり、capsもctrlも両方ctrlキーにするには

システム->設定->キーボードにてオプションをクリックし

ctrlキーの位置にて Make CapsLock an additional Ctrlを選択

win7http://d.hatena.ne.jp/kkomiyama/20091221/1261410409 この方法でcapslock->ctrl にしていたので合わせた。
このキーボードctrlが小さいんだもん。

ruby,perlで標準入力から指定文字数取得する

rubyでの

$ echo -e "abcde\nfghij\nklmn" | ruby -e 'puts STDIN.read(10)'
abcde
fghi

これがやりたかった

perlではreadを利用して以下のように書く

$ echo -e "abcde\nfghij\nklmn" | perl -e 'read(STDIN,$a,10);print $a,"\n"'
abcde
fghi

puttyのタイトルバーにscreenのスクリーンIDを出す

puttygnome-terminalのウインドウタイトルバーにscreenのIDを出すためには~/.screenrcに以下を記述すればよい

hardstatus string "[screen %n%?: %t%?] %h"

一瞬、termcapを疑ったがそんなことはなかった。


あと
http://kjirou.sakura.ne.jp/mt/2008/08/screen.html
で puttyのタイトルをエスケープシーケンスでコントロールしてる

printf "\033P\033]0;HOGEHOGE\007\033\\"

しかし、これではbashrcが評価される時だけだからおそらく画面再描画のtermcapでこのエスケープシーケンスを出せば十分だと思う。

screenrcの設定でtermcapを行う設定
http://d.hatena.ne.jp/dayflower/20071101/1193898108

termcapinfo xterm-color 'hs:ts=\E]0;:fs=\007:ds=\E]0;screen\007'