51Testing软件测试论坛

标题: 14期linux课的要素总结,归纳,扩充(Tomcat配置已更新) [打印本页]

作者: Oh!My    时间: 2006-8-15 23:53
标题: 14期linux课的要素总结,归纳,扩充(Tomcat配置已更新)
首先,继昨天课后留下来给同学答了3个小时疑后,深刻感受到海龙老师的耐心和辛苦。海龙老师一天下来始终保持着帅气迷人的笑容,其人格魅力无穷yeah!介于很多同学觉得老师课上讲了实验怎么做可是原理还是不清楚。我做了这个linux课的总结。目的就是把课堂上的重点结合自己的理解进行讲解,归纳和扩充。方便同学日后复习。同时,结合曾经在ebay实习的经历,我在每个知识点后标出了我认为在实际工作应用时的实用等级。最多三颗星,最低一颗星。方便同学复习时有侧重点。(不过个人主观强些,如有不对欢迎大家即时指出)。其次,结合和linux大师蘑菇的交流,补充了一些上课时没有涉及但是面试时可能会被考到的问题。我认为光扔一堆资料在网上对基础比较差的同学是没有多大帮助的,所以下面的总结都是我自己消化后的结果,而且我只写最最实用的部分。不实用的部分有兴趣的同学可以自己查阅网上资料,或者蘑菇的帖子。http://bbs.51testing.com/viewthread.php?tid=32205

如何使用这个帖子:
第一部分讲了做linux实验前的准备工作。第二到第八部分通过每个具体实验总结其中的重点和涉及的知识,命令用法,并有其中布置的课后练习的详细解答。第九部分总结linux下常用到的一些工具。第十部分对老师上课常用但是前面没有涉及的命令进行了总结。第十一部分对常用的但是上课没有涉及到的命令进行了扩充。在这个帖子未完成前,可能后续部分会发表在随后的回复内。这个问题将会在帖子全部完成后解决

什么人适合阅读这个帖子:
对上课老师讲的知识点有疑问的同学;希望对课上linux知识点进行复习的同学;对课后练习有疑问的同学;懒得看ppt喜欢直击重点的同学

好了,让我们开始吧:

一.Linux实验准备:
要完成Linux课程的全部实验,对于Linux的安装有一定的要求。首先,虚拟机的网络设置要选择”Use bridged networking”, 其次在Linux的安装过程中,在Installation Type下要选择”Server”, Firewall Configuration下要选”No firewall”。在安装包的选择中,Desktop组中可以任选一种图形界面,Application组不必选择,Servers组中选择第一个项目”Server Configuration Tools” 安装,Development组中选择第一个”Development Tools”安装。其中最后一项是必须的,否则是无法使用make命令编译某些软件的源程序的。
最后,在安装Linux的时候要配置好网络。ip地址应配为192.168.0.x (x为255以内的数),子网掩码为255.255.255.0。这里要注意如果你在家里做实验,由于平时连的外网的ip和你Linux上设置的ip相互是ping不通的。所以如果要做实验必须把你windows下的ip同样设为和Linux不同的192.162.0.x.。子网掩码为255.255.255.0。否则你的windows就不能和虚拟机上的Linux相互访问。
-----------------------------------------
二.配置inittab文件以及vi命令的使用
在做实验之前,我们首先要配置/etc/inittab文件使得Linux每次都以命令行模式启动。具体就是把”id:5:initdefault:”中的5改成3。这句话决定了Linux启动时以哪个runlevel运行。runlevel 5代表图形界面,runlevel 3代表命令行界面。

Linux命令介绍: vi
命令描述:文件编辑命令。
重要程度:***
vi 是Linux下最为强大的文本编辑命令之一。其强大的功能来源于其种类繁多的命令。是office办公中Linux环境下常用命令之一。
主要参数说明:
虽然vi命令有许多的参数。但其实用的多不外乎以下几个,其他的命令虽然可以实现更加复杂的编辑功能,但那种情况下不如在windows下编辑好了上传到Linux来的方便。
i :插入模式。顾名思义,按了i以后就可以对文本内容进行添加删除等编辑了。
dd :删除整行
ESC :退回命令模式
w :保存
q :退出
q!:强制退出。当错误的编辑了文件时想退出重新编辑时用
其他参数建议参阅蘑菇帖子里的vi命令png。

-----------------------------------------
三.Webmin实验:光驱的加载以及rpm包的安装
进入第一个实验,我们主意熟悉了Linux下rpm包的安装,以及如何在Linux下加载光驱。其实就是两个命令的熟悉:rpm 以及 mount/umount

Linux命令介绍: rpm
命令描述:用于安装rpm软件包。
重要程度:**
rpm包的软件是Linux下最容易安装的软件方式。但是由于在大企业中Linux是公共使用的系统。应该都已经比较完善了。作为一个新人,不大会有自己在上面安装软件的需要和权限。
主要参数说明:
-qpi 查看软件包里面有什么内容
-qpl 选择安装的方式
-ivh 安装软件包
-e 卸载已经安装的rpm包
-uvh 对新版本的rpm包进行软件升级

Linux命令介绍: mount / umount
命令描述: 装载 / 卸载物理光驱
重要程度:**
在Linux命令行模式下读取cdrom的内容之前需要先装载物理光驱。而且再换新的碟时需要重新加载光驱。但是同样的公司里面很少会用到这个命令,事实上即使在windows下用到光驱的情况也越来越少了。
主要参数说明:
mount的格式很单一。加载命令是 mount /dev/cdrom /mnt/cdrom 卸载命令是 umount /dev/cdrom唯一要注意的是加载光驱时必须在根目录下操作,否则容易出错。

-----------------------------------------
四:VSFTP实验:gzip,tar,chown,chmod,adduser命令的使用,vsftp的配置以及课后练习详解
这个实验介绍了vsftp,它是Linux下一个非常著名的ftp软件功能类似windows下的serveU。本实验在练习了另外一种通过编译方式安装tar包软件的同时教给大家配置vsftp使其实现不同功能的方法。课后练习进一步涉及了chmod命令的使用和vsftp的其他配置。

Linux命令介绍:         tar
命令描述:  打包目录到文件,或者还原tar文件成目录
重要程度: ***
比较实用的一条命令.能够把一个目录打包成为单个文件,这样就加快了传输的速度和方便程度.
主要参数说明:
-x 从存档展开文件
-v 详细显示处理的文件
-f 指定存档或设备 (缺省为 /dev/rmt0)
-c 建立新的存档
-r 附加到存档结尾
-z 解压缩gz文件
命令举例:
把soft目录打包成tar文件: tar -cf soft.tar soft
tar文件解包并显示处理文件: tar -vxf soft.tar soft
解压缩gz文件并把文件解包,显示处理文件:tar xzvf usr.tar.gz

Linux命令介绍:  gzip
命令描述: 压缩,解压gz包
重要程度: **
当我们从网上下载到一个.tar.gz结尾的安装包时,tar命令只负责把目录打包成文件,而没有压缩的功能.压缩的功能由后面介绍的gzip命令提供.也就因此产生了.tar.gz的后缀.对付这样的文件可以用tar命令的-z参数解压,也可以用gzip命令解压
主要参数说明:
不加参数 压缩并删除原文件
-c 压缩结果输出到标准输出,如不加-c参数,则gzip将压缩为.gz文件并删除源文件。
-d 解压缩。

Linux命令介绍:   chmod
命令描述: 更改文件权限
重要程度: ***
这个命令在团队协作是很重要的,因为Linux下你创建的文件默认除了root其他人是没有写权限的.这样一来如果别人要改你的文件特别麻烦.这种情况在你刚进公司还是个新人师傅要帮你修改你创建的文件却受权限限制时特别明显.在这个时候,你就可以用chmod改变你创建的文件权限让组员都可以修改.
主要参数说明:
-v 详细说明权限的变化。
命令举例:
把文件权限改变为属主,组员,其他用户全部可读可写可执行: chmod 777 jian.txt
其中777的意思就是设置文件的权限为111 111 111(二进制) 111中每一位对应的分别是rwx权限,0则代表相应权限被禁止.二进制转换成的十进制数就是紧跟在chmod命令后的数字.如755(111 101 101)表示的权限就是属主可读,写,执行,同组成员和其他成员可读,执行.

Linux命令介绍:   useradd
命令描述:创建新的账号或更新已有账号的信息
重要程度:**
这个命令就是加人,你进公司了,主管用这个命令给你建个账号。但是由于这个命令只有root权限才能调用,所以作为新人你也没有太多机会使用这个命令。但是如果你自己建立了vm上的linux,那么你是老大你说了算。这个命令就变得实用起来了。
主要参数说明:
-d home_dir 新帐号每次登入时所使用的home_dir。预设值为default_home内login名称,并当成登入时目录名称。
-s shell 使用者登入后使用的shell名称。预设为不填写,这样系统会帮你指定预设的登入shell。/sbin/nologin 即为不能通过命令行登陆linux,一般为ftp登陆帐号设置

Linux命令介绍:  chown
命令描述:改变目录或文件的属主或组员
重要程度: **
同样是一个root的超级权限命令。限制了这个命令的使用机会。不过单就命令本身来讲,还是很有用的。
主要参数说明:
-R 递归的方式,就是说目录和目录以下的所有文件全部更改拥有者
-V 执行后会告诉您chown这个程序做了什么事
命令举例:
把/var/ftp及其子目录和子文件的属主改成ftpuser,组员改成root,显示详细信息
chown -RV ftpuser:root /var/ftp

VSFTP的配置:
vsftp的功能实现主要是在/etc/vsftpd.conf文件中实现的."#"符号在linux文件的配置文件中起注释作用,当我们删除了某一行前的#时,该行也就相应的起作用.以下是vsftp的一些主要配置.

anonymous_enable=YES 是否允许匿名ftp,如否则选择NO  
local_enable=YES 是否允许本地用户登录
local_umask=022 默认的umask码
anon_upload_enable=YES 是否允许匿名上传文件
anon_mkdir_write_enable=YES 是否允许匿名用户有创建目录的权利
idle_session_timeout=600 设置默认的断开不活跃session的时间
data_connection_timeout=120 设置数据传输超时时间
chroot_local_user=YES 是否将使用者限制在自己的主目录之内
listen=YES 服务器以standalong模式运行即手动以vsftpd & 命令打开vsftp服务.当选择改模式时需

把Linux system service下的vsftpd关掉,避免每次系统启动时自动加载vsftp服务
max_clients=100 设置最大访问数为100
max_per_ip=5 每个ip允许5个线程访问

课后练习详解:
课后练习
–根据Manpage of VSFTPD_CONF中各配置项的描述完成下面的FTP搭建,要求:
–Upload目录可以上传,其他目录用户不能上传,仅能下载
–限定只有ftpuser可以登录FTP–限定ftpuser登录后只能在安装时指定的目录,而不能进入其他目录
–限定用户ftpuser不能更改目录的文件的权限–限定最大并发访问数为50,每个IP最多5个线程

解答:
首先配置/etc/vsftpd.conf

anonymous_enable=NO        //禁止匿名登陆
local_enable=YES        //在 /etc/passwd 内的账号才能以实体用户的方式登入
write_enable=YES        //允许写操作(须结合帐号Linux下具体权限)
local_umask=022                //设定umask码
chroot_local_user=YES        //将使用者限制在自己的主目录之内
listen=YES                //服务器以standalong模式运行
max_clients=50                //最大访问数为50
max_per_ip=5                //每个ip允许5个线程访问

然后在Linux下对于目录进行操作
chown -R ftpuser:root /var/ftp        //把/var/ftp即其子目录的属主改成ftpuser,组员改成root
mkdir /var/ftp/upload                //建立/var/ftp/upload目录
chmod 555 /var/ftp                //把/var/ftp的权限改为属主组员以及其他成员可读不可写
chmod 755 /var/ftp/upload        //把upload目录设置为属主可读可写(实现Upload目录可以上传,其他目录用户不能上传,仅能下载)

-----------------------------------------
五:Apache实验:dos2unix / unix2dos命令的使用及ccb的安装
这个实验如果前面的命令掌握的好是没有什么好说的,重点是后面结合Tomcat配置安装的课后练习。不过因为必须用到java环境,所以Tomcat的配置放到后面说。

Linux命令介绍: dos2unix / unix2dos
命令描述:  把dos格式的文本文件和unix格式的文本文件互换
重要程度: ***
dos格式和unix格式的文本文件主要区别是两个系统下文本文件中用的换行符不一样. ("13 10" 和 "10"),因此在使用时要相互转换.否则作为配置文件的话会出错.windows下的著名编辑软件ultraedit同样可以实现上述功能

ccb的安装.
重要程度: *
ccb本身的安装实用程度不大.主要在这里可以练习重要命令chmod的使用,以及强化绝对路径和相对路径的概念.另外还出现了*的实用,不过大家都是业内人士了.*, ?匹配符号不会不知道吧?

[ 本帖最后由 Oh!My 于 2006-8-20 21:20 编辑 ]
作者: AlexanderIII    时间: 2006-8-16 00:25
强人......

:)
作者: AlexanderIII    时间: 2006-8-16 00:27
以后要练习一下自己的耐心才行
作者: yang119345    时间: 2006-8-16 00:33
:)不错,我顶下。吼吼
作者: zx0971    时间: 2006-8-16 20:00
多谢楼主了,顶下慢慢看  sdlkfj5
作者: wssgily    时间: 2006-8-16 22:01
知道什么是LF了!努力学习!不能辜负兄弟的一片真情!
我能想到最浪漫的事就是白天全心全意为人民服务,晚上搂着老婆睡大觉了!
努力!
作者: AlexanderIII    时间: 2006-8-17 11:45
再顶一下....
作者: Oh!My    时间: 2006-8-18 00:18
标题:
-----------------------------------------
六:Java实验:预备环境的建立以及path的搜索目录概念
java的安装本身并无新内容可言,可是因为其的安装成功与否是后续实验的基础.所以务必保证java成功安装.在Linux环境下键入java能够测试安装是否到位.
path搜索目录:熟悉dos的同学都应该清楚path的意义.及系统默认的搜索目录.我们知道命令行系统执行的大多数命令都是有具体的某个可执行文件对应的.对于Linux来说,常用的系统命令都放在/bin目录下.而path的默认设置就包含了/bin目录.但是和dos不同的是,当我们在任意目录下键入命令,系统只会在path包含的目录下搜索.而不会在你所在的当前目录下搜索.因此如果你要执行某不包含在path目录下的命令,一定要键入可执行文件的目录全名.当前目录的要在执行命令前加"./"

-----------------------------------------
七:MySQL实验:数据库的配置
MySql是常用到的一个数据库系统.当在Linux下安装好后Mysql以后(需要Java虚拟机支持),我们可以通过两种方法来操作数据库.一是在Linux命令行中键入mysql,这个时候mysql是以root用户登录.注意这只是mysql为了方便用户操作的一种设置.事实上mysql里的root帐户和Linux的root帐户并没有直接关系.第二种方法就是通过windows下安装的MySql Administrator添加数据库和用户.
那为何当我们只添加jirauser帐户时在Linux下键入
mysql --user=jirauser --password=jira --database=jiradb测试会不通过呢?
让我们先来看看Mysql的手册上关于MySQL的用户名和口令部分是怎么说的:

由MySQL使用用户名和口令的方法与Unix或Windows使用的方式有很多不同之处:
MySQL使用于认证目的的用户名,与Unix用户名(登录名字)或Windows用户名无关。缺省地,大多数MySQL客户尝试使用当前Unix用户名作为MySQL用户名登录,但是这仅仅为了方便。客户程序允许用-u或--user选项指定一个不同的名字,这意味着无论如何你不能使得一个数据库更安全,除非所有的MySQL用户名都有口令。任何人可以试图用任何名字连接服务器,而且如果他们指定了没有口令的任何名字,他们将成功。

由此我们知道,当我们通过装有Linux本机的系统登录并进入Mysql时,Mysql会以你在Linux登录时的用户名登录并没有口令.但是当你在windows添加用户名jira时,默认是不从localhost登录的.也就是说这个用户并不能通过Linux本机登录。所以当我们在"add host from which the user can connect"中选择了Linux本机时,上述命令就可以测试通过了。

-----------------------------------------
八:Apache实验课后练习:Apache加Tomcat的配置
配置Tomcat前需要做一些准备工作。首先下载Tomcat5.5.9即jakarta-tomcat-5.5.9.tar.gz文件,Mod_jk 1.2.14即jakarta-tomcat-connectors-1.2.14-src.tar.gz文件。这里Mod_jk是Tomcat-Apache插件,为Apache和Tomcat的连接器,处理Tomcat和Apache之间的通信,在集群配置中充当负载均衡器的作用,当前的最新版本为1.2.15。在确保了机器上已经安装有apache和java虚拟机以后,做如下配置。首先安装Tomcat,再安装Mod_jk,最后进行Tomcat和Apache的整合:
Tomcat安装:
       # cd /usr/local/
  # tar xvfz jakarta-tomcat-5.5.9.tar.gz
  # mv /usr/local/jakarta-tomcat-5.5.9 /usr/local/tomcat
  # vi /usr/local/tomcat/bin/catalina.sh
第46行加入此句
  JAVA_HOME=/usr/java/j2sdk1.4.2_10
  启动服务
  # /usr/local/tomcat/bin/startup.sh /startup.bat
  关闭服务
  # /usr/local/tomcat/bin/shutdown.sh /shutdown.bat

安装JK
  # cd /usr/local/
  # tar xzvf jakarta-tomcat-connectors-1.2.14-src.tar.gz
  # cd jakarta-tomcat-connectors-1.2.14-src/jk/native
  # chmod 755 buildconf.sh
  # ./buildconf.sh
  # ./configure --with-apxs=/usr/local/apache/bin/apxs
  # make
  # make install
  # cd /usr/local/jakarta-tomcat-connectors-jk1.2.14-src/jk/native/apache-2.0/
  # cp mod_jk.so /usr/local/apache/modules/
  
系统整合
  
  # vi /usr/local/apache/conf/httpd.conf
在文件最末尾加上如下语句
  #Load mod_jk
  LoadModule jk_module modules/mod_jk.so
  # Configure mod_jk
  JkWorkersFile conf/workers.properties
  JkLogFile logs/mod_jk.log
  JkLogLevel info
  JkMount /*.jsp loadbalancer
  JkMount /servlet/* loadbalancer
  JkMount /application/* loadbalancer
  #vi /usr/local/apache/conf/workers.properties
添加下列语句
  #
  # workers.properties
  #
  # In Unix, we use forward slashes:
  ps=/
  # list the workers by name
  worker.list=tomcat1, tomcat2, loadbalancer
  # ------------------------
  # First tomcat server
  # ------------------------
  worker.tomcat1.port=8009
  worker.tomcat1.host=127.0.0.1
  worker.tomcat1.type=ajp13
  # Specify the size of the open connection cache.
  #worker.tomcat1.cachesize
  #
  # Specifies the load balance factor when used with
  # a load balancing worker.
  # Note:
  # ----> lbfactor must be > 0
  # ----> Low lbfactor means less work done by the worker.
  worker.tomcat1.lbfactor=100
  # ------------------------
  # Second tomcat server
  # ------------------------
  worker.tomcat2.port=8009
  worker.tomcat2.host=192.168.1.34
  worker.tomcat2.type=ajp13
  # Specify the size of the open connection cache.
  #worker.tomcat2.cachesize
  #
  # Specifies the load balance factor when used with
  # a load balancing worker.
  # Note:
  # ----> lbfactor must be > 0
  # ----> Low lbfactor means less work done by the worker.
  worker.tomcat2.lbfactor=100
  # ------------------------
  # Load Balancer worker
  # ------------------------
  # The loadbalancer (type lb) worker performs weighted round-robin
  # load balancing with sticky sessions.
  # Note:
  # ----> If a worker dies, the load balancer will check its state
  # once in a while. Until then all work is redirected to peer
  # worker.
  worker.loadbalancer.type=lb
  worker.loadbalancer.balanced_workers=tomcat1, tomcat2
  #
  # END workers.properties
  #
  #vi /usr/local/tomcat/conf/server.xml
  <Connector port="8009"
  protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"
  redirectPort="8443" protocol="AJP/1.3" />  第101行
在119行左右加入如下语句(去注释)
  
  <Engine name="Standalone" defaultHost="localhost" jvmRoute="tomcat1"></Engine>
若第二台tomcat,将jvmRoute的修改为tomcat2
系统整合完毕
  
启动apache和tomcat服务
  # /usr/local/apache/bin/apachectl start
  # /usr/local/tomcat/bin/catalina.sh start
将如下内容添加至/etc/rc.d/rc.local文件末尾
以便系统启动后开启apache,tomcat服务
  #vi /etc/rc.d/rc.local
添加
  /usr/local/tomcat/bin/catalina.sh start
  /usr/local/apache/bin/apachectl start

[ 本帖最后由 Oh!My 于 2006-8-20 22:09 编辑 ]
作者: Oh!My    时间: 2006-8-18 00:20
终于完成到实验部分了。tomcat的配置我自己也要研究一下再发表。发现原来发表帖子有1000字限制的。那我先续一下,等全部写完再重新整理发新贴。
大家给我点鼓励吧sdlkfj1
作者: 海龙    时间: 2006-8-18 07:08
做的非常好,这种学习劲头值得大家借鉴。


庄严同学也是到了很晚,终于解决了JIRA的安装问题,同样值得鼓励。

发件人: majesty [mailto:majesty_1@163.com]
发送时间: 2006年8月18日 2:00
收件人: wanghailong@51testin...
主题: JIRA问题已解决

王老师好:
   那个问题解决了,呵呵。
   晚上实在没办法试着手动了加了个环境变量倒可以用了,就是在/etc/profile文件里另外设置一个JIRA_HOME=/usr/jira,然后在PATH后加上$JIRA_HOME/bin  保存退出后startup.sh就可以执行了。
   可以安心睡觉了。
作者: pele    时间: 2006-8-18 23:34
学习陈同学、庄同学等同学的学习尽头,更要感谢海龙老师的耐心。
作者: wssgily    时间: 2006-8-20 17:14
study surpass leading
作者: Oh!My    时间: 2006-8-20 21:19
哦,受到海龙老师的鼓励士气大振,今天终于把tomcat也配置上了。力争把这个帖子做完做好,保质保量。

[ 本帖最后由 Oh!My 于 2006-8-20 22:07 编辑 ]
作者: yang119345    时间: 2006-8-21 00:03
真不错~~顶
作者: 忧郁の真人    时间: 2006-8-21 15:48
不错不错,真的写的不错。值得好好学习一下。。。。。。
作者: jeloss    时间: 2006-8-21 17:01
LZ果然高人~!
作者: linkalee    时间: 2007-1-11 21:37
太强了,一定要把这个帖子顶出来,请大家好好学习。
另请17期学员对照学习,并进行反思,我觉得大家都要有这种精神才好,不要老看到别人进了什么好公司,要看看别人做了多少工作。
共勉!!
作者: qi_cy    时间: 2007-1-11 21:42
谢谢师兄:)收藏了!
作者: songfun    时间: 2007-1-11 23:50
有这么努力的同学,不顶不行了,呵呵
作者: tinafang0000    时间: 2007-1-12 21:52
强宁~~~~
作者: shirley.yang    时间: 2007-1-13 19:37
太太Q,太太牛了
学习这篇好文
学习这篇好文折射的学习精神~~~~~~~~~~~
学习这篇好文背后的奉献精神~~~~~~~~~~~
作者: belinda7197    时间: 2007-1-14 12:49
刚刚看到这个帖子
实在是强
作者: gzj_06    时间: 2007-5-8 14:30
原帖由 belinda7197 于 2007-1-14 12:49 发表
刚刚看到这个帖子
实在是强

我也是刚刚看到这个帖子,值得好好学习,值得向大家推荐sdlkfj2
作者: brin_zhang    时间: 2007-5-8 20:52
真实佩服............谢谢楼主,学习了。。。。。。。。。
顶顶顶顶顶顶顶顶顶顶顶顶.....................




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2