日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux shell写cgi,shell写cgi脚本

發(fā)布時(shí)間:2023/12/20 linux 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux shell写cgi,shell写cgi脚本 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

第29章 cgi腳本

本章包含內(nèi)容:

基本cgi腳本

使用服務(wù)器端內(nèi)嵌(Server Side Includes,SSI)

get方法

post方法

創(chuàng)建交互式腳本

能夠自動(dòng)重載web頁面得cgi腳本

cgi是一種規(guī)范,它規(guī)定了獲取信息得教本如何從服務(wù)器中取得信息或向服務(wù)器中寫入信息.這種腳本或cgi

教本可以用任何語言來實(shí)現(xiàn).最流行的是Perl語言,不過你將會(huì)發(fā)現(xiàn),也可以用普通的shell腳本來實(shí)現(xiàn).

所有得cgi腳本都應(yīng)當(dāng)位于web服務(wù)器的cgi-bin目錄中,不過在不同的服務(wù)器中該目錄會(huì)有所不通.可以通

過查看配置文件srm.conf中ScriptAlias一段來改變?cè)撃夸浀奈恢?并允許該服務(wù)器運(yùn)行cgi腳本.所有的教本

文件名都應(yīng)以.cgi做后綴.而其他web頁面都位于html貨htdocs目錄下,并帶有.html后綴.

29.1 cgi腳本實(shí)例:

$ vi firstpage.cgi

$!/bin/bash

# firstpage.cgi

echo "Content-type: text/html"

echo ""

echo ""

echo " THIS IS MY FIRST CGI PAGE"

echo ""

echo "STAND-BY TO STAND-TO!"

echo ""

第一行表示shell解釋器的路徑.第一個(gè)echo命令行告訴服務(wù)器這是一個(gè)MIME題頭,第二行echo 命令行用于

顯示一個(gè)空行.如果在MIME題頭后面沒有一個(gè)空行,cgi腳本的輸出將無法正確顯示.

29.2 顯示shell命令輸出

在腳本中加入一條shell命令,這樣就可以在瀏覽器中顯示該命令的輸出.

例如顯示當(dāng)前登陸得用戶數(shù),通過將who命令的輸出經(jīng)管道傳遞給wc命令就可以實(shí)現(xiàn).并顯示當(dāng)前日期.

$ vi pagetwo.cgi

#!/bin/bash

#pagetwo.cgi

#display a page using the output from a unix command

MYDATE=`date +%A" "%d" "%B" "%Y`

USERS=`who |wc -l`

echo "Content-type: text/html"

echo ""

echo ""

echo " THIS IS MY SECOND CGI PAGE"

echo ""

echo "$MYDATE"

echo "Total amount of users on to-day is :$USERS"

echo ""

if ["$USERS" -lt 10 ]; then

echo "It must be early or it is dinner time"

echo "Beacuse there ain's many users logged on"

fi

echo ""

echo ""

29.3 使用SSI

為了內(nèi)嵌cgi腳本,必須使用服務(wù)器端內(nèi)嵌(SSI),這樣,在顯示一個(gè)頁面時(shí),它將會(huì)把SSI命令替換為相應(yīng)命令

或腳本的輸出.

在apache上的配置為:

Addhandler server-passed.shtml

Addtype text/htm shtml

第30章 常用shell命令

1.basename

格式: basename path

base命令能從路徑中分離出文件名,通常用于shell腳本中,例:

$ basename /home/smallfish/ifcp

ifcp

2.cat

格式: cat options files

-v:顯示控制字符

cat是最常用得文本文件顯示命令

$ cat myfile

文件合并:

$ cat myfile myfile2 >>hold_file

3.cp

格式: cp options file1 file2

選項(xiàng):

-i:在覆蓋文件之前提示用戶,由用戶確認(rèn).

-p:保留權(quán)限模式和更改時(shí)間.

-r:拷貝相應(yīng)得目錄及其子目錄.

4.diff

格式: diff options file1 file2

選項(xiàng):

-c: 按照標(biāo)準(zhǔn)格式輸出

-I:忽略大小寫

5.dirname

格式: dirname pathname

該目錄正好和basename相反,它返回路徑部分:

$ dirname /home/smallfish/ifcp

/home/smallfish

6.du

格式: du options directory

選項(xiàng):

-a: 顯示每個(gè)文件的大小,不僅是整個(gè)目錄所占用的空間

-s: 只顯示總計(jì)

du顯示得磁盤空間占用是以512字節(jié)的塊來表示得.它主要用于顯示目錄所占用的空間.

du -s .

5611 .

7.file

格式: file filename

該命令用來確定文件類型:

$ file ifcp

ifcp: Bourne-Again shell script text executable

$ file mbox

mbox: ASCII mail text

8.fuser

格式: fuser options file

選項(xiàng):

-k: 殺死所有訪問該文件或文件系統(tǒng)的進(jìn)程

-u: 顯示訪問該文件或文件系統(tǒng)的所有進(jìn)程

fuser命令可以顯示訪問某個(gè)文件或文件系統(tǒng)的所有進(jìn)程.在有些系統(tǒng)上,-u 和-m選項(xiàng)可以互換.還可以在if

語句中使用fuser命令.

列出/dev/hda8上所有活動(dòng)進(jìn)程:

$ fuser -m /dev/hda8

/dev/hda8:? ?? ?? ?? ?2043e??2081m??2114e??2267e??2343e??2376e??2396e??2420e??2431e??2441e??2500e

2519e??2529e??2543e??2554e??2561??2561m??2955??2955c??2955e??3183e??3185e??3186m??3430e

11786m 11787m 11960m

9.head

格式: head -number files

head命令可以顯示相應(yīng)文件的前10行.如果希望指定顯示的行數(shù),可以使用-number選項(xiàng).

顯示trap2.sh文件第一行:

$??head -1 trap2.sh

#!/bin/bash

10.logname

格式: logname

顯示當(dāng)前所使用的登陸用戶名:

$ logname

smallfish

11.mkdir

格式: mkdir options directory

選項(xiàng):

-m: 在創(chuàng)建目錄時(shí)按照該選項(xiàng)的值設(shè)置訪問權(quán)限.

12. more

格式: more options files

該命令和page及pg命令的功能相似,都能分屏顯示文件內(nèi)容.

選項(xiàng):

-c: 不滾屏,而是通過覆蓋來換頁

-d: 在分頁處顯示提示

-n:每屏顯示n行

13.nl

格式: nl options file

選項(xiàng):

-I: 行號(hào)每次增加n,缺省為1

-p: 在新的一頁不重新計(jì)數(shù)

nl命令可用于在文件中列行號(hào),在打印源代碼或日志文件時(shí)很有用.

列出文件行號(hào):

$ nl myscript

14.printf

格式: printf format arguments

該命令有點(diǎn)類似于awk命令的printf函數(shù),它將格式化文本送至標(biāo)準(zhǔn)輸出.其中,格式符format包含三種類型

的項(xiàng),這里只討論格式符:

%[- +]m.nx

其中橫桿-為從行首算起的起始位置。一般說來m表示域的寬度n表示域的最大寬度.'%'后面可跟下列格式

字符:

s: 字符串

c: 字符

d: 數(shù)字

x: 16進(jìn)制數(shù)

o: 10進(jìn)制數(shù)

printf命令本身并不會(huì)產(chǎn)生換行符,必須使用轉(zhuǎn)義字符來實(shí)現(xiàn)這樣的功能。下面是最常用的轉(zhuǎn)義字符:

\a: 響鈴

\b:退格

\r:回車

\f:換頁

\n:換行

\t:跳格

$ printf "abc\n"

abc

$ printf "abc\n\t"

abc

[smallfish@localhost ~]$

15.pwd

格式: pwd

顯示當(dāng)前工作目錄:

$ pwd

/home/smallfish

16.rm

格式: rm options files

選項(xiàng):

-i: 在刪除文件之前給出提示(安全模式)

-r: 刪除目錄

rm命令能夠刪除文件或目錄

17.rmdir

格式: rmdir options directory

選項(xiàng):

-p: 如果相應(yīng)的目錄為空目錄,則刪除該目錄

18.script

格式: script option file

-a: 將輸出附加在文件末尾

可以使用script命令紀(jì)錄當(dāng)前會(huì)話.只要在命令行鍵入該命令即可。該命令在你退出當(dāng)前會(huì)話時(shí)結(jié)束。它

可以將你的輸入紀(jì)錄下來附加到一個(gè)文件末尾。

$ script mylogin

Script started, file is mylogin

19.sleep

格式: sleep number

該命令使系統(tǒng)等待相應(yīng)的秒數(shù),如:

$ sleep 10

意味著系統(tǒng)在10秒鐘之內(nèi)不進(jìn)行任何操作。

20. strings

格式: strings filename

該命令可以看二進(jìn)制文件中所包含的文本。

21. touch

格式: touch options filename

選項(xiàng):

-t MMDDhhmm 創(chuàng)建一個(gè)具有相應(yīng)月\日\(chéng)時(shí)\分時(shí)間戳的文件

$ touch -t 0710150000 myfile

-rw-rw-r--??1 smallfish smallfish 0 Oct 15 00:00 myfile

22.tty

格式: tty

可以使用tty來報(bào)告所連接的設(shè)備或終端.

$ tty

/dev/pts/4

23.wait

格式: wait process ID

該命令可以用來等待進(jìn)程號(hào)為process ID的進(jìn)程或所有的后臺(tái)進(jìn)程結(jié)束后,再執(zhí)行當(dāng)前腳本.

等待進(jìn)程號(hào)為1299的進(jìn)程結(jié)束后再執(zhí)行當(dāng)前腳本:

$ wait 1299

等待所有的后臺(tái)進(jìn)程結(jié)束后再執(zhí)行當(dāng)前腳本:

$ wait

24.wc

格式: wc options files

選項(xiàng):

-c: 顯示字符數(shù)

-l: 顯示行數(shù)

-w: 顯示單詞數(shù)

25.whereis

格式: whereis command_name

whereis 命令能夠給出系統(tǒng)命令的二進(jìn)制文件及其在線手冊(cè)的路徑

$ whereis dirname

dirname: /usr/bin/dirname /usr/share/man/man1/dirname.1.gz /usr/share/man/man3/dirname.3.gz

/usr/share/man/man1p/dirname.1p.gz /usr/share/man/man3p/dirname.3p.gz

26.who

格式: who options

選項(xiàng):

-a: 顯示所有的結(jié)果

-r: 顯示當(dāng)前的運(yùn)行級(jí)別

-s: 列出用戶名及時(shí)間域

查看自己用戶名:

$ whoami

總結(jié)

以上是生活随笔為你收集整理的linux shell写cgi,shell写cgi脚本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。