2009年2月28日土曜日

perlのワンライナー

よく忘れるのでメモ

↓は普通の使い方

perl -e 'print "hello"'


↓test.txtの中身を表示 -nオプションは
こんな感じの意味
while (<>) {
... # your program goes here
}

perl -ne 'print' test.txt


↓test.txtの中身を表示 -pオプションは
-nの最後にプリント文をかます様なイメージ

perl -pe '' test.txt


ライン処理を追加する(print文の後に改行+<>後にchmop)

perl -lpe '' test.txt


-iオプションは対象のファイルを上書きする
注意するのは-iはその後に変更前のファイル名を取るので
まとめないこと(-ipleは駄目)
上がtest.txtの頭に行番号を付加する
下が変更前のtest.txtをtest.txt.backとして残す

perl -i -ple 's/^(.*$)/$.$1/' test.txt
perl -i.back -ple 's/^(.*)/$. \: $1/' test.txt


参考リンク
http://blog.livedoor.jp/dankogai/archives/51026593.html
http://perldoc.jp/docs/perl/5.6.1/perlrun.pod
http://www.google.co.jp/

2009年2月22日日曜日

ちょっとsshの鍵認証についてまとめておこうか

設定は/etc/ssh/sshd_config

下は推奨設定
AllowUsers hogehoge
Port 443
PasswordAuthentication no
PermitRootLogin no
PermitEmptyPasswords no


ssh-keygen -t rsa
で作る
/home/hogehoge/.ssh/id_rsaに保存
パスフレーズも決める
id_rsa 秘密鍵
id_rsa.pub 公開鍵

公開鍵(id_rsa.pub)は
~/.ssh/authorized_keys
にリネームする
秘密鍵はクライアントに転送

クライアントがLinuxの場合は
~/.ssh/id_rsa
と置く

クライアントがWindowsの場合は
puttygen.exeを起動Loadを押して
id_rsaを読み込ませパスフレーズを入力→
変換後はprivatkeyとして保存(ppkファイル)

ログインの際は
ssh -p 2200 hogehoge@hoge.com
みたいな感じ
id_rsa(秘密鍵)を指定する場合は
ssh -p 2200 -i hoge.rsa hogehoge@hoge.com
みたいにする

参考URL
http://www.jitaku-server.net/ssh_crypto.html
http://kazmax.zpp.jp/linux/lin_sshrsa.html

debian lennyを入れたらpstreeどっかいった

つpsmisc

コンソール環境でモニタの電源を切るには

Debian Lennyで試した
ディスプレイを自動的にきる設定
$ setterm -powersave on -powerdown 1
とかしておくといいらしい

あと↓も必要だと思う
$ setterm -blank 1

起動時に自動的にこの設定をするにはこちら

参考リンク
http://osdir.com/ml/linux.debian.jp.user/2004-02/msg00035.html
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/251stopconsuspnd.html

2009年2月21日土曜日

perlの数値回りのはなしー

printf "%u\n",~0;

チルダ+0で上限値が出る?みたいね
まあCOBOLで言うところのHIGH-VALUEみたいなもんか

追記
上限値が出るっていうかあれです
ビット演算のビット反転効果があったみたいですね
http://www.rfs.jp/sb/perl/02/bit.html


参考リンク
http://questionbox.jp.msn.com/qa2174949.html
http://perldoc.jp/docs/perl/5.8.8/perlop.pod

HttpWatch Basic Edition

公式サイト

機能多くて全部使い切れないけどなんかすごい



参考サイト
http://gigazine.net/index.php?/news/comments/20090218_httpwatch/

2009年2月15日日曜日

perlでプログレスバー的なものを作る

ポイントは$lと\rです。
$|・・・出力をバッファリングするかどうか(0以外はバッファリングしない。つまりprint文は直ぐ出すということ)
\r・・・キャリッジリターンまあ頭にカーソル戻すよーみたいな意味


#!/usr/bin/perl
$max=125;
$split=50;

$| = 1;
$ps=int($max/$split+1);
for (1..$split){
print "[","=" x $_," " x ($split-$_),"]";
print "\r";
sleep 1;
if ($_==$split){
print "[","=" x $split,"]\n";
exit;
}

}


参考リンク
http://perl.g.hatena.ne.jp/bosh/20080107/p1
http://www.geocities.co.jp/SiliconValley-Sunnyvale/6128/perl/evalue.html

2009年2月7日土曜日

perlでSJISマッチング

/\Qあああああ\E/

みたいに\Qと\Eで挟むと良いらしい・・・
まあ何でかと言うと\Qと\Eの間はメタ文字を打ち消す効果があるからだけど
http://saboten009.blogspot.com/2008/02/perl.html

perlで今実行しているファイル名を調べる

実行中のプログラム名(ファイル名)
を参照する特殊変数は?
$0っていう変数で出来るお

#!/usr/bin/perl
print $0,"\n";

2009年2月2日月曜日

lessとかページャーの設定メモ

lessのエンコードを指定する変数LESSCHARSET


export LESSCHARSET=dos


そんでデフォルトのページャーを変更する
export PAGER=less



参考サイト
http://d.hatena.ne.jp/n-kaneshige/20081202/1228194177