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了! 

============================================================ 


(三)Vi的必须掌握的基本操作: 

1.进入编辑状态a,i,o,指令状态<esc> 


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 


5)各种软件安装: 


使用deb打包的软件安装 


  deb是Debian Linux提供的一个包管理器,它与RPM十分类似。但由于RPM出现得早,并且应用广泛,所以在各种版本的Linux中都常见到,而Debian的包管理器dpkg只出现在Debina Linux中。它的优点是不用被严格的依赖性检查所困扰,缺点是只在Debian Linux发行版中才能见到这个包管理工具。 

    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两个文件夹,把它们删除即可。 


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 更早被执行呢!

(六)小结
    Linux服务器平台的搭建就说到这里,其他常用的命令请查阅帮助手册。