| 知らない人もたくさんいるでしょうか、一つの選択肢として 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なのはつらいが、もう慣れた)
もっとまともな設定方法を知っている人が
いたらおしえてください。