9月 05 2009
ffmpeg の出力がひどかったがアップデートしたら解消されたメモ
FreeBSD の ports から入れた multimedia/ffmpeg の出力の mp3 がひどいことになっていてなんでだろう、と思っていたがバージョンのせいだった模様。のメモ。
Tags: freebsd
9月 05 2009
FreeBSD の ports から入れた multimedia/ffmpeg の出力の mp3 がひどいことになっていてなんでだろう、と思っていたがバージョンのせいだった模様。のメモ。
Tags: freebsd
2月 10 2009
Linux だと od の -c オプションで ASCII 文字が表示されるわけですが、日本語は表示できません。こんな感じ。
$ echo $LANG
ja_JP.UTF-8
$ touch 日本語.txt
$ ls
日本語.txt
$ ls | od -xc
0000000 97e6 e6a5 ac9c aae8 2e9e 7874 0a74
346 227 245 346 234 254 350 252 236 . t x t \n
0000016
しかし FreeBSD の od で同じことをやると、Locale に従って日本語で表示されるではありませんか。
$ echo $LANG
ja_JP.UTF-8
$ touch 日本語.txt
$ ls
日本語.txt
$ ls | od -xc
0000000 97e6 e6a5 ac9c aae8 2e9e 7874 0a74
日 ** ** 本 ** ** 語 ** ** . t x t \n
0000016
$ export LANG=ja_JP.eucJP
$ ls * | nkf -We | od -xc
0000000 fcc6 dccb ecb8 742e 7478 000a
日 ** 本 ** 語 ** . t x t \n
FreeBSD の方の man odを見ると、-c はこうなってる。
デフォルトの文字集合での文字。 表示できない文字は 3 桁の 8 進数文字コードで表現されます。ただし、次の文字は C エスケープで表現されます: (略)
「ASCII」 じゃなくて 「デフォルトの文字集合」 ってのがミソですね。man を見る限り FreeBSD 4.7 からそうなってたのかしらん。知らなかった…。ちなみに hexdump の -c オプションは「ASCII」だそうな。Linux の man od も「ASCII」と。
Linux みたいな挙動しか期待してなかったので、ちょっと嬉しくてエントリ化。
ちなみにググる限り Solaris とかもそうっぽい。他の *BSD とかも含め手元に環境がないからわからん。
12月 27 2007
サーバ管理とかでの話。
FreeBSDやLinuxで、あるプロセス(例えばvim)を調べる/殺す際に、今までは
$ ps auxww | grep vim
なんて process id を調べてから kill、なんてやってたんだけどいい加減やめようと思って意図してpkill, pgrep を使うようにする。
pgrep を使えば process id は
$ pgrep vim
で調べられる。もし引数も含めて調べるなら
$ pgrep -f tiarra
などする必要がある。(-f で引数まで含めてパターンマッチングする)
-l で出力する情報を少しだけ増やせる。
また、最後に起動した tiarra だけ調べたい、などという場合なんかは
$ pgrep -fn tiarra
とすればよい。-n で最後に起動したプロセスだけ抽出する。-o なら最初。
んで、pgrep で調べた後に かわりに pkill にすれば、kill の動作をしてくれる。 (いきなりpkill食らわせるのはまだ怖い)
ちなみに killall は solaris でアレなのでなるべく使わないようにしてる。
自分の環境は主に FreeBSD6 なので、ports で sysutils/pkill を入れて使用した。 Linux では最初から入ってることも多そう。(最近の事情はよく知らないけど)
あと似たコマンドで skill があって (sysutils/skill)、 interactive mode があったり、正規表現でプロセス名を指定できたりする。 またこっちには nice 相当の snice がある。
skill と pkill ではかなりオプションが違うので要注意。-v とかうっかり skill に使うとまずいことうけあい。どちらかをメインで使って残りはちゃんと man を引いて使う方がよさそう。