發新話題

網路管理語言 Perl 入門與實作

27.2 UNIX 轉成 DOS
ux2dos.pl
引用:
#! /usr/bin/perl

while (<>) {
        s/\012//;
        print $_ . "\n\r";
}
用例:
引用:
./ux2dos.pl ux-test.txt

TOP

28. 大量建帳號
本章示範如何在 Linux 主機上大量建帳號?

以下請存成 mc.pl,然後用 root 權限執行,即可大量建立帳號。
引用:
#! /usr/bin/perl

# 使用嚴格的變數宣告檢查
# 一個變數要使用之前, 一定要宣告
use strict;

# $file 是用來暫時存放動態產生的帳號密碼對照檔,
# 其格式為: 帳號:密碼
my $file = "act-list.txt";


# $file2 是用來儲存動態產生的帳號/密碼表,讓您可以
# 將帳號列印下來, 並剪下帳號密碼紙條, 交給帳號當事人。
my $file2 = "report.txt";

my $num;

print "\n請問您要產生多少個帳號? ";
chomp($num=<STDIN>);

my $prefix;
print "\n請問帳號前導字為何? ";
chomp($prefix=<STDIN>);

open(W, "> $file") || die "無法開啟 $file , 請檢查您的權限!!\n";
open(W2, "> $file2") || die "無法開啟 $file , 請檢查您的權限!!\n";

my $i;

for ($i=1; $i<=$num; $i++) {

        # 動態產生隨機密碼,至少四個數字以上
        my $pwd = int(rand 5000) + 1111;

        # 寫入 $file 中
        print W "$prefix$ipwd\n";

        # 寫入 $file2 中
        print W2 "-" x 45 , "\n";
        print W2 "$prefix$ipwd\n";
}

close(W);
close(W2);


# 讀取 act-list.txt
# 準備用來大量建帳號及設密碼
open(F, "$file") || die "$!\n";
while (my $line = <F>) {

        chomp $line;

        # 取得每一列的資料, 並分離出帳號及密碼
        my ($act, $pwd) = split /:/ , $line;

        # 偵錯用
        # print "$act ===> $pwd \n";

        # 用 adduser 指令建帳號
        system("adduser $act");

        print "$act 帳號已建立!\n";

}

close(F);

# 自動設密碼
# chpasswd 的用法,請詳看 man chpasswd 的說明,即可得知。
system("chpasswd < $file");
注意 1: 本程式僅為示範解說用途,雖仍堪用,但並沒有對使用者輸入的值,做詳細檢查,這部份請自行補齊。

注意 2: 本程式執行後所建立的密碼,其編碼方式為 DES (在 /etc/shadow 中,長度為 13 個字元) 。

TOP

把 Perl 嵌在網頁裡
本章介紹 Mason 這個機制,可以將 Perl 嵌在文件或網頁中。

什麼是 Mason?
待續 ......

TOP

附錄 1:Perl 的安裝
本附錄說明:如何在 Linux/Unix 平台中,安裝 tarball source 版本的 Perl,也會說明 Windowns 平台中如何安裝。

在 Linux/BSD 平台安裝


1.下載 perl 5.8.0
引用:
ncftp ftp2.tnc.edu.tw
cd pub/unix/perl/CPAN/src
get perl-5.8.0.tar.gz
2.解壓:
引用:
tar xvzf perl-5.8.0.tar.gz
cd perl-5.8.0

觀看 INSTALL 這個檔案,以獲取編譯安裝 Perl 的方法,如下所示:

        rm -f config.sh Policy.sh
        sh Configure -de
        make
        make test
        make install
3.編譯安裝

將上述指令,製作成 doit.sh 執行檔:
引用:
#! /bin/sh

sh Configure -de
make
make test
make install

存成 doit.sh

給執行權 chmod +x doit.sh

執行 doit.sh:

./doit.sh

之後,您便可喫茶去也。
4.檢查安裝結果
引用:
ls -la /usr/local/bin/perl

perl -v

若執行正常,表示安裝成功!
往後您便可叫用 #! /usr/local/bin/perl 做為 Perl script 主要的執行程式(放在 Perl script 第一列)

TOP

在 KNOPPIX 平台安裝
KNOPPIX 是唯讀的光碟,因此必須將 Perl 安裝在硬碟中:


1.fdisk /dev/hda 觀察有那一個 partition 可以用?若無,請用 fdisk 切一個。這裡假設 /dev/hda5 可以用:
引用:
fdisk /dev/hda

The number of cylinders for this disk is set to 2432.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/hda: 20.0 GB, 20003880960 bytes
255 heads, 63 sectors/track, 2432 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot    Start       End    Blocks   Id  System
/dev/hda1   *         1       914   7341673+   c  Win95 FAT32 (LBA)
/dev/hda2           915      2432  12193335    5  Extended
/dev/hda5           915      1615   5630751   83  Linux
/dev/hda6          1616      1646    248976   82  Linux swap
/dev/hda7          1647      2432   6313513+  83  Linux

Command (m for help): q
2.把 /dev/hda5 mount 上來:(您的 HD 可能會不同,請勿直接套用!)
引用:
mount /mnt/hda5
3.下載 perl 5.8.0
引用:
mkdir /mnt/hda5/work
mkdir /mnt/hda5/opt
mkdir /mnt/hda5/opt/bin

cd /mnt/hda5/work
ncftp ftp2.tnc.edu.tw
cd pub/unix/perl/CPAN/src
get perl-5.8.0.tar.gz

tar xvzf perl-5.8.0.tar.gz
cd perl-5.8.0
4.因為 Perl 的預設安裝路徑(prefix) 為 /usr/local,但在 KNOPPIX 下它是唯讀的,無法寫入,因此我們要將安裝路徑指定到硬碟中的 /mnt/hda5/opt,方法如下:
引用:
./Configure -D prefix=/mnt/hda5/opt

然後任何問題都按 Enter 回答即可。

接著執行:

make
make test
make install

即可

若一切順利,會在 /mnt/hda5/opt/bin 中找到剛安裝的 perl
往後,若您想要使用這個版本的 perl,只要將您的程式第一列換成 #! /mnt/hda5/opt/bin/perl 即可。

TOP

在 Windows 平台安裝
Windows 平台上的 Perl,目前的發展以 訪客無法瀏覽此圖片或連結,請先 註冊登入會員 這家公司推出的 Win Perl 佔有率最高。activeware 的 Win Perl(稱為 ActivePerl) 可以免費下載。ActivePerl 也有 Linux/FreeBSD 版本。

ActivePerl 下載位址:
訪客無法瀏覽此圖片或連結,請先 註冊登入會員
訪客無法瀏覽此圖片或連結,請先 註冊登入會員

ActiveWare 的安裝方法如同其它 Windows 的程式一樣。請點按執行 ActivePerl-5.8.0.806-MSWin32-x86.msi,然後依循回答問題,即可安裝完成。裝好之後,預設會放在 C:\Perl 目錄中。

TOP

附錄 2. 參考資源
文件
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員
訪客無法瀏覽此圖片或連結,請先 註冊登入會員
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 電子書:使用 Mason 把 Perl 嵌在網頁裡! (***推薦)
網站
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 Win Perl: ActivePerl (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員
訪客無法瀏覽此圖片或連結,請先 註冊登入會員
訪客無法瀏覽此圖片或連結,請先 註冊登入會員
程式
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 CGI 程式資源 (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)
BBS
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (*推薦)

訪客無法瀏覽此圖片或連結,請先 註冊登入會員 歐萊禮 (*****推薦)
Figure 1. Perl 學習手冊
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 (****推薦)

Figure 2. Perl 程式設計
註:第三版已出來了,但為英文版。
訪客無法瀏覽此圖片或連結,請先 註冊登入會員 碁峰 (****推薦) 原名:Effective Perl programming : writing better programs with Perl

Figure 3. 深入探索PERL程式設計

TOP

發新話題

本站所有圖文均屬網友發表,僅代表作者的觀點與本站無關,如有侵權請通知版主會盡快刪除。