CentOS/vm wareにcentosを入れてローカルサーバーとして使う時の設定

勉強用に、新たにcentosをvm wareに入れました。 ・fire wall→ローカルサーバーなので「無効」に。 ・SELinux→「無効」 ・Kdump→「無効」 ただcentosをインストールしただけでは、sshのポートしか開いていないので、他のも開ける。 (ここでfire wallなどの設…

MySQL/mysqlのインストール〜sql文の実行

3手順踏めば大丈夫でした。 (1)mysqlサーバーが入っているか確認。 shell> ps agx| grep mysql(2)root権限になってmysqlサーバーをインストール。 shell> sudo su - shell> yum -y install mysql-server(3)mysqlでデータベースを作り、別ファイルに書いたSQL…

ファイルの読み込み開始位置と終了位置を指定して書き出す〜seek、read

●ポイント ◎seek([ファルハンドル], [起点からの位置(スタート地点になる)], [起点]); 起点は、0だとファイルの先頭、1だと現在の位置、2だとファイルの末尾になる。(0, 1, 2以外は入りません) 例), seek($fh, 20,0); →ファイルの先頭から20バイト進んだとこ…

File::Temp〜一時ファイルを保存するディレクトリと一時ファイルの名前を生成する。

画像をアップロードしてもらう、という処理なんかに有効です。画像アップロードの処理として、アップロードしてくれた画像を一時ファイルとして保存して成形し、成形後に一時ファイルを消したいとします。そんな時に役立つのがFile::Tempです。File::Tempは…

世にさらすサービスのコードでopenを使っているときに気をつけないといけないこと

例えば、jsonファイルをアップロードしてもらう仕組みを作ったとします。処理の流れは、受け取ったjsonファイルを一時ファイルとして保存し、ファイルopenしてごにょごにょと処理をするというものにしているとします。で、ファイルopenの部分を以下のように…

OSの影響を考えなくても改行コードを落とす方法〜正規表現

perlには、chopやらchompやら改行を落とす関数がありますが、これらは改行コードを落とすには不十分です。そこで、以下のように正規表現を使って書けば、どんな改行コードでも落とせちゃいます。 $line =~ s/[\r\n]+\z//;そもそも、なんでchopやchompでは役…

ディレクトリをサブバージョン管理に入れないコマンド

shell> svn pe svn:ignore ディレクトリsvn propset svn:ignoreでもできなくて、svn propedit svn:ignoreでもできなくて、これならできた。

useの種類

perlで、use strict;とかuse Data::Dumper;とかしますよね。useのあとに続く言葉に、大文字で始まったり小文字で始まったりといろいろなので、規則性を調べてみた。 useと書くときは、以下の3種類。 ■モジュールをnewするとき。 ■モジュールのメソッドをイン…

正規表現、ループ処理の練習〜タブ区切りの.txtを.csvにする。

最初に、このお題の私の回答を見てくれた先輩の言葉。 ● \ は、「エスケープに使用している」のか「そういう文字そのもの」なのか常に意識して考えなくてはならない。 ●dieが適切な部分に使えるかどうかで、どれくらいのperl使いなのか分かる。 ●プログラム…

無名配列、配列のリファレンスとデリファレンス、ループ処理の練習〜マトリックスを転置しよう

●お題 まず、自分で以下のような配列を作る。 1,2,3,4,5 6,7,8,9,10 11,12,13,14,15 16,17,18,19,20 21,22,23,24,25 作った配列を、以下のように転置する。 1,6,11,16,21 2,7,12,17,22 3,8,13,18,23 4,9,14,19,24 5,10,15,20,25 ●回答 #! /usr/bin/perl use …

ハッシュと正規表現、ループの練習〜ある一日のapachログを10分ごと、30分ごとにカウントしよう

準備物は、ある一日のapacheのログが書かれたファイルです。 そして、いきなり回答です。 #! /usr/bin/perl use strict; use warnings; use Data::Dumper; my %count10; #10分ごとのカウント my %count30; #30分ごとのカウント open(FH,'<access'); # accessはログのファイル while(my $data = <FH>){ chop($data); my </access');>…

正規表現(3)〜オプションと置換

とりあえずの更新3つめ。今日上げた他の2つの記事と合わせて、後日書き直します。 $s =~ /.+/ # '/' でなくてもよい。ただし、その場合は'm'を省略することができない。 $s =~ m/.+/ $s =~ m!.+! $s =~ m%.+% $s =~ m{.+} ### URL(例) ### $_ = 'http://www.…

正規表現(2)〜正規表現のオプションとsplitで正規表現を使う

理解してもらうということをまったく考慮していない記事ですみません。とりあえずの更新第2弾。こちらもあとで書き直します。 $s =~ /.+/ # '/' でなくてもOK $s =~ m/.+/; $s =~ m!.+!; $s =~ m%.+%; $s =~ m{.+}; ### URL(例) ### $_ = 'http://www.keyman…

正規表現(1)〜メールアドレスかどうか、URLかどうかをチェックする

とりあえずの更新をします。あとできれいに書き直しますー。 #正規表現はなるべく長くマッチしようとする '<a>aaa</a><b>bbb</b><c>ccc</c>' =~ />(.+) 'aaa</a><b>bbb</b><c>ccc' #最短一致=>+?もしくは*?を使用する。 '<a>aaa</a><b>bbb</b><c>ccc</c>' =~ />(.+?)</;#=>何かが1個以上連続したあとの一番最初に来る<にマッ…

Test::MoreでWide character in print at〜と怒られる

■エラー内容 Test::Moreのis_deelpyで日本語での出力「本文だよ」を期待していたが、「Wide character in print at 〜」と怒られるので解決方法を探しました。 具体的には、こんなエラー↓↓ ■原因 utf-8フラグが立っている、もしくはASCIIでない文字をTest::M…

空、0、undefはif文では偽なのか真なのか

今更ながら、ちょっと迷ってしまったのでメモします。さて、表題の答えは、偽と真どちらでしょうか。 正解は、空も0もundefも「偽」!! 忘れないようにしなきゃ。たまに、ころっと忘れる時があるんだよねぇ。。。

vimコマンド〜ファイル操作、コピー&ペースト

先輩のvim操作を盗み見してみた。 ◎複数ファイル操作 :ls ⇒今まで行ったファイル操作が見れます(バッファ一覧を見ることができる) :b数字 ⇒:lsで見た数字を入れると、そのファイル操作が実行される ■使い方例 (1)今までのファイル操作一覧を表示します :ls ⇒…

画像の縦横サイズを取得する〜Image::Size

cpanは以下のurl。 http://search.cpan.org/~rjray/Image-Size-3.220/lib/Image/Size.pm 依存モジュールもたった3つ。Cのコンパイルも不要。これまた使い方がびっくりするほど簡単。◎使い方 use Image::Size qw/imgsize/; my ($width,$height)=imgsize($inpu…

vimコマンドとshellコマンド〜ファイルタイプに合わせてコードを色付けする。コマンドを短縮で実行する。

■vimコマンド ●言語に合わせてコードを色付けしてくれます。 vimでファイルを開き、以下のコマンドを打つ。 (インサートモード等、別モードで作業している時は、escを押してから。) :set ft=perlいやー、便利。上の例だと、perlのコードとして色付けしてくれ…

サブルーチンをライブラリにしてそれを呼び出して使う〜require, なぜ最後に1をつけるのか

◎お題 配列の重複している要素をまとめるサブルーチンを作り外部ファイルにしたものを、他のプログラムで呼び出し実行する。 ■サブルーチン(arrutil.pl) ※呼び出して実行するプログラムと同じディレクトリにおく。 #! /usr/bin/perl use strict; use warning…

並べ替え〜sort, substr, lengthも使ってみる

◎お題 要素が数値だけのものと文字列だけのものと2つ配列を用意し、数値だけのものは文字列順と数値順、桁数順でそれぞれ昇順と降順に並べ替え、文字列だけのものは文字列順と文字数順でそれぞれ昇順と降順に並べ替えて出力する。 #! /usr/bin/perl use stri…

無名サブルーチンを作って実行する

◎お題 無名サブルーチンを、引数のいらないものといるものの2パターン作り、それぞれを実行して実行結果を出力する。 #! /usr/bin/perl use strict; use warnings; my $studyB=sub{ my ($katei, $takasa, $jyoutei) = @_; my $menseki = ( $katei + $jyoutei…

リファレンスとデリファレンスを利用してサブルーチンをまわす

◎お題 引数のいらないサブルーチンを作り、そのリファレンスを使用してサブルーチンを実行する。 #! /usr/bin/perl use strict; use warnings; #通常のやり方でサブルーチンを実行してみる &print; my $ref_sub = \&print; #二通りのやり方で、サブルーチン…

サブルーチンのリファレンスとデリファレンス

◎お題 サブルーチンを作り、そのサブルーチンのリファレンスを表示する。また、そのリファレンスをデリファレンスしてサブルーチンから結果を得る。 #! /usr/bin/perl use strict; use warnings; #計算結果を表示 print &keisan(4,5),"\n"; #サブルーチン、k…

配列の配列、無名配列

◎本日のお題一つ目 無名配列を使用して、ネストした配列を作り、任意の値をprintする。 #! /usr/bin/perl use strict; use warnings; my @array=( 0, ['00','01',['0200','0201','0202',['020300','020301',],],], [10,11,[1200,1201,1202,[120300,120301,],…

リファレンスとデリファレンスを使用して、配列の要素をprintする

◎本日2つめのお題 配列を定義し、その配列のリファレンスをつかってある要素の値をデリファレンスして取得する。 #! usr/bin/perl use strict; use warnings; my @array=(0,1,2,3,4,5,6,7,8,9); my $ref_array=\@array; print "\@array=@array\n"; print "\$…

サブルーチンにリファレンスで引数を与えて計算結果をもらう

先輩に、どーやったら早くプログラミングスキルが身に付きますか、と聞いてみた。答えは、「簡単なプログラムをたくさん書いて実際に動かし、仕組みを理解すること」。なので、筋トレのごとく、小さいプログラムを一日3つは書いていきたいと思います。◎今日…

鍵認証〜公開鍵の登録とsshd_configの設定

※スペルミス修正(2011,03,28):2カ所記述ミスがありました。authorizes_keys→authorized_keys ※以下は、リンク先も含めて、RSA鍵(ssh version2)で鍵を作って設定をするやり方です。●以下のメモで言うところの、「sshで接続する側(個人PC、クライアント側)で…

秘密鍵と公開鍵は、サーバー側(ssh接続される側)で作ろうがクライアント側(sshコマンドを打って接続しに行く側)で作ろうが、どっちでもいいそうな。

秘密鍵と公開鍵って、どっちをリモートホスト側(sshで接続される側)に置いて、どっちをクライアント側(sshコマンドを打って接続をお願いする側)に置くか、こんがらがりませんか?私は、google検索で、鍵ペアをリモートホスト側で作るやり方とクライアント側…

CentOS〜一般ユーザーのパスワードを再設定する

(1)rootユーザーに変身します shell> sudo su - (2)passwdコマンドでユーザーのパスワードを再設定します。 shell> passwd ユーザー名ここまでやったら、再設定したパスワードをユーザーに教えて上げて、教えてもらったユーザーがsshログイン。そのあと、以…