テキストファイルから重複行を削除するコマンド【uniq】

テキストファイルから重複行を削除するには

エクセル等で作業する方が多いみたいですが、unixコマンド一発です。

uniq ファイル名 

重複行が削除されたテキストが画面上に表示されます。

結果をファイルに保存したい場合は

uniq ファイル名  > 保存するファイル名

でOK。

No.739

07/29 13:55


ファイル


ログイン状況を表示する who last lastlogin

ログイン状況を確認するコマンド群

現在ログインしている全てのユーザーを見る

who

ログイン履歴、ホスト名を表示

last -a

最終ログイン時刻、ホスト名を表示

lastlog

No.639

11/19 14:12


ユーザー


不要なサービスの停止

UNIXで現在自動起動になっているプロセスをみるには

chkconfig --list
または【ランレベル3:on】 をみたい場合は
chkconfig --list | grep 3:on

とします。

そのなかで不要なプロセス一覧は

acpid ACPIによる電源管理。サーバーは常時稼働なので必要なし。
atd	指定した時間にコマンドを実行する(crontabを使うので不要)
cpuspeed CPUクロック周波数調節デーモン(遅くなるので不要)
firstboot インストール後の最初の設定をするデーモン
ip6tables IPv6パケットフィルタを管理する
irqbalance マルチ・プロセッサシステムにおいて割り込みを均一化する(1CPUの場合は不要)
lm_sensors cpu温度などのセンサー
microcode_ctl Intel IA32 マイクロコードの更新をできるようにするためのドライバ(要不要の判断がこの情報だけでは出来ないが、必要だという情報があまり存在しないので不要と判断する。)
ntpd (NTP)デーモン(NTPサーバとして使用しない場合は不要。ただしcronで時刻調整が必要)
setnicspeed Googleで調べたけど出てこない
spamassassin 迷惑メールフィルタ(必要ない場合は停止する)
webmin webminを使用しないときはoffにする
yum-updatesd かわりに yum-cron をインストール、使用する場合はoff

参考

http://www.d3.dion.ne.jp/~koetaka/demon2.html

http://www.uchida.ac/centos/5/hosoku/security/service/index.html

http://a23187.yorozuyah.com/blog/?p=177

No.635

07/29 13:56


プロセス


一時的にroot(または別ユーザー)権限でコマンドを実行する sudo の設定

sudo は一時的に別のユーザーになってコマンドを実行するコマンドです。

このsudoを設定するコマンドがvisudoです。

【hoge】 ユーザーが コマンド【/usr/bin/testcommand】をパスワードなしで実行できるようにするには

sudo の設定

(root) ユーザーになって

visudo

を実行します。(エディタ vi が起動します。)

一番下に

hoge ALL=(ALL) NOPASSWD: /usr/bin/testcommand

と記述します。これだけで設定完了です。

なお全てのコマンドを sudo で実行できるようにするには

hoge ALL=(ALL) NOPASSWD: ALL

と記述します。

コマンドの実行

実行は(hoge)ユーザーになって

sudo /usr/bin/testcommand

とするとrootユーザーが上記コマンドを実行したことになります。

apacheユーザーなど 非シェルログインユーザーがsudoを実行できるようにするには

visudo を実行して

# Defaults    requiretty

と「Defaults requiretty」の先頭にシャープをつけてコメントアウトします。

するとシェルにログインできないユーザーでもsudoを実行することが出来ます。

( PHPから sudo をする場合にはこの設定を行った後下記リンクのように設定します )

参考:http://hogehack.blog80.fc2.com/blog-entry-36.html

No.631

11/19 14:14


ユーザー


diff(ファイル比較コマンド)の結果を色付けして見やすくする 【colordiff】

colordiffというdiff(ファイル比較コマンド)の結果に色を付けるコマンドがあり、なかなか便利なので導入してみます。

インストールは yumコマンド一発

yum install colordiff

■ 使い方1( diffコマンドの代わりとして使用する )

colordiff ファイル1 ファイル2


■ 使い方2 ( パイプとして使用する )

cat diff_result.txt | colordiff

■ 色の設定の仕方

色の設定ファイルは /etc/colordiffrc というファイルなのでこれをホームディレクトリの .colordiffrc というファイルにコピーして使用する

cp /etc/colordiffrc ~/.colordiffrc

中身はこんな感じ

# $Id: colordiffrc-lightbg,v 1.1.2.3 2004/06/06 10:29:17 daveewart Exp $
#
# Set banner=no to suppress authorship info at top of
# colordiff output
banner=no
# 
# available colours are: white, yellow, green, blue,
#                        cyan, red, magenta, black,
#                        darkwhite, darkyellow, darkgreen,
#                        darkblue, darkcyan, darkred,
#                        darkmagenta, darkblack
#
plain=black
newtext=darkblue
oldtext=darkred
diffstuff=darkgreen
cvsstuff=darkwhite

No.529

11/19 14:13


ファイル


あいまい検索コマンド【agrep】を使用する。

曖昧検索を行うコマンド「agrep」 というのがあるが、標準ではインストールされていない事がある。

のでまず「yum」コマンドを使ってインストール(Fedora Coreの場合)

yum install agrep

インストールが完了したら

whereis agrep

で確認。

■ agrepの使い方(普通の検索)

agrep wordtest /usr/share/dict/words

単語「wordtest」が /usr/share/dict/words にあるかどうか検索する。(普通の検索)

■ agrepの使い方(あいまい検索)

agrep -1 wordtest /usr/share/dict/words

単語「wordtest」に1文字分の間違いを許容した範囲で検索する。(あいまい検索)

■ agrepの使い方(あいまい検索 Best-match)

agrep -i -y -B wordtest /usr/share/dict/words

オプション -B をつけると一番近いと思われる単語を検索する

No.449

11/19 14:14


ファイル


複数のファイルのファイル名(拡張子)を一括で変更する。

UNIXでのファイル名変更コマンドは
mv file1.cgi file1.txt

(file1.cgi を file1.txt という名前に変更する)
ですが、これを一括でしようと思って
mv *.cgi *.txt

としてもエラーとなります。
そこで for文 を使って
for fname in *.cgi; do
mv $fname ${fname%.cgi}.txt;
done

とします

参考:http://www.atmarkit.co.jp/flinux/rensai/linuxtips/248chngext.html

No.418

11/19 14:08


ファイル


SSHを通して外部サーバーから安全にCVS使う

・1. 環境変数 CVS_RSHを設定する。
bashの場合
export CVS_RSH=ssh

tcshの場合
setenv CVS_RSH ssh


・2. CVSコマンドを実行する
cvs -d hogehoge@myhost.com:/home/hogehoge/CVSROOT checkout projectname

ユーザー名:hogehoge
ホスト名:myhost.com
CVSディレクトリ:/home/hogehoge/CVSROOT
プロジェクト名:projectname

No.381

11/10 16:57




バージョン管理コマンドCVSを使う

たまに質問されるので簡単なメモ。

■ まずCVSを使うにあたっての初期化を行う。
・1. CVSリポジトリ用のディレクトリを作成し、そのディレクトリを指定して初期化する。
-d オプションで指定するパスはフルパスで書くこと。(例:~/CVSROOT)
mkdir ~/CVSROOT
cvs -d ~/CVSROOT init

・2. CVSの対象外ファイルを指定する。
例えばMacOSXの.DS_Storeファイルなど管理しなくていいファイルの一覧を cvsignore というファイルに列挙しておくとCVSはそれらを対象外とする。
cd ~/CVSROOT/CVSROOT/
vi cvsignore
(viエディタで対象外ファイルを書き込み、保存する)

・3. 環境変数CVSROOTを設定する。
bashの場合
export CVSROOT=~/CVSROOT
export CVS_RSH=ssh

tcshの場合
setenv CVSROOT ~/CVSROOT
setenv CVS_RSH ssh

・4. 次にCVSにプロジェクトを登録する。
登録したいファイルやディレクトリが置いてあるディレクトリに移動して、
cd /path_to_your_projectdir/
cvs import -m "message" myproject hogehoge start

を実行する。
【"message"】メッセージ(なんでもよい。好きなメッセージを書いておく)
【myproject】プロジェクト名(プロジェクトごとに好きな名前をつける)
【hogehoge】ベンダータグ(省略不可、自分のユーザー名を付けるのが慣例)
【start】リリースタグ(省略不可、start とするのが慣例)

■ CVSを使ってファイルの更新、追加を行う。
・CVSチェックアウトを行う。チェックアウトとはローカル環境にファイルを取得することをいう。
常にチェックアウトしてから作業開始というルールでいけば問題は少ない。
作業用のディレクトリにcdしてからチェックアウトを行う。
cd /path_to_your_workdir/
cvs checkout myproject

・ファイルを更新する場合は特にCVSコマンドは必要ない。
(コミット時に変更があったファイルは自動的に更新される)

・ファイルやディレクトリを新規追加する
cvs -d ~/CVSROOT newfile.html


■ 更新、追加作業が完了したら最後にコミットする
・CVSコミットを行う
cvs commit -m "Message"

"Message":メッセージを書く。行ったコマンドを書いておくと良い。 add testfile.txt 等

No.380

11/10 20:05




ユーザーを追加する

■1.「testuser」というユーザーを追加するには次のコマンドを使用する

(シェル(ssh telnet)でのログインをさせない場合)
useradd -s /sbin/nologin testuser


(シェル(ssh telnet)でのログインをさせる場合)
useradd testuser


■2. 次に作成した「testuser」ユーザーのパスワードを設定する
passwd testuser

No.353

11/19 14:16


ユーザー


あるディレクトリ以下の合計ファイル数を(再帰的に)知るunixコマンド

あるディレクトリ以下の合計ファイル数を知るには
合計ファイル数:
ls -laR | grep -c '^-'


合計ディレクトリ数:
ls -laR | egrep -c '^d.+[^.]$' 

でいけます。

なおあるディレクトリ以下に作成するファイル数は 5000以内 にとどめておいたほうがいいとのこと。
http://japan.cnet.com/blog/neta/2006/08/20/linux1153000_b892/

関連:
ファイル・ディレクトリ容量やディスクの空き容量を取得する
http://logic.stepserver.jp/data/archives/97.html

No.336

11/19 14:06


ファイル


形態素解析ソフト「mecab」を使ってみる

mecabのダウンロード
http://mecab.sourceforge.jp/ から
「mecab-0.93.tar」(mecab本体)
「mecab-ipadic-2.7.0-20060707.tar」(辞書ファイル)
をダウンロードする。

mecabのインストール
tar xvf mecab-0.93.tar
cd mecab-0.93
./configure
make
make install


辞書のインストール(./configure --with-charset=utf8 で文字コードをutf8にしている)
tar xvf mecab-ipadic-2.7.0-20060707.tar
cd mecab-ipadic-2.7.0-20060707.tar
./configure --with-charset=utf8
make
make install

使い方
mecab
でmecabを起動する。

後は解析したい日本語を入力するだけ。
日本語の形態素解析を行ってみます。
日本語 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ
の 助詞,連体化,*,*,*,*,の,ノ,ノ
形態素 名詞,一般,*,*,*,*,形態素,ケイタイソ,ケイタイソ
解析 名詞,サ変接続,*,*,*,*,解析,カイセキ,カイセキ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
行っ 動詞,自立,*,*,五段・ワ行促音便,連用タ接続,行う,オコナッ,オコナッ
て 助詞,接続助詞,*,*,*,*,て,テ,テ
み 動詞,非自立,*,*,一段,連用形,みる,ミ,ミ
ます 助動詞,*,*,*,特殊・マス,基本形,ます,マス,マス
。 記号,句点,*,*,*,*,。,。,。


コマンドラインからmecabを使うには do_mecab というシェルスクリプトを作成する。
/usr/local/bin/do_mecabというファイルを下記の内容で作成する
#! /bin/sh
echo $*|/usr/local/bin/mecab

作成後実行権限を与える
chmod 755 do_mecab 

これで
do_mecab 日本語の形態素解析を行ってみます。
で実行できる。

MeCab使い方:http://mecab.sourceforge.jp/#usage-tools

No.322

11/12 13:22




popコマンドを使ったメール受信方法

まずコマンドラインからtelnetでサーバ(servername.com)のポート110番と通信する。
==========================
telnet servername.com 110
==========================

ここからpopコマンドを使ってメールを受信する
==========================
USER hoge
==========================
+OK Password required.と表示されるので続けてパスワードを入力する
==========================
PASS password
==========================
+OK logged in.と表示されればログイン成功。

メールサーバ上に保存されているメールの総数とサイズを知るには
==========================
STAT
==========================
+OK 512 99312506
と返されてきた場合【512通】【99312506バイト(99M)】メールサーバに保存されている。

各メールごとのサイズを知るには
==========================
LIST
==========================
1 702
2 702
3 1207
4 3506
5 3652
……(以下続く)なお番号は古い順

メールを受信するには(番号15のメールを受信する)
==========================
RETR 15
==========================

No.311

06/22 11:17


メール


crontab の書き方

定期的自動実行を行うには
===================================
crontab -e
===================================
でcronの設定ファイルを編集する。
(上記コマンドでviが立ち上がるのでviの操作に慣れておく必要がある)

設定ファイルに記述する内容は
===================================
45 04 * * * /var/test/cron.autoexec.sh
===================================
という風に記述する。
上記記述では毎日4時45分に【/var/test/cron.autoexec.sh】というファイルを実行する。
当然【/var/test/cron.autoexec.sh】には実行権限が必要。
左側の数字は
「分」「 時」「 日」 「月」 「曜日」を表してて、表記方法は下記の例を参照
例;
43 23 * * *               23:43に実行
12 05 * * *    05:12に実行
0 17 * * * 17:00に実行
0 17 * * 1 毎週月曜の 17:00に実行
0,10 17 * * 0,2,3 毎週日,火,水曜の 17:00と 17:10に実行
0-10 17 1 * * 毎月 1日の 17:00から17:10まで 1分毎に実行
0 0 1,15 * 1 毎月 1日と 15日と 月曜日の 0:00に実行
42 4 1 * *     毎月 1日の 4:42分に実行
0 21 * * 1-6   月曜日から土曜まで 21:00に実行
0,10,20,30,40,50 * * * * 10分おきに実行
*/10 * * * *        10分おきに実行
* 1 * * *         1:00から 1:59まで 1分おきに実行
0 1 * * *         1:00に実行
0 */1 * * *        毎時 0分に 1時間おきに実行
0 * * * *         毎時 0分に 1時間おきに実行
2 8-20/3 * * *      8:02,11:02,14:02,17:02,20:02に実行
30 5 1,15 * *       1日と 15日の 5:30に実行


なお実行結果は
/var/log/cron
に記録されていく


参考:http://miya0.dyndns.org/pc/settei/crontab.html


No.306

10/28 14:17




kakasi に辞書を追加する。

1. 最新版の kakasi をダウンロード(http://kakasi.namazu.org/)し
辞書の元ファイル(kakasidict)をアップロードしておく.
=======================
(アップロードファイル)kakasidict
(アップロード先)/usr/local/share/kakasi/
=======================


2. 「kakasi_dictionary_artist.txt(例)」というファイルに追記していく
例:(最初にひらがな、次に半角スペース、次に漢字)
文字コード【EUC】改行コード【LF】
=======================
よみ 漢字
=======================


3. ディレクトリ移動と辞書ファイルのバックアップ
====================================
cd /usr/local/share/kakasi/ (ディレクトリ移動)
cp kanwadict kanwadict.backup(辞書ファイルのバックアップ)
====================================


4. 辞書追加コマンド(mkkanwa)を実行
「mkkanwa 辞書ファイル 元ファイル 追加ファイル」
====================================
/usr/local/bin/mkkanwa kanwadict kakasidict kakasi_dictionary_artist.txt
====================================

No.295

07/18 17:19




viでよく使うキーコマンド(キーボードショートカット)

■ モードの移動
([esc]を押すとコマンドモードへ)
([a]または[i]を押すとファイル編集モードへ)
===============================
[esc] <-> [a]または[i]
===============================

■ ファイル関係(コマンドモードから実行する)
===============================
[:q!]  :ファイルを保存せずに終了
[:wq] :ファイルを保存して終了
===============================

■ カーソル移動(コマンドモードから実行する)
===============================
[1G] :ファイルの先頭に移動
[G]  :ファイルの末尾に移動
[ctrl+f] :1ページ下へ移動
[ctrl+b] :1ページ上へ移動
[/] :下に向かって文字列検索
[?] :上に向かって文字列検索
===============================

No.290

07/18 14:19




文字コードを変換するコマンド【iconv】

■1. まず 変換可能な文字コードを調べる
==================================
iconv -l
==================================
(ここで表示された文字コードのみ変換対象となるので事前に確認する)

■2. 次にコマンドを実行する
(EUC-JPで書かれたファイルin.txt)を(SHIFT_JISのout.txt)に変換する
==================================
iconv -f EUC-JP -t SHIFT_JIS < in.txt > out.txt

オプション
-f:fromcode 変換元の文字コードを指定する
-t:tocode  変換先の文字コードを指定する
==================================

No.282

07/05 15:43




kakasi を使ってみる

kakasiをインストール(管理者権限のユーザで行う)
==============================
http://kakasi.namazu.org/stable/kakasi-2.3.4.tar.gz をダウンロード
tar zxvf kakasi-2.3.4.tar.gz
cd kakasi-2.3.4
./configure
make
make install
==============================

kakasiを使ってみる
==============================
kakasi -w とすると入力受付モードでkakasiが起動する。
何か適当な文章を入力してみる
(例)
長い長い文章入力のテスト隣の客はよく柿食う客だ
長い 長い 文章 入力 の テスト 隣 の 客 はよく 柿 食う 客 だ
==============================

kakasiをコマンドライン一行で使ってみる
==============================
echo 隣の客はよく柿食う客だ | kakasi -Ja
tonariのkyakuはよくkakikuukyakuだ
(-Ja 漢字(J)をローマ字(a)に変換)
==============================
変換のオプションは
a: ascii
j: jisroman
g: graphic
k: kana (j,k defined in jisx0201)
E: kigou
K: katakana
H: hiragana
J: kanji(E,K,H,J defined in jisx0208)

例 -KH とするとカタカナをひらがなに変換する
==============================
echo カタカナニュウリョクノテストッス | kakasi -KH
(出力結果)かたかなにゅうりょくのてすとっす
==============================

-w オプションを付けるとわかち書きモードになる
==============================
echo 細野晴臣 | kakasi -w | kakasi -Ja
(出力結果)hosono haruomi
==============================

No.278

06/29 12:19




alias を使ってコマンドの別名を設定する

例えば一般的に
【ll】というコマンドは【ls -l】のエイリアスであることが多い。
この設定をするのが
=======================
alias
=======================
とすると現在設定されているエイリアスの一覧を表示する。

エイリアスを設定するには
=======================
alias ll='ls -la --color=tty'
=======================
とする(bashの場合)
これで【ll】が【ls -la --color=tty】に変更される。

No.277

11/19 14:08


ファイル


バックアップコマンド rsync

外部サーバにバックアップをとるコマンド rsync
あらかじめ外部サーバに ssh でパスワード無しで接続できるよう設定しておく必要がある。

(SSHをパスワード無しで接続する↓)
http://logic.stepserver.jp/memo.cgi/archive/250


rsync コマンド例
======================================
rsync -avzL --delete -e ssh /home/mydata user@hostname.com:/var/www/backup
======================================
バックアップ元サーバの【/home/mydata】以下を全て
バックアップ先サーバ(user@hostname.com)の【/var/www/backup】以下に
バックアップを作成する。
-a    :全てのデータをコピーする
-v    :転送状態を表示する
-z    :圧縮して転送します
-L    :(シンボリックリンクを解決して)リンク先のファイルを転送する
--delete :バックアップ元で削除されたファイルはバックアップ先でも削除する
-e ssh  :sshを使って転送する


(参考)
http://www.infoscience.co.jp/technical/rsync/rsync.html

No.252

11/19 14:09


ファイル


unixのメモリ消費について考える

http://q.hatena.ne.jp/1142317892
http://q.hatena.ne.jp/1141826494
http://q.hatena.ne.jp/1141644876
http://q.hatena.ne.jp/1090896886

No.223

05/03 11:18




コマンドリファレンス

http://www.not-enough.org/abe/manual//command/

No.208

04/19 13:57




システムの連続起動時間を表示する uptime

システムの連続起動時間を表示するには下記のコマンドを実行する
==============================
uptime
==============================
12:20:24 up 16:59, 2 users, load average: 0.00, 0.02, 0.00
==============================
現在時刻 稼働時間 ログインユーザー数 ロードアベレージ

No.204

06/29 12:22




UNIXマシンの再起動コマンド

今すぐUNIXマシンを再起動するには
===========================
shutdown -r now
===========================

No.203

04/15 18:00




自動起動サービスのチェックと停止 chkconfig

自動起動サービス一覧の表示
chkconfig -list
自動起動から削除
chkconfig サービス名 off
自動起動に追加
chkconfig サービス名 on

No.201

05/10 19:31


プロセス


仮想コンソールの数を減らす

http://www.atmarkit.co.jp/flinux/rensai/linuxtips/310delvcon.html

No.199

04/14 15:46




プロセス管理コマンドでマシンの使用メモリを知る free ps pstree top

=============================
free
=============================
で手っ取り早く見れる。

詳しく見る場合は
=============================
ps aux
=============================
で全てのプロセスを表示する
【SIZE】仮想分も含めた使用サイズ(Kバイト)
【RSS】実メモリ上の使用サイズ(Kバイト)
らしい。いわゆるメモリの使用量を見るには【RSS】か。
なおプロセスID【PID】は99999 まで行くと戻る(使用可能な最小値に?)という事らしい。
=============================
top
=============================
は 2秒毎にプロセス状態を調べる。
メモリ総使用量が上に表示されるのでここをチェックする。
ほっておくとずっと起動し続けているので【q】を押して終了する。

参考:
http://www.math.kobe-u.ac.jp/~kodama/tips-free-memory.html
http://cyberam.dip.jp/linux_command/command/process.html
http://www.itmedia.co.jp/help/tips/linux/l0158.html

No.138

11/19 14:09


メモリ


ユーザー管理コマンド

gpasswd:(グループにパスワードを設定する)
groupadd:新規グループの作成
groupdel:グループの削除
groupmod:グループ情報の変更
passwd:ユーザーパスワードの変更
useradd:ユーザーアカウントの新規作成
userdel:ユーザーアカウントの削除
usermod:ユーザーアカウント情報の変更

http://cyberam.dip.jp/linux_command/command/user.html

ユーザの所属するグループを見るには
===========================
id (ユーザ名)
===========================

No.106

11/19 14:10


ユーザー


「自信を持ってApacheを操るために」スライド公開

http://module.jp/blog/internet_week_2005T16.html
に公開されている。apacheの勉強になる。

No.102

06/22 11:16


WEB


ファイル・ディレクトリ容量やディスクの空き容量を取得する【du】【df】

■ ファイルやディレクトリ容量を表示させるには

du -h ディレクトリ名
du -h -s ディレクトリ名(指定したディレクトリのみ表示)
du -h -a  ディレクトリ名(一覧表示)

容量の大きいディレクトリを発見するにはルートディレクトリから grep で

# ギガバイト以上のディレクトリを表示
du -h | grep [0-9]G
# 100Mバイト以上のディレクトリを表示
du -h | grep [0-9][0-9][0-9]M

とするのもいいかもしれません

■ ちなみにディスク全体のの残り容量を表示するコマンドは

df -hT

です。

■ ディスク容量の残りが少なくなってきたときにチェックするとよいディレクトリ

/home
/usr
/var/lib/mysql
/var/lib/pgsql
/var/spool/mail
/root/Maildir

等です。

No.97

08/18 09:27


ファイル


unixのシェル( sh bash )の便利な設定

unixシェルで一番よく使うコマンドといえば

ls -la

だと思います。(人によりけりですが。)

これを短縮して

l [Enter]

で実行できるとかなり便利なので以下のように設定します。

ホームディレクトリ内の .bash_profile または .bashrc に記述

# alias
alias ll='ls -la'
alias  l='ls -la'

またシェルのプロンプトに 「現在のディレクトリパス名」「ユーザー名」を表示させると便利なので以下のように設定します。

ホームディレクトリ内の .bash_profile または .bashrc に記述

# prompt
PS1='[$USER@\H $PWD]$ '

No.95

11/19 14:18


シェル


ImageMagick コマンドの使い方

convert (1つのファイルに対して操作したいとき)
mogrify(複数のファイルに対して操作したいとき)
====================================
# in.jpg を jpeg 画質 80 の out.jpg に変換する
convert -quality 80 in.png out.jpg
====================================

No.91

01/16 21:32




MACアドレスを取得する

ifconfig で確認する
arp -a

No.87

01/23 14:50




Fedoraのapache2にmod_perl2を設定

■ mod_perl には動作モードが二つある
=======================================
■1 Apache::Registry
実行コードをメモリ上にキャッシュすることによって200〜2000%の高速化。
変数のスコープ、初期化などを厳密に行う必要がある。
■2Apache::PerlRun
Perlインタープリターをメモリに常駐させることによって高速化を計る。
スクリプト自体のコンパイルは毎回行われるので動作はまあそこそこ速い程度。
既存のcgiスクリプトからの移植は割と簡単。


■ apacheの設定ファイル/etc/httpd/conf/httpd.conf に以下を加える
=======================================
LoadModule perl_module modules/mod_perl.so
# ↑起動時[warn] module perl_module is already loaded, skipping」が出る場合は不必要
<Files *.cgi>
SetHandler perl-script
# PerlRunで動作させる場合は↓ ModPerl::PerlRun
PerlHandler ModPerl::Registry
PerlSendHeader On
Options +ExecCGI
</Files>
Perlrequire /etc/httpd/conf/startup.pl
=======================================


■ /etc/httpd/conf/startup.pl を設定
=======================================
#!/usr/local/bin/perl
use strict;
use warnings;
use lib qw (/var/www/public_html/ );
1;
=======================================

mod_perlバージョン2からは
Apache::Registry → ModPerl::Registry
になったみたいなので注意
=======================================
参考サイト
http://age.s22.xrea.com/mod_perl/
http://www.din.or.jp/~bigstone/cgilab/cgitips/mod_perl1.html
http://d.hatena.ne.jp/naoya/20060108/1136705441
http://naoya.dyndns.org/~naoya/mt/archives/000393.html

No.65

07/03 16:32




smtp, popプロトコルによるメール送信、受信

SMTP(メール送信サーバ)への接続はtelnetを使用して下記のように入力する。

telnet your.host.name.jp 25

接続されたら次のように入力する

HELO hoge@test.test.com
MAIL FROM:hoge@test.test.com
RCPT TO:mail@test.test.com
DATA
mail honbun
.

終了するには次のコマンドを入力する

QUIT
SMTP Authentication を使ったメール送信

まず SMTP Authentication用文字列を生成する

ユーザー名:testuser

パスワード:password

の時シェルから以下のように入力

perl -MMIME::Base64 -e 'print encode_base64("testuser?0testuser?0password");'

生成された文字列

dGVzdHVzZXIAdGVzdHVzZXIAcGFzc3dvcmQ=

をコピーしておく。

telnet your.host.name.jp 587

でsmtpへ接続して

EHLO localhost
AUTH PLAIN dGVzdHVzZXIAdGVzdHVzZXIAcGFzc3dvcmQ=
235 2.0.0 OK Authenticated

と返れば成功。以下のコマンドは同じ

MAIL FROM:hoge@test.test.com
RCPT TO:mail@test.test.com
DATA
mail honbun
.

POP3 サーバへの接続(メールの受信)
USER ユーザー名
PASS パスワード
LIST (※メール一覧を表示)
RETR xxx ( xxx番目のメールを表示 )
QUIT
POP Before SMTP の確認

POP Before SMTP の許可IPアドレスを見るには

SMTPサーバにシェルログインして root ユーザーから

makemap -u hash /etc/mail/popauth.db

とする

No.54

06/22 11:17


メール


Fedoraパッケージ管理コマンド「yum」

■パッケージをインストール
yum install パッケージ名

■パッケージの更新の確認
yum check-update

■パッケージの更新
yum update [ パッケージ名 ]

■パッケージの削除
yum remove [ パッケージ名 ]

■パッケージの検索
yum search [キーワード]

■パッケージの情報を表示
yum list [ オプション または パッケージ名 ](概要)
yum info [ オプション または パッケージ名 ](詳細表示)
オプション
available インストール可能なパッケージの情報を一覧表示する。
installed システムにインストールされているパッケージの情報を一覧表示する。
recent 最近追加されたパッケージの情報を一覧表示する。
updates 更新可能なパッケージの情報を一覧表示する。

http://cyberam.dip.jp/linux_foundation/proginstall/yum_main.html

No.52

09/14 17:35




HTTPクライアントコマンド wget

■ wgetコマンド
wget -r -nc -l 5 -A htm,html,shtml,php,cgi -nd -nH http://www.yahoo.co.jp/
[ オプション ]
-r 再帰回収
-nc 既にダウンロードしたファイルをスキップ
-l 10 最大10階層まで下に潜る
-A html,cgi 取得したいファイルの拡張子をカンマで区切って記述する
-nd ディレクトリを作らない、すべてをカレントディレクトリにダウンロードする
-nH ドメイン名のところのディレクトリを作らない

http://members.at.infoseek.co.jp/futora/wget153/option.html

■ Wgetを使おう的ページ
http://www.geocities.jp/horiuchimasaru/wget.html

No.49

01/16 18:40




findによる再帰検索

※カレントディレクトリ以下の .htmlファイルを再帰的に【test】で検索
find . | grep .html$ | xargs grep -l 'test'

No.43

11/19 14:11


ファイル


FTPコマンド一覧

FTPコマンド一覧
http://ash.jp/net/ftp_command.htm

No.33

11/19 14:12






Powered By flat memo Ver 0.9.6.2 © econosys system