知らない人もたくさんいるでしょうか、一つの選択肢として Linux というものを紹介しようと思います。 | |
ls とか ps auxなどと、コマンドを入力するとシェルはそのコマンドを解釈し、該当する命令を 起動する。便利なのは、単発のコマンドを実行するだけじゃなく、シェルがきち んとしたプログラミング言語として機能するところが便利なのだ。たとえば、私 が、よく使う構文は
for f in *.jpg; do やってほしい処理 1 やってほしい処理 2 ... doneのような for 文といわれる制御構造だ。たとえば、hoge001.jpg hoge002.jpg ... hoge200.jpg というファイルがあったとしよう。これを moge001.jpg moge002.jpg ... moge200.jpg というようにファイル名を変更するためには
for f in hoge*.jpg; do mv $f moge${f#hoge} doneなんてなことをする。ここで、fというのは変数で設定の際だけそのまま用いて、 参照する際には $ をつける。たとえば
msg="Hello. Today is hotday." echo $msgのように用いる。
http://www.hogehoge.com/hoge0[01-99].pdfのようにファイルに番号が振られて保存されている場合がある。こんなときにこ ういうファイルをダウンロードするためによく使うのは curl というコマンドだ。 上の場合は
curl -O http://www.hogehoge.com/hoge0[01-99].pdfとすればいい。プロクシを通すとか細かい設定もできる。 詳しくはマニュアルを読みましょう。
他にも wget というコマンドがある。しかし wget は http://www.hogehoge.com/hoge0[01-99].pdf のようなファイル指定 を理解しない。だから
declare -i n=1 while [ $n -le 9 ]; do wget -c http://www.hogehoge.com/hoge00$n.pdf n=$n+1 done while [ $n -le 99 ]; do wget -c http://www.hogehoge.com/hoge0$n.pdf n=$n+1 doneのようにシェルスクリプトを組むとか、何か工夫が必要。 -c オプションが使えるのがうれしい。 -c (continue)オプションはタイムアフトしたときなど、その続きから ファイルの残りの部分をダウンロードしてくれる。
unzip file.zip ... password: [ここでパスワードを入れる]を実行して普通にパスワードを入れればいい。でも、日本語(Shift-JIS)のパス ワードがかかった ZIPファイルを展開するにはどうしたらいいだろうか。このた めには、まず、端末で日本語を入力できるようにしておかなければならない。 kinput2 や ATOK などお好みのものを使えばよい。そうした上で
unzip -P`nkf -s` file.zip [ここでパスワードを入力] Ctrl-d (コントロールキーを押したまま d を押す)とすると、パスワードが正しければ展開されるはずだ。 上で端末で入力する方法を書いたけどエディタでパスワードを書いたファイルを つくって、それを Shift-JIS で保存しておいても同じようにできる。そのファ イルをpasswd.txtとしよう。
unzip -P`cat passwd.txt` file.zipで大丈夫のはず。
#!/usr/bin/perl use Image::EXIF; #use Data::Dumper; die "Usage: $0 file names...\n" unless(@ARGV); foreach $file (@ARGV) { my $exif = new Image::EXIF($file); my $all_info = $exif->get_all_info(); print "---Camera information---\n"; my $key="camera"; foreach my $key2 (sort keys %{$all_info->{$key}}) { print "$key2: $all_info->{$key}->{$key2}\n"; } print "---Image information---\n"; $key="image"; foreach my $key2 (sort keys %{$all_info->{$key}}) { print "$key2: $all_info->{$key}->{$key2}\n"; } print "---Other information---\n"; $key="other"; foreach my $key2 (sort keys %{$all_info->{$key}}) { print "$key2: $all_info->{$key}->{$key2}\n"; } }を exifprint.pl などのファイル名で保存し実行属性を与えておきます。
chmod 755 exifprint.plなど。あとは、普通に実行します。
exifprint.pl file1.jpg
mplayer -dumpstream -dumpfile hoge.asx mms://hoge.moge/hoge.asxとすると、 hoge.asx としてファイルが保存されます。 当然のことながら WMV の DRM とかがかかっていると保存できません。
Linux kernel 2.6系列を使用するときのメモ
Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/psaux" Option "Protocol" "PS/2" Option "Emulate3Buttons" "true" Option "EmulateWheel" "true" Option "EmulateWheelButton" "2" Option "EmulateInerita" "50" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "Generic Mouse" Driver "mouse" Option "SendCoreEvents" "true" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "true" Option "ZAxisMapping" "4 5" EndSectionのように記述していたが、これが2.6系列では期待するように動作しない。 2.6系列では
Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/psaux" Option "Protocol" "ImPS/2" Option "Emulate3Buttons" "on" Option "Emulate3Timeout" "50" Option "EmulateWheel" "on" Option "EmulateWheelButton" "2" # Option "EmulateInerita" "50" Option "ZAxisMapping" "4 5" EndSectionとして使用している。これで、トラックポイント、USB接続のマウスとも だいたい期待するように動いてくれる。 (つねに、Emulate3Buttonsなのはつらいが、もう慣れた) もっとまともな設定方法を知っている人が いたらおしえてください。