2008-01-01から1年間の記事一覧

cmdからネットワークドライブをマウントしフォルダを中身ごとコピー

net use X: \\192.168.1.101\c$ password /user:Administrator xcopy X:\test C:\temp\test /e net use X: /delete

gccの使い方

gccのオプション -v デバッグできるようにコンパイル -l インクルードパスを追加 -c オブジェクトファイルの生成 -o 実行ファイル名を指定 -Wall ワーニング全開 gcc -g -Wall helloworld.c foo.c -c gcc helloworld.o foo.o -o helloworld

よく使うgrepのオプション

よく使うgrepのオプション r フォルダー内ファイルを再帰的に検索 n 結果の行番号も表示 i 大文字小文字の区別無し I バイナリファイルを無視 v 結果を反転(マッチしなかったもの) A マッチした行の後ろも分表示 B マッチした行の前も分表示 C マッチした…

実行ファイルや.soファイルの関数名を調べる

-g オプション付きでコンパイルする必要があるかも・・ /usr/bin/objdump --all-headers [ファイル] | grep [関数名]

Windows Server 2008でIIS7.0をコマンドラインから設定

featuresやrolesを追加 servermanagercmd.exe -install [features...] servermanagercmd.exe -install [roles...] サイトを追加 C:\windows\system32\inetsrv\appcmd.exe add site /name:testsite.com /bindings:"http/*:80:testsite.com,http/*:80:www.test…

Windowsのパーミッションをコマンドラインから変える

Explorerでフォルダーやファイルの"Property" -> "Security"でパーミッションを変えれるがコマンドラインでもできる。 例 "Users"に"C:\temp"のフルコントロールを与える cacls C:\temp /e /g Users:f Win VistaやWin Server 2008ではcaclsではなくicaclsを…

C言語のchar配列の初期化

memsetが普通のやり方 char str[512]; memset(str, '\0', sizeof(str)); 一行でも記述可能 char str[512] = {0};

LVMにディスクを追加してみた

LVMにディスクを拡張追加 物理的に/dev/hdbを追加 (今回はVMWare Serverに追加なので以下の設定をする) "Edit virtual machine setting" -> "Hardware" -> "Add" -> "Next" -> "Hard Disk" -> "Next" -> "Create a new virtual disk" -> "IDE" -> "Next" -> …

Perlで文字列をMD5のハッシュ化をする

use Digest::MD5; my $str = "test"; my $md5_str = Digest::MD5->new()->add($str)->hexdigest;

PerlのHTML::EntitiesでHTML特殊文字をデコードする

Web::ScraperでHTMLをパースした時に&や'がHTML特殊文字に置き換わることが分かったので HTML::Entitiesのdecode_entities関数で元に戻す。 サンプル use HTML::Entities; my $html = "--&#39;--<a href='localhost'>test</a>--&#39;--&#38;--&#34;--"; print decode_entities($html)…

PerlからPHPにJSONを使ってデータを引き渡す

ハッシュやオブジェクトなどの複雑なデータ構造のものを引き渡すのにJSONを使うのが最適です。 PerlにJSONモジュールをインストール cpan cpan> install JSON PHP4にJSONモジュールをインストール(PHP5にはディフォルトで入ってる) PEAR版とPecl版があるが今…

Perlには複数行コメントがあったらしい・・・

=podと=cutで括れば複数行コメントの完成 perldoc用の記述方らしいです。 =pod print $val1; print $val2; =cut

Ubuntu Live CDでハードドライブのデータをサルベージする。

同僚のラップトップのWindowsが全く起動しないのでUbuntu7.04 Live CDを使って データをサルベージしてみる。 Live CDを起動して以下のコマンドでハードドライブをマウントする。 (ハードドライブがSCSIだと/dev/sda1でSATAだと/dev/hda1になる) mkdir /wind…

Perlのリファレンス参照

Perlでは変数などのアドレスは名前の前に\を付ければとる事が出来る。 アドレスからデータを参照する場合は$を付ける。 例1 my $name = "sodomojo"; my $address = \$name; print "$name $address $$address\n"; #結果 #sodomojo SCALAR(0x9406bf0) sodomojo…

Perlでハッシュの配列をソートする。

ハッシュの配列をsort関数でソートする。 サンプル use strict; use Date::Dumper; # データ my @array = (); $array[0] = { "id"=> 1, "time"=> 1213011545 }; $array[1] = { "id"=> 2, "time"=> 1213012384 }; $array[2] = { "id"=> 3, "time"=> 121300129…

PerlのWeb::ScraperでHTMLを簡単パース

PerlのScraperモジュールを使えばHTMLを簡単にパースできる。 Scraperをインストール #cpan cpan>> install Web::Scraper サンプルコード use Web::Scraper; use URI; use Data::Dumper;my $scraper = scraper { #tag内のテキストを抽出 process 'a', 'value…

Perlのハッシュプリント

ハッシュをforeachでトラバース sub print_hash(){ my(%hash) = @_; foreach my $key (keys %hash){ print "key:$key\tval:$hash{$key}\n"; } } というかDumperモジュールを発見。 use Data::Dumper; print Dumper %hash;

Perlのユーザーエージェントで自動情報収集

PerlのLWP::UserAgentを使ってHTTPリクエストを投げて情報収集を自動化できる。 例: HTMLの<a>タグの全てリンク先を取得 #!/usr/bin/perl use strict; use LWP::UserAgent; #Send HTTP Request my $url = "localhost/index.html"; my $method = 'GET'; my $ua =</a>…

tcpdumpでパケットキャプチャー

オプション -X パケットをhexとASCIIの両方を出力 -s パケットから取り出すデータの長さ (Ethernetは1500) -vvv 詳細を表示 -w 結果をファイルに書き込む -r -wで書き込んだファイルを読み込む -i NICの指定 (eth0など) example.comのポート80から(eth1経由)…

watchコマンドでリアルタイムに監視

フォルダーの中身を監視 watch ls -la netstatを毎秒起動しネットワークを監視 watch -n 1 netstat -lanput

IP設定の便利ツール

IP設定後にnetworkをリスタートせずに変更を反映するには: ifdown eth0 ifup eth0 1枚のNICに複数のIPを追加できる。 ip addr add 192.168.1.101/24 broadcast 192.168.1.255 label eth0:0 dev eth0

Vimの小技達

以下は「Esc」を押してから実行 Vimで「hello」という文字列を検索 /hello 「hello」を大文字小文字区別せずに検索 /hello\c 「hello」を「bye」に全て置換 :%s/hello/bye/g 行番号表示 :set number :se nu 行番号非表示 :set number! :se nu! 今いる場所か…

OpenSolarisのパッケージ管理コマンド

pkg-getコマンドを使うみたいです。 http://oshiete1.goo.ne.jp/qa1802335.html http://sy2920.s151.xrea.com/solaris/pkg-get.html http://www.screen.sc/wordpress/?p=28

JavaScript Packerのコードをデコードする。

JavaScript Packerでエンコードされたコードをデコードするツールを発見 http://blog.shimazu.org/utils/packer_decoder.html http://code.gosu.pl/dl/JsDecoder/demo/JsDecoder.html

findコマンドもすごい

PHPファイルを探して行数で降順ソート find . -name '*.php' -exec wc -l "{}" \; | sort -g -r | head

キャッシュさせないようにHTTPヘッダーを設定する

Metaタグでキャッシュさせないようにする。 <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> PHPのヘッダー関数でキャッシュさせないようにする。 header('Last-Modified: '.gmdate( 'D, d M Y H:i:s' ).' GMT'); header('pragma: no-cache'); header("Cache-Control:…</meta></meta></meta>

PHPで文字列を正規表現を使って置換する

preg_replace関数で正規表現の置換 $q = '?page=test&ts=123348238'; $pattern = '/ts=(\d+)$/'; $newTS = '43242332'; echo preg_replace($pattern, $newTS, $q); 実行結果 ?page=test&ts=43242332

PHPで数字をフォーマットする

PHP

echo $year . format($month, 2) . format($day, 2); function formatNumber($number, $numDigits){ return sprintf("%0{$numDigits}d", $number); }

Windowsのサービスをコマンドプロンプトから操作する

現在動作中のサービスのリストを取得 net start サービス登録 mysevice.exe -/Service サービス解除 mysevice.exe -/UnRegServer サービス開始 net start mysevice サービス停止 net stop mysevice

lsコマンドはすごい

サブフォルダーの中身も含めてリスト表示 ("du -a"コマンドをさらに強化した感じ) ls -lR ディレクトリのみをリスト表示 ls -ld */