2008年6月22日日曜日

kaoriya版vimでは便利なコマンドが用意されているよ

http://nanasi.jp/articles/vim/cmdex_vim.html

↑に書いてありました

/vim71-kaoriya-w32j/runtime/plugin/cmdex.vim
↑に置かれているので見てみると良いんじゃないでしょうか

HTMLConvertは中で2html.vimを呼んでるみたいですね
TOhtmlコマンドがあるのになんでこんなコマンドあるんだろ・・・

2008年6月16日月曜日

vimでマークを視覚的に表示する

http://nanasi.jp/articles/vim/showmarks_vim.html
http://www.vim.org/scripts/script.php?script_id=152

他にもマークにマッチする正規表現があるのでそれでもおkです。
たとえばaマークをTodoハイライトするには
syntax match Todo /.*\%'a.*/ containedin=ALL
を$VIM/runtime/syntax/txt.vimというファイルを作り入れておきます。
自分はtxtにそのハイライトを当てているので_gvimrcの中で
autocmd BufRead,BufNewFile *.txt setfiletype txt
を追加してファイルタイプを設定しています。

2008年6月15日日曜日

2008年6月14日土曜日

シェルの環境変数で前回コマンドの終了ステータスを確認する

$?に入っているそうですよ
http://www.geocities.jp/geo_sunisland/exit_status.html

ActivePerlでyahooにメールを送ろうか

Net::SMTPモジュールを使います。ただデフォルトでauthメソッドを使おうとしてもパケットを投げてくれないので、下のモジュールを新たにppmか何かでインストールして下さい。

次にコーディングに入ります。Net::SMTPについての説明はこちらを参照してください。
メールヘッダについてはTo:だけでいいかと思ったらうまく送信できなかったので、Thunderbirdのパケットをキャプチャしたものを丸パクリします。
Dataヘッダについては何でもいいかと思いますが、一応現在時を取得する方が親切設計でしょう。どれが必要なヘッダか不要なヘッダかは面倒なので調べていません。
Message-IDですがこちらを見る限り何でもいいそうです。好きな命名規則で良いでしょう。
*参考
yahooの鯖はSMTPを拡張したESMTPで運用されています。ESMTPではグリーティングの際にEHLOコマンドを用います。(SMTPではHELOコマンド)
EHLOコマンドでは自分のホストを通知します。Thunderbirdでは

EHLO [192.168.0.6]

とグリーティングしますが、Net::SMTPでは

EHLO localhost.localdomain

とグリーティングします。まあどっちでも構いませんが、、、
http://www.atmarkit.co.jp/fnetwork/rensai/netpro06/netpro01.html


#!/usr/local/bin/perl

use Net::SMTP;

$user="??????";
$passwd="?????????????";
$maildata=<<"END";
Message-ID: <1234567890123456@yahoo.co.jp>
Date: Sat, 14 Jun 2008 09:59:39 +0900
From: uesugi
User-Agent: Thunderbird 2.0.0.14 (Windows/20080421)
MIME-Version: 1.0
To: yahoo
Subject: This Mail Make Perl
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
END


$smtp = Net::SMTP->new('smtp.mail.yahoo.co.jp',Timeout=>30,Debug=>1);


$smtp->auth($user, $passwd) or die "Auth Fail\n";
$smtp->mail('????????????????????@yahoo.co.jp');
$smtp->to('????????????????????@yahoo.co.jp');

$smtp->data();
$smtp->datasend("$maildata");
$smtp->datasend("\n");
$smtp->datasend("A simple test message\n");
$smtp->dataend();

$smtp->quit;


print $smtp->domain,"\n";
$smtp->quit;

Debian(etch)でcpan設定

まずCPANを使う上で必要なソフトは下記のとおりです。先にインストールしておきます。
gzip,tar,unzip,make,lynx,wget,ncftpget(ncftpでインストール)


#cpan
で初回起動時の設定が入る。基本的にEnterでデフォルトの設定で問題ないと思います。
The next option deals with the charset your terminal supports. In
general CPAN is English speaking territory, thus the charset does not
matter much, but some of the aliens out there who upload their
software to CPAN bear names that are outside the ASCII range. If your
terminal supports UTF-8, you say no to the next question, if it
supports ISO-8859-1 (also known as LATIN1) then you say yes, and if it
supports neither nor, your answer does not matter, you will not be
able to read the names of some authors anyway. If you answer no, names
will be output in UTF-8.

Your terminal expects ISO-8859-1 (yes/no)?
↑のように聞かれたらnoがいいかもしれません。

そんで使えるCPAN鯖が無かった場合はftp://ftp.kddlabs.co.jp/CPAN/とかを使うといいかもです。

find `perl -le 'print for @INC'` -name '*.pm' | less
↑のコマンドでインストールされているモジュールを確認できます。

あと
cpan> m /Net::SMTP_.*/
Module id = Net::SMTP_auth
CPAN_USERID APLEINER (Alex Pleiner )
CPAN_VERSION 0.08
CPAN_FILE A/AP/APLEINER/Net-SMTP_auth-0.08.tar.gz
MANPAGE Net::SMTP_auth - Simple Mail Transfer Protocol Client with AUTHentication
INST_FILE /usr/local/share/perl/5.8.8/Net/SMTP_auth.pm
INST_VERSION 0.08
↑みたいな感じでモジュール検索もできます

2008年6月12日木曜日

pearのコマンドとか・・・

phpのライブラリ管理のpear
よく使うコマンド備忘録

pear
PEARコマンド一覧表示

pear help command_type
command_typeの説明を表示

pear list
現在インストールされているパッケージ一覧

pear list-upgrades
更新ライブラリの確認

pear upgrade package
パッケージのアップグレード前述のpear list-upgradeで出てきたPACKAGE欄を
packageに入れる

aptitudeのよく使うコマンドとか

検索時には正規表現が使えます
lで検索すると制限できていいかも・・・

~d説明
正規表現説明にパッケージ説明がマッチするパッケージにマッチします。

~d"test"
みたいな感じで

検索パターン

2008年6月8日日曜日

scimとgvimは相性悪いみたい

http://d.hatena.ne.jp/silverintegral/20071115
こんな感じでどーぞ

2008年6月7日土曜日

定期的に文章をバックアップする

なんか大事な文章を日付順にバックアップしておきたいときに書くシェルスクリプトとか・・・

#! /bin/bash

var=`LANG=C date +'%Y%m%d%a'`
cp /media/taihi1/komando.txt /media/taihi1/komando-bak/$var.txt

Linux版のvim7に日本語ヘルプを入れてみる

なんかkaoriyaさんのとこに
http://www.kaoriya.net/vimdoc_j/
という日本語ヘルプがあったので落としてくるそんで解凍とかする。
解凍したものを/usr/share/vim/vim71に放り込んでも拡張子が.jaxとかなっててうまくいかない
しょうがないから拡張子を.jax→.txtにする
一括変換とかシェルスクリプトでできそうだけど分からないからPerlで書く
#!/usr/local/bin/perl

$newdir=".";
chdir $newdir or die "$newdir is not found!\n";
opendir(DIR, ".");
@file = readdir(DIR);
closedir(DIR);

@file = sort {(stat ($a))[8] <=> (stat ($b))[8]} @file;

foreach(@file){
if($_=~/^\.$|^\.\.$|^rename\.pl$/){
next;
}
if ($_=~/\.jax$/){
$moto=$_;
$_=~s/\.jax$//;
system "mv $moto $_.txt";
#print "$moto $_.txt\n";
}
# print $_,"\n";
# `mv $moto `;
}

2008年5月17日土曜日

telnetのポート番号を変更したりとか・・・

/etc/servicesあたりかなあと
/etc/inetd.confとかも・・・

2008年5月6日火曜日

expectを使って自動的にPCをシャットダウンさせる

こんな感じで書くと良いですよ
WebからやりたいならPerlならsystem関数とかで呼べば良いんじゃないでしょうか


#!/usr/bin/expect
set timeout 10
spawn telnet 192.168.0.2
expect "login:"
send "root\n"
expect "Password:"
send "hogehoge\n"
send "shutdown -h now\n"
send "exit\n"
interact

apache2にDirectoryIndexの設定項目が無い件

/etc/apache2/mods-enabledのdir.confにあるそうです

参考リンク
http://www.maocat.jp/?p=10