Linux服務器具有穩定性好,價格低等優點。最為一個開源平台,無論是商業機構的支持還是網絡開源程序組織的技術,都達到了一個成熟的水平。因為,目前中小型企業可以考慮一下使用Linux作為Web服務器,FTP服務器等的平台,這裡我使用了Debian系統。
(一) 服務器的搭建:
有兩種方法:從市場上購買Debian的系統盤或者從網站上下載系統,然後安裝。下載地址: http://www.debian.org/CD/http-ftp/ 。Debian系統的安裝方法:請參考楊錦昌的教程,下載地址 內容很詳細,便於入門學習。
通用指令init 6重啟,init 0關機,init 1單用戶進行管理維護。
(二)、Debian學習:
1).Apt-get 命令,用於獲取軟件安裝包:
apt-setup 設置Apt源.可選擇列表或者手工導入
apt-get update 系統軟件包更新
apt-get upgrade 更新所有軟件包並且自動升級成最新
apt-get dist-upgrade 更新軟件包並解決軟件依賴關系
apt-cache search keyword 查找指定軟件包信息
apt-cache show package_name 詳細顯示指定軟件包的信息
apt-get install 安裝指定軟件包
apt-get remove 移除指定軟件包
===================================
常用配置命令:
base-config 配置基本系統
apt-get install zhcon 安裝 Zhcon 中文字符支持包.
zhcon 運行 Zhcon UC-DOS 中文系統
dpkg-reconfigure xserver-xfree86配置xfree86
apt-get remove netatalk 刪除不必要的 Appletalk.
apt-get remove exim4 刪除MTA.提高啟動速度.
vi /etc/zhcon.conf 配置 Zhcon 設置
vi /etc/apt/source.list 配置 Apt 源址
2).網絡設置:
設置IP文件: /etc/network/interfaces
-------------動態DHCP獲得 -----------------
# 啟動系統激活設備.
# Loop回環地址.
auto lo
iface lo inet loopback
# 啟動系統激活設備.
# 網卡eth0設置為DHCP類型.
auto eth0
iface eth0 inet dhcp
-------------靜態Static獲得---------------
# 啟動系統激活設備.
# Loop回環地址.
auto lo
iface lo inet loopback
# 啟動系統激活設備.
# 網卡eth0設置為Static類型.
auto eth0
iface eth0 inet static
# 指定IP地址.子網掩碼.廣播.網關.
address 192.168.0.1
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
==================================
設置DNS服務器: /etc/resolv.conf
-------------------------------------------------
search
#首選DNS服務器地址
nameserver *.*.*.*
#備用DNS服務器地址
nameserver *.*.*.*
===================================
============================================================
用dpkg-reconfigure xserver-xfree86命令修改分辨率
或
vi /etc/X11/XF86Config-4
============================================================
用apt-get安裝了下列字體
ttf-arphic-bkai00mp :文鼎PL中楷(Big5 碼)
ttf-arphic-bsmi00mp :文鼎PL細上海宋(Big5 碼)
ttf-arphic-gbsn00lp :文鼎PL簡報宋(GB 碼)
ttf-arphic-gkai00mp :文鼎PL簡中楷(GB 碼)
unifont :包含了firefly點陣的, Unicode 的 pcf 字體。適用於 yudit 文本編輯器。
ttf-arphic-ukai :文鼎PL中楷Uni,AR PL KaitiM Big5 + AR PL KaitiM GB
ttf-arphic-uming :AR PL Mingti2L Big5 + AR PL SungtiL GB + firefly所建立的點陣字
再重啟就OK了!
============================================================ [NextPage]
(三)Vi的必須掌握的基本操作:
1.進入編輯狀態a,i,o,指令狀態
2.向前和後移動ctrl+f ctrl+b
刪除x,dd
3.到檔案的最後一列 G
(四)壓縮大全:
.tar
解包: tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
(注:tar是打包,不是壓縮!)
---------------------------------------------
.gz
解壓1:gunzip FileName.gz
解壓2:gzip -d FileName.gz
壓縮:gzip FileName
.tar.gz
解壓:tar zxvf FileName.tar.gz
壓縮:tar zcvf FileName.tar.gz DirName
---------------------------------------------
.bz2
解壓1:bzip2 -d FileName.bz2
解壓2:bunzip2 FileName.bz2
壓縮: bzip2 -z FileName
.tar.bz2
解壓:tar jxvf FileName.tar.bz2
壓縮:tar jcvf FileName.tar.bz2 DirName
---------------------------------------------
.bz
解壓1:bzip2 -d FileName.bz
解壓2:bunzip2 FileName.bz
壓縮:未知
.tar.bz
解壓:tar jxvf FileName.tar.bz
壓縮:未知
---------------------------------------------
.Z
解壓:uncompress FileName.Z
壓縮:compress FileName
.tar.Z
解壓:tar Zxvf FileName.tar.Z
壓縮:tar Zcvf FileName.tar.Z DirName
---------------------------------------------
.tgz
解壓:tar zxvf FileName.tgz
壓縮:未知
.tar.tgz
解壓:tar zxvf FileName.tar.tgz
壓縮:tar zcvf FileName.tar.tgz FileName
---------------------------------------------
.zip
解壓:unzip FileName.zip
壓縮:zip FileName.zip DirName
---------------------------------------------
.rar
解壓:rar a FileName.rar
壓縮:r ar e FileName.rar
rar請到:http://www.rarsoft.com/download.htm 下載!
解壓後請將rar_static拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):
[root@www2 tmp]# cp rar_static /usr/bin/rar
---------------------------------------------
.lha
解壓:lha -e FileName.lha
壓縮:lha -a FileName.lha FileName
lha請到:http://www.infor.kanazawa-it.ac.jp/~ishii/lhaunix/下載!
>解壓後請將lha拷貝到/usr/bin目錄(其他由$PATH環境變量指定的目錄也可以):
[root@www2 tmp]# cp lha /usr/bin/
---------------------------------------------
.rpm
解包:rpm2cpio FileName.rpm | cpio -div
---------------------------------------------
.tar .tgz .tar.gz .tar.Z .tar.bz .tar.bz2 .zip .cpio .rpm .deb .slp
.arj .rar .ace .lha .lzh .lzx .lzs .arc .sda .sfx .lnx .zoo .cab .kar
.cpt .pit .sit .sea
解壓:sEx x FileName.*
壓縮:sEx a FileName.* FileName
各種軟件安裝:
使用deb打包的軟件安裝
deb是Debian Linux提供的一個包管理器,它與RPM十分類似。但由於RPM出現得早,並且應用廣泛,所以在各種版本的Linux中都常見到,而Debian的包管理器dpkg只出現在Debina Linux中。它的優點是不用被嚴格的依賴性檢查所困擾,缺點是只在Debian Linux發行版中才能見到這個包管理工具。 [NextPage]
dpkg -l 查看安裝的文件包
1. 安裝
# dpkg -i MYsoftware-1.2.-1.deb
2. 卸載
# dpkg -e MYsoftware
dpkg -l package_name ( 列出該 package 相關信息 )
dpkg -l | less ( 列出系統中所有安裝的軟件 )
dpkg -L package_name ( 列出該 package 所有檔案擺放位置 )
dpkg -S file_name ( 搜尋 file 所屬 package )
dpkg -i package_name ( 軟件安裝 )
dpkg -r package_name ( 軟件移除 )
dpkg -x package_name.deb target_dir ( 解 .deb 檔案成數個檔案 )
dpkg -i --force-overwrite-i package_name ( 強制安裝軟件 )
dpkg -i --force-all package_name ( 不顧一切的強制安裝軟件 )
dpkg -r --purge --force-deps package_name ( 強制移除軟件 )
dpkg --get-selections ( 列出系統中所有安裝的軟件 )
dpkg --pending --remove ( 移除多余的軟件 )
使用源代碼進行軟件安裝
和RPM安裝方式相比,使用源代碼進行軟件安裝會復雜一些,但是用源代碼安裝軟件是Linux下進行軟件安裝的重要手段,也是運行Linux的最主要的優勢之一。使用源代碼安裝軟件,能按照用戶的需要選擇定制的安裝方式進行安裝,而不是僅僅依靠那些在安裝包中的預配置的參數選擇安裝。另外,仍然有一些軟件程序只能從源代碼處進行安裝。
現在有很多地方都提供源代碼包,到底在什麼地方獲得取決於軟件的特殊需要。對於那些使用比較普遍的軟件,如Sendmail,可以從商業網站處下載源代碼軟件包(如http://www.sendmail.org )。一般的軟件包,可從開發者的Web站點下載。下面介紹一下安裝步驟:
1.解壓數據包
源代碼軟件通常以.tar.gz做為擴展名,也有tar.Z、tar.bz2或.tgz為擴展名的。不同擴展名解壓縮命令也不相同,見表1。
2.編譯軟件
成功解壓縮源代碼文件後,進入解包的目錄。在安裝前閱讀Readme文件和Install文件。盡管許多源代碼文件包都使用基本相同的命令,但是有時在閱讀這些文件時能發現一些重要的區別。例如,有些軟件包含一個可以安裝的安裝腳本程序(.sh)。在安裝前閱讀這些說明文件,有助於安裝成功和節約時間。
在安裝軟件以前要成為root用戶。實現這一點通常有兩種方式:在另一台終端以root用戶登錄,或者輸入“su”,此時系統會提示輸入root用戶的密碼。輸入密碼以後,就將一直擁有root用戶的權限。如果已經是root用戶,那就可以進行下一步。]
通常的安裝方法是從安裝包的目錄執行以下命令:
gunzip soft1.tar.gz
cd soft1
#. /configure #配置#
make #調用make#
make install #安裝源代碼#
刪除安裝時產生的臨時文件:
#make clean
卸載軟件:
#make uninstall
有些軟件包的源代碼編譯安裝後可以用make uninstall命令卸載。如果不提供此功能,則軟件的卸載必須手動刪除。由於軟件可能將文件分散地安裝在系統的多個目錄中,往往很難把它刪除干淨,應該在編譯前進行配置。
.bin文件安裝
擴展名為.bin文件是二進制的,它也是源程序經編譯後得到的機器語言。有一些軟件可以發布為以.bin為後綴的安裝包,例如,流媒體播放器 RealONE。如果安裝過RealONE的Windows版的話,那麼安裝RealONE for Linux版本(文件名:r1p1_linux22_libc6_i386_a1.bin)就非常簡單了:
#chmod +x r1p1_linux22_libc6_i386_a1.bin
./ r1p1_linux22_libc6_i386_a1.bin
接下來選擇安裝方式,有普通安裝和高級安裝兩種。如果不想改動安裝目錄,就可選擇普通安裝,整個安裝過程幾乎和在Windwos下一樣。
.bin文件的卸載,以RealONE for Linux為例,如果采用普通安裝方式的話,在用戶主目錄下會有Real和Realplayer9兩個文件夾,把它們刪除即可。 [NextPage]
RPM格式軟件包的安裝
1.簡介
幾乎所有的Linux發行版本都使用某種形式的軟件包管理安裝、更新和卸載軟件。與直接從源代碼安裝相比,軟件包管理易於安裝和卸載;易於更新已安裝的軟件包;易於保護配置文件;易於跟蹤已安裝文件。
RPM全稱是Red Hat Package Manager(Red Hat包管理器)。RPM本質上就是一個包,包含可以立即在特定機器體系結構上安裝和運行的Linux軟件。RPM示意圖見圖1。
大多數Linux RPM軟件包的命名有一定的規律,它遵循名稱-版本-修正版-類型-MYsoftware-1.2 -1.i386.rpm 。
2.安裝RPM包軟件
# rpm -ivh MYsoftware-1.2 -1.i386.rpm
RPM命令主要參數:
-i 安裝軟件。
-t 測試安裝,不是真的安裝。
-p 顯示安裝進度。
-f 忽略任何錯誤。
-U 升級安裝。
-v 檢測套件是否正確安裝。
這些參數可以同時采用。更多的內容可以參考RPM的命令幫助。
3.卸載軟件
# rpm -e 軟件名
需要說明的是,上面代碼中使用的是軟件名,而不是軟件包名。例如,要卸載software-1.2.-1.i386.rpm這個包時,應執行:
#rpm -e software
4.強行卸載RPM包
有時除去一個RPM是不行的,尤其是系統上有別的程序依賴於它的時候。如果執行命令會顯示如下錯誤信息:
## rpm -e xsnow
error: removing these packages would break dependencies:
/usr/X11R6/bin/xsnow is needed by x-amusements-1.0-1
在這種情況下,可以用--force選項重新安裝xsnow:
## rpm -ivh --force xsnow-1.41-1.i386.rpm
xsnow
這裡推薦使用工具軟件Kleandisk,用它可以安全徹底清理掉不再使用的RPM包。
5.安裝.src.rpm類型的文件
目前RPM有兩種模式,一種是已經過編碼的(i386.rpm),一種是未經編碼的(src.rpm)。
rpm --rebuild Filename.src.rpm
這時系統會建立一個文件Filenamr.rpm,在/usr/src/redflag/RPMS/子目錄下,一般是i386,具體情況和Linux發行版本有關。然後 執行下面代碼即可:
rpm -ivh /usr/src/regflag/RPMS/i386/Filename.rpm
Linux綠色軟件
Linux也有一些綠色軟件,不過不是很多。Linux系統提供一種機制:自動響應軟件運行進程的要求,為它設定好可以馬上運行的環境。這種機制可以是一種接口,或者是中間件。程序員編寫的程序可以
直接拷貝分發,不用安裝,只要點擊程序的圖標,訪問操作系統提供的接口,設定好就可以工作。若要刪除軟件,直接刪除就可以,不用鏈接文件。這是最簡單的軟件安裝、卸載方式。
上面介紹了Linux軟件安裝的方法,對於Linux初學者來說,RPM安裝是一個不錯的選擇。如果想真正掌握Linux系統,源代碼安裝仍然是Linux下軟件安裝的重要手段。
(五)系統啟動腳本說明:
1.There are two styles for the booting scripts, they are BSD and SysV init.
Slackware 使用BSD風格的init腳本,而很多別的發行版使用System V風格的init腳本。SysV和BSD腳本都是能讓人讀懂的,即它們都是shell腳本,而不是已編譯的程序。主要的區別在於腳本是如何設計的。
SysV腳本傾向於接受諸如start、stop、restart之類的參數,依它所啟動的程序而定。所以你可以用 /etc/init.d/bind start 這樣的命令來啟動BIND,並用 /etc/init.d/bind stop 來停止BIND。
SysV的啟動還傾向於使用符號鏈接來組織啟動進程,例如在 /etc/rc.d/rc.4/中,可能會有指向別的目錄中的真正的腳本的各種各樣的符號鏈接。這些鏈接的命令會像是 S10network、S25xdm之類,其中的S表示啟動(start)該項服務(如果是K,則表示kill),而數字指定了腳本執行的順序。
SysV風格的啟動腳本的主要優點在於能夠設置成自動配置許多東西。例如,若你進入runlevel 6,你可以建立一個鏈接叫K75bind來終止BIND,前提是鏈接所指向的文件已經設置好來做這件事。
SysV風格腳本的主要缺點是太過彎彎繞。假如我想增加一個服務,我要先寫一個SysV風格的腳本(不是容易的事),它至少要處理“start” (還可能有“stop”)。然後,我必須確保在每個要運行這個服務的runlevel中正確地設置好符號鏈接。如果恰好這個服務需要在已經連續編號的兩個腳本之間運行,我就需要做一些對符號鏈接重新編號的工作(例如,S10xxx和S11yyy已經存在,而我想讓zzzz在它們之間運行,我就需要對前兩者之一重新建立符號鏈接來把zzzz擠進去)。
想暫時改變SysV的啟動進程也是非常痛苦的事情。假如我不想在下次啟動時運行xxx服務,最簡單的辦法是刪除S10xxx這個鏈接,不算難吧?但如果我想在每個runlevel中都去掉它,我就需要從每個有關目錄中刪除S10xxx這個鏈接。然後,假如我改了主意,想重新運行xxx,我需要手工重新建立所有的符號鏈接。
這樣子無疑是在已經很復雜的啟動進程上疊床架屋,而Slackware是不會這麼做的:它用BSD風格的啟動腳本。
BSD風格的腳本是直接了當的shell腳本,它們傾向於順序運行,而不需要start或stop之類參數。只要系統進入了它們的runlevel就會執行,就這麼簡單。
BSD風格的主要缺點是你需要一些其他方法來控制後台服務。例如,若我要停止BIND,我要先用命令 ps ax|grep named 找出 named的PID,然後kill這個PID(或者用這個pid的文件名)。但是我不能簡單地下個命令 /etc/init.d/bind stop (除非我已經寫了個這樣的SysV腳本)。
BSD風格腳本的主要優點是它們非常容易閱讀和編輯。例如,若我想增加一個服務zzzz,我可以在 /etc/rd.d/rc.local中增加一行 /usr/local/bin/zzzz,這樣只要是執行rc.local的runlevel,zzzz就會隨之運行。假如我只想在runlevel 4執行zzzz,我可以把它放在 /etc/rc.d/rc.4 (不是目錄,而是一個腳本)中。如果我要改變執行順序,我只要把zzzz放在適當的服務之間,多數編輯器都支持在文件中間插入文本(就算ed都支持)。還有,你可以用注釋的方式停止一個服務,然後去掉注釋讓它重新運行。
因此,當多數發行版采用SysV風格時,Slackware采用了BSD風格。對於許多Slackware用戶,BSD風格的易用性勝過SysV風格的強大功能。當然,你可以有自己的意見。
與普遍的觀點相反,從一種風格轉到另一種並不那麼困難,只要把inittab和rc文件從一個系統拷貝到另一個系統即可。init程序自身沒有改變,所謂“風格”多是在inittab和它所調用的腳本中設置的。
譯注:現在slackware為了提高兼容性,在/etc/rc.d/提供了rc.sysvinit腳本以適應某些基於SysV啟動過程的商業程序的需要。另外,在許多設置服務的腳本中,也接受start、stop、restart這一類參數,例如rc.sendmail、rc.sshd等。
2.a sample:
1).In /etc/initab ,we found it the runlevel is set to 2.so it will use rc2.d directory for SysV init.
2).create a file named apache.sh. vi /etc/init.d/apache.sh:
#! /bin/sh
echo "Starting Apache Web Server: httpd."
/usr/apache2/bin/apachectl start
3).chmod +x apache.sh
4).change to /etc/rc2.d/
ln -s ../init.d/apache.sh S96apache
5).comments:
順便解釋一下 S96apache 的意思,以 S 開頭表明是開機時會執行的文件,96 是執行的優先順序。
目錄中 S 開頭的檔案為執行該服務, K 為開頭的檔案則是殺掉該服務的意思。那麼那些數字代表的意義為何?那就是激活的順序啦!例如S12syslog 會比S90crond 更早被執行呢!