9月 05 2009

ffmpeg の出力がひどかったがアップデートしたら解消されたメモ

Published by HoLY under tech

FreeBSD の ports から入れた multimedia/ffmpeg の出力の mp3 がひどいことになっていてなんでだろう、と思っていたがバージョンのせいだった模様。のメモ。

Continue Reading »

Tags:

No responses yet

2月 10 2009

FreeBSD の od の -c オプションは日本語が表示できる

Published by HoLY under tech

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 とかも含め手元に環境がないからわからん。

Tags: ,

No responses yet

12月 27 2007

pkill を使うようにした

Published by HoLY under tech

サーバ管理とかでの話。

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 を引いて使う方がよさそう。

Tags: ,

No responses yet