Shell のコマンド実行回数を数える

Posted by yoosee on Debian at 2008-04-19 22:00 JST

*1  Shell History | Weboo! Returns.

このネタは定期的に出てくるけど、自分では書いたことが無かった気がするので試しに。awk の切り出しは extended history で保存している都合で、切り出しカラムを $2 から $4 に変えている。

直近1000回。
% history-all|tail -1000|awk '{a[$4]++ } END{for(i in a){print a[i] " " i}}' |sort -rn|head
95 lv
59 ls
51 edic
50 ruby
48 cd
43 rm
40 mv
38 sudo
33 jdic
32 w3m
edic, jdic はそれぞれ dic コマンドを 英和・和英 で起動するための alias。

普段使っているzshでは 横着プログラミング 第3回: 履歴マニア にあるように過去の履歴をひたすら蓄積しているので、その約2万回分でカウント。
% history-all|awk '{a[$4]++ } END{for(i in a){print a[i] " " i}}' |sort -rn|head
1431 lv
1212 google
1062 sudo
960 ls
860 edic
694 w3m
688 cd
657 rm
614 mv
569 grep
なんだかやけに sudo が多いような…。

ちなみに google と言うのはコマンドラインから w3m に google 検索パラメータを投げるだけのプログラム。
#!/usr/bin/perl

my $arg = join("+", @ARGV);
my $q=`echo $arg | nkf -w`;
system("w3m \"http://www.google.com/search?lr=lang_ja&q=$q\"");
コンソール上で生活していると、これが意外と便利。

*1  Debian lenny/sid での utf-8 環境移行メモ

サーバを入れ替えたタイミングで、なんとなしに terminal 環境を今までの euc-jp 中心から utf-8 に切り替えたのだが、結構あちこち変更するハメになったので、まだ完璧ではないが設定を記録しておく。文字コードの問題はまだしも、East Asian ambiguous char width 周りの問題が鬱陶しい上にスマートで包括的な解決方法が無い。最新の環境にしたのに Bad Knowhow が増えるというのは困ったもんだ。

locale: /etc/locale.gen に以下の行が無い場合は追加して locale-gen を実行
ja_JP.UTF-8 UTF-8
zsh: .zshrc
export LANG=ja_JP.UTF-8
export OUTPUT_CHARSET=utf-8
export LV="-Ou8"
screen: .screenrc
defencoding     UTF-8
vim: .vimrc
set termencoding=utf-8
set fileencodings=iso-2022-jp,cp932,utf-8,japan
set ambiwidth=double
emacs21 では mule-ucs パッケージを入れて un-define を require する。emacs22 では無くても utf-translate-cjk-mode があるので(CJKだけなら)一応使える。
emacs21/22: .emacs
(when (<= emacs-major-version 21)
   (require 'un-define))
(set-language-environment "Japanese")
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8)
(set-buffer-file-coding-system 'utf-8)
(set-selection-coding-system 'utf-8)
(setq default-buffer-file-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
これで概ね問題ないが、ambiguous char width を回避するために Emacs22 + UTF-8 における文脈依存な文字幅の問題について のような設定を入れておく。

w3m
特に設定しなくても LANG(LOCALE) に追従して「表示用文字コード」が Unicode (UTF-8) になってくれた。しかし画面表示とカーソル位置がずれていたり画面にゴミが残ったり(再描画すると直る)と、鬱陶しいことになっている。

Gnome, gnome-terminal
特に設定しなくても .xsession から X を LANG=ja_JP.UTF-8 で起動したら対応した。ただ困ったことに、gnome-terminal で utf8 の EastAsian Ambiguous char width 問題の解決策が見当たらない。VTE_CJK_WIDTH を設定する方法は etch では機能せず。仕方がないので xterm -cjk_width ないし mlterm -a 2 の方を使う方針にする。mlterm の方が antialias が綺麗なんだけど、URL link 等の右クリックメニュー機能が無くなったのがちょっと痛い。

PuTTY on Windows
設定から Window > Transrations を [UTF-8] に、Treat CJK ambiguous character as wide をチェック。PuTTY Tray を使っているけどこれで特に問題は無い。CJK以外の多国語を使う場合・terminal の文字コードが混在する場合には問題が出るのかもしれない。

参考

Debian sid の zsh が日本語対応

Posted by yoosee on Debian at 2006-01-23 23:42 JST

*1  zsh が日本語対応

いつの間にか zsh が日本語対応したようで、日本語一文字をちゃんと一文字として認識している。対応したように見えるのは 4.3.0-dev-2-1 (on Debian sid) で、今まで通りの方は 4.2.5-7 (on Debian sarge) という感じ。Changelog の 4.3.0-dev-2-1 - Better UTF-8 support. これだろうか。

zsh の biff 機能

Posted by yoosee on Debian at 2004-12-23 23:42 JST

*1  zsh の biff 機能

さくらのレンタルサーバに自分で $HOME/local の下に入れた zsh を使っているのだが、事あるたびに
zsh: permission denied: /var/mail/yoosee
と言われてしまうのが鬱陶しい。さくらの共有サーバでは 1 つの Unix アカウントに複数のメールアドレスが割り当てられており、$HOME/Mailbox/(mailuser)/maildir/ が mail path になり、/var/mail の permission は閉じているようだ。

UNIX今日の技/zsh を参考に、zsh を --enable-maildir-support 付きで recombile した上で
export MAILPATH="/home/yoosee/MailBox/postmaster/maildir/"
としておいた。まぁこのサーバでメールは基本的に受けないので MAILCHECK=0 にしておいても良さそうだが、どのみちエラーメッセージが出なければ良いのでこれで良かろう。

*2  Google ...

当然のように今回も Google で検索したのだが
google://zsh /var/mail 
-> もしかして: csh /var/mail/
と言うのはどうなんだ。

About W.W.Walker

World Wide Walker は yoosee による blog です。PDA, Web・サーバ技術, 美味しい食べ物などの話題を取り上げています... read more

Monthly Archives

Select Month to read
  

Ads

Recent Entries

Related Sites