点击这里给我发消息

我的ITblog我作主  关注→ 『伊波拉』→ 测试 SzDlinXie- ITblog     

·√· 本ITblog站点记录相关的软件技术文档、网络技术杂志、测试技术杂谈等技术文档的管理站点.联系方式:MSN:dowling@sunlike.cn QQ:94595885

统计

积分与排名

测试技术网站链接

最新评论

Linux常用基本操作

软件的安装

 

   Linux 下软件的安装主要有两种不同的形式。第一种安装文件名为 xxx.tar.gz ;另一种安装文件名为 xxx.i386.rpm 。以第一种方式发行的软件多为以源码形式发送的;第二种方式则是直接以二进制形式发送的。

 

  对于第一种,安装方法如下:

 

   1 . 首先,将安装文件拷贝至你的目录中。例如,如果你是以 root 身份登录上的,就将软件拷贝至 /root 中。

 

   #cp xxx.tar.gz /root

 

   2 . 由于该文件是被压缩并打包的 , 应对其解压缩。命令为:

 

   #tar xvzf filename.tar.gz 如果是 filename.tar.bz2 格式的,应该是 tar jxvf filename.tar.bz2 来解压

 

   3. 执行该命令后,安装文件按路径,解压缩在当前目录下。用 ls 命令可以看到解压缩后的文件。通常在解压缩后产生的文件中,有“ Install ”的文件。该文件为纯文本文件,详细讲述了该软件包的安装方法。

 

   4. 执行解压缩后产生的一个名为 configure 的可执行脚本程序。它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息。为随后的编译工作做准备。命令为: #./configure

 

  如果您想把软件安装到指定目录,应该用 #./configure --prefix=/ 您自己指定的目录,比如我想把一个 mlterm 安装到 /opt/mlterm 目录中,应该如下输入

 

   #./configure --prefix=/opt/mlterm

 

   5. 检查通过后,将生成用于编译的 MakeFile 文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机性能的不同,所耗费的时间也不同。命令为: #make

 

   6. 成功编译后,键入如下的命令开始安装:

 

   #make install

 

   7. 安装完毕,应清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令:

 

   #make clean

 

   #make distclean

 

  至此,软件的安装结束。

 

  对于第二种,其安装方法要简单得多。

 

  同第一种方式一样,将安装文件拷贝至你的目录中。然后使用 rpm 来安装该文件。命令如下:

 

   #rpm -i filename.i386.rpm

 

   rpm 将自动将安装文件解包,并将软件安装到缺省的目录下。并将软件的安装信息注册到 rpm 的数据库中。参数 i 的作用是使 rpm 进入安装模式。

 

  软件的卸载

 

   1. 软件的卸载主要是使用 rpm 来进行的。卸载软件首先要知道软件包在系统中注册的名称。键入命令:

 

   #rpm -q -a

 

  即可查询到当前系统中安装的所有的软件包。

 

   2. 确定了要卸载的软件的名称,就可以开始实际卸载该软件了。键入命令:

 

   #rpm -e [package name]

 

  即可卸载软件。参数 e 的作用是使 rpm 进入卸载模式。对名为 [package name] 的软件包进行卸载。由于系统中各个软件包之间相互有依赖关系。如果因存在依赖关系而不能卸载, rpm 将给予提示并停止卸载。你可以使用如下的命令来忽略依赖关系,直接开始卸载:

 

   #rpm -e [package name] -nodeps

 

  忽略依赖关系的卸载可能会导致系统中其它的一些软件无法使用

 

  如果想知道 rpm 包安装到哪里了呢?

 

  应该用 #rpm -ql [package name]

 

   3. 如何卸载用源码包安装的软件?

 

  最好是看 README INSTALL ;一般的情况下都有说,但大多软件没有提供源码包的卸载方法;我们可以找到软件的安装点删除。主要看你把它安装在哪了。

 

  比如:

 

  如果安装软件时,指定个目录。这个问题也不会难;

 

  比如用源码包安装 gaim

 

   #./configure --prefix=/opt/gaim

 

   #make

 

   #make install

 

  如果安装 mlterm

 

   #./configure --prefix=/opt/mlterm

 

   #make

 

   #make install

 

  把源码包安装的软件,都指定安装在 /opt 目录中,这样不就知道了;

 

  如果删除,就删除相应的软件目录;

 

  有些软件要在解压安装目录中执行 make uninstall ,这样就卸载掉了。

 

 

redhat 下的 tomcat 安装

 

zywang [ 中国 Linux 论坛 ]

 

( 错误和疑问请和 zy.wang@263.net 联系 )

 

 

http://jakarta.apache.org/builds/tomcat/release/v3.1/bin/linux/i386/ 取得 mod_jserv.so

 

1 、安装 jdk1.2.2

 

#cp jdk1_2_2-linux-i386.tar.gz /usr/local

 

#tar xvzf jdk1_2_2-linux-i386.tar.gz

 

#ln -s jdk1.2.2 jdk #ln -s jdk/jre jre

 

设置 $JAVA_HOME,$CLASSPATH #vi /etc/profile

 

加入: JAVA_HOME=/usr/local/jdk export

 

JAVA_HOME CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib export

 

CLASSPATH PATH=$PAHT:/usr/local/jdk/bin:/usr/local/jre/bin

 

2 、安装 tomcat

 

#cp jakarta-tomcat.tar.gz /usr/local

 

#tar xvzf jakarta-tomcat.tar.gz

 

退出重新登入

 

#cd /usr/local/jakarta-tomcat/bin

 

运行 tomcat 服务器

 

#./startup.sh start( ./shutdown.sh stop 结束 tomcat 服务器)

 

#lynx http://localhost:8080/

 

看见了 jsp/servlet 的东西,并且能运行它的例子程序,那么你的 tomcat 服务器就安装成功了!

 

3 、和 apache 连接

 

tomcat 本身其实就是一个 web 服务器,我们可以把他和 apache 等其他 web 服务器连接起来,这两个服务器 可以不在同一台机器上。底下的操作为在同一台机器上的情况,如果想把他们分开在两台计算机上,请 修改 /usr/loca/jakarta-tomcat/conf/tomcat.conf

 

#cp mod_jserv.so /your/apache/libexec

 

#cp /usr/local/jakarta-tomcat/conf/tomcat.conf /your/apache/conf/path

 

#vi /your/apache/conf/path/httpd.conf 加入 Include /your/apache/conf/path/httpd/tomcat.conf

 

4 、测试

 

重新启动你的 apache, 然后运行 tomcat 服务器

 

#lynx http://localhost/examples/

 

如果你看见了 jsp servlet 目录,你的 apche tomcat 已经连接成功了 .

 

5 、一些说明:

 

如果你的 jsp/servlet 运行不了或者有错误,一般是你的 CLASSPATH 设置错误 如果你的 apache 是自己编译的,编译 apache 时请把 --enable-module=so 打开

 

关于 tomcat 的信息请到 http://jakarta.apache.org

其他 jsp 方面的信息可以到 http://java.sun.com/jsp

 

redhat6.1+apache+tomcat 安装指南

 

axeon 2000-05-08 11:24:34 加贴在 JSP 技术:

 

下载说明:

java.sun.com 取得 jdk1_2_2-linux-i386.tar.gz

http://java.apache.org/builds/

http://jakarta.apache.org/builds/tomcat/release/v3.1/bin/ 取得 jakarta-tomcat.tar.gz,

http://java.apache.org/jserv/dist/ApacheJServ-1.1-2_RH6x.i386.rpm

 

1 、安装 jdk1.2.2

#cp jdk1_2_2-linux-i386.tar.gz /usr/local

#tar xvzf jdk1_2_2-linux-i386.tar.gz

#ln -s jdk1.2.2 jdk

#ln -s jdk/jre jre

 

设置 $JAVA_HOME,$CLASSPATH

#vi /etc/profile

加入:

JAVA_HOME=/usr/local/jdk

export JAVA_HOME

CLASSPATH=/usr/local/jdk/lib:/usr/local/jre/lib

export CLASSPATH

PATH=$PAHT:/usr/local/jdk/bin:/usr/local/jre/bin

 

2 、安装 tomcat

#cp jakarta-tomcat.tar.gz /usr/local

#tar xvzf jakarta-tomcat.tar.gz

#cd /usr/local/jakarta-tomcat/bin

运行 tomcat 服务器

#./startup.sh start( ./shutdown.sh stop 结束 tomcat 服务器)

#lynx http://localhost:8080/

如果可以运行它的例子程序,那么 tomcat 服务器就安装成功了

 

3 、安装 jserv

#rmp -ivh   ApacheJServ-1.1-2_RH6x.i386.rpm

 

4 、和 apache 连接

httpd.conf 中加入

Include /your/apache/conf/path/httpd/tomcat-apache.conf

( 这个文件在你第一次运行 tomcat 时候生成)

注释掉

<IfModule mod_jserv.c>

Include /etc/httpd/conf/jserv/jserv.conf

</IfModule>

这几行

 

5 、测试

重新启动你的 apache, 然后运行 tomcat 服务器

#lynx http://localhost/examples/

如果你看见了 jsp servlet 目录,你的 apche tomcat 已经连接成功了 .

 

 

基本操作命令 :

 

---------------------------------------------------------------------- ----------------------------------------------------------------------

 

ls # 以默认方式显示当前目录文件列表

 

ls a # 显示所有文件包括隐藏文件

 

ls l # 显示文件属性,包括大小,日期,符号连接,是否可读写及是否可执行

 

ls --color=never *.so > obj # 不显示文字颜色 , 将所有 so 文件记录到 obj 文件中

 

----------------------------------------------------------------------

 

cd dir # 切换到当前目录下的 dir 目录

 

cd / # 切换到根目录

 

cd .. # 切换到到上一级目录

 

cd ../.. # 切换到上二级目录

 

cd ~ # 切换到用户目录,比如是 root 用户,则切换到 /root

 

----------------------------------------------------------------------

 

rm file # 删除某一个文件

 

rm -fr dir # 删除当前目录下叫 dir 的整个目录

 

----------------------------------------------------------------------

 

cp source target # 将文件 source 复制为 target

 

cp /root/source . # /root 下的文件 source 复制到当前目录

 

cp av soure_dir target_dir # 将整个目录复制,两目录完全一样

 

cp fr source_dir target_dir # 将整个目录复制,并且是以非链接方式复制,当 source 目录带有符号链接时,两个目录不相同

 

----------------------------------------------------------------------

 

mv source target # 将文件 source 更名为 target

 

---------------------------------------------------------------------

 

diff dir1 dir2 # 比较目录 1 与目录 2 的文件列表是否相同,但不比较文件的实际内容,不同则列出

 

diff file1 file2 # 比较文件 1 与文件 2 的内容是否相同,如果是文本格式的文件,则将不相同的内容显示,如果是二进制代码则只表示两个文件是不同的

 

comm file1 file2 # 比较文件,显示两个文件不相同的内容

 

---------------------------------------------------------------------

 

echo message # 显示一串字符

 

echo "message message2" # 显示不连续的字符串

 

cat:

 

cat file # 显示文件的内容,和 DOS type 相同

 

cat file | more # 显示文件的内容并传输到 more 程序实现分页显示,使用命令 less file 可实现相同的功能

 

more # 分页命令,一般通过管道将内容传给它,如 ls | more

 

----------------------------------------------------------------------

 

export LC_ALL=zh_CN.GB2312 # 将环境变量 LC_ALL 的值设为 zh_CN.GB2312

 

export DISPLAY=0:0 # 通过该设置,当前字符终端下运行的图形程序可直接运行于 Xserver

 

date # 显示当前日期时间

 

date -s 20:30:30 # 设置系统时间为 20:30:30

 

date -s 2002-3-5 # 设置系统时期为 2003-3-5

 

clock r # 对系统 Bios 中读取时间参数

 

clock w # 将系统时间 ( 如由 date 设置的时间 ) 写入 Bios

 

----------------------------------------------------------------------

 

eject #umout CDROM 并将光碟弹出,但 cdrom 不能处于 busy 的状态,否则无效

 

---------------------------------------------------------------------

 

du # 计算当前目录的容量

 

du -sm /root # 计算 /root 目录的容量并以 M 为单位

 

find -name /path file # /path 目录下查找看是否有文件 file

 

grep -ir chars # 在当前目录的所有文件查找字串 chars ,并忽略大小写, -i 为大小写, -r 为下一级目录

 

----------------------------------------------------------------------

 

vi file # 编辑文件 file

 

vi 原基本使用及命令:

 

输入命令的方式为先按 ctrl+c 然后输入 :x( 退出 ),:x!( 退出并保存 ) :w( 写入文件 ),:w!( 不询问方式写入文件), :r file( 读文件 file) ,:%s/oldchars/newchars/g( 将所有字串 oldchars 换成 newchars) 这一类的命令进行操作

 

----------------------------------------------------------------------

 

man ls # 读取关于 ls 命令的帮助

 

man ls | grep color # 读取关于 ls 命令的帮助并通过 grep 程序在其中查找 color 字串

 

----------------------------------------------------------------------

 

startx # 运行 Linux 图形有环境

 

Xfree86 # 只运行 X 图形 server

 

----------------------------------------------------------------------

 

reboot # 重新启动计算机

 

halt # 关闭计算机

 

init 0 # 关闭所有应用程序和服务,进入纯净的操作环境

 

init 1 # 重新启动应用及服务

 

init 6 # 重新启动计算机

 

----------------------------------------------------------------------

 

扩展命令

 

---------------------------------------------------------------------- ----------------------------------------------------------------------

 

tar xfzv file.tgz # 将文件 file.tgz 解压

 

tar xfzv file.tgz -C target_path # 将文件 file.tgz 解压到 target_path 目录下

 

tar cfzv file.tgz source_path # 将文件 source_path 压缩为 file.tgz

 

tar c directory > directory.tar # 将目录 directory 打包成不压缩的 directory.tar

 

gzip directory.tar # 将覆盖原文件生成压缩的 directory.tar.gz

 

gunzip directory.tar.gz # 覆盖原文件解压生成不压缩的 directory.tar

 

tar xf directory.tar # 可将不压缩的文件解包

 

----------------------------------------------------------------------

 

dmesg # 显示 kernle 启动及驱动装载信息

 

uname # 显示操作系统的类型

 

uname -R # 显示操作系统内核的 version

 

----------------------------------------------------------------------

 

strings file 显示 file 文件中的 ASCII 字符内容

 

----------------------------------------------------------------------

 

rpm -ihv program.rpm # 安装程序 program 并显示安装进程

 

rpm2targz program.rpm program.tgz # rpm 格式的文件转换成 tarball 格式

 

----------------------------------------------------------------------

 

su root # 切换到超级用户

 

sulogin /dev/tty4 # tty4 alt+F4 终端等待用户登陆或直接登陆开启一个 shell

 

chmod a+x file # file 文件设置为可执行,脚本类文件一定要这样设置一个,否则得用 bash file 才能执行

 

chmod 666 file # 将文件 file 设置为可读写

 

chown user /dir # /dir 目录设置为 user 所有

 

----------------------------------------------------------------------

 

mknod /dev/hda1 b 3 1 # 创建块设备 hda1 ,主设备号为 3 ,从设备号为 1 ,即 master 硬盘的的第一个分区

 

mknod /dev/tty1 c 4 1 # 创建字符设备 tty1, 主设备号为 4 ,众设备号为 1 ,即第一个 tty 终端

 

----------------------------------------------------------------------

 

touch /tmp/running # /tmp 下创建一个临时文件 running ,重新启动后消失

 

----------------------------------------------------------------------

 

sleep 9 # 系统挂起 9 秒钟的时间

 

----------------------------------------------------------------------

 

lpd stop cups stop # 停止打印服务程序

 

lpd start cups start # 启动打印服务程序

 

lpd restart cups restart # 重新启动打印服务程序

 

lpr file.txt # 打印文件 file.txt

 

----------------------------------------------------------------------

 

fdisk /dev/hda # 就像执行了 dos fdisk 一样

 

cfdisk /dev/hda # fdisk 界面稍为友好些

 

mount -t ext2 /dev/hda1 /mnt # /dev/hda1 装载到 /mnt 目录

 

df # 显示文件系统装载的相关信息

 

mount -t iso9660 /dev/cdrom /mnt/cdrom # 将光驱加载到 /mnt/cdrom 目录

 

mount-t smb //192.168.1.5/sharedir /mnt -o username=tomlinux,password=tomlinux # windows 的的共享目录加载到 /mnt/smb 目录,用户名及密码均为 tomlinux

 

mount -t nfs 192.168.1.1:/sharedir /mnt # nfs 服务的共享目录 sharedir 加载到 /mnt/nfs 目录

 

umount /mnt # /mnt 目录卸载, /mnt 目录必须处于空闲状态

 

umount /dev/hda1 # /dev/hda1 设备卸载,设备必须处于空亲状态

 

sync # cache 中的内容与磁盘同步,在 Linux 中复制文件,一般要系统空闲才去写文件

 

e2fsck /dev/hda1 # 检查 /dev/hda1 是否有文件系统错误,提示修复方式

 

e2fsck -p /dev/hda1# 检查 /dev/hda1 是否有错误,如果有则自动修复

 

e2fsck -y /dev/hda1# 检查错误,所有提问均于 yes 方式执行

 

e2fsck -c /dev/hda1# 检查磁盘是否有坏区

 

mkfs /dev/hda1 # 格式化 /dev/hda1 ext2 格式

 

mkfs.minix /dev/hda1 # 格式化 /dev/hda1 minix 格式文件系统

 

mfks /dev/hda9 # 格工化 /dev/hda9 Linux swap 格式

 

swapon /dev/hda9 # swap 分区装载当作内存来用

 

swapoff /dev/hda9 # swap 分区卸载

 

----------------------------------------------------------------------

 

lilo # 运行 lilo 程序,程序自动查找 /etc/lilo.conf 并按该配置生效

 

lilo -C /root/lilo.conf #lilo 程序按 /root/lilo.conf 配置生效

 

grub # Linux shell 状态下运行 boot loader 设置程序

 

grub-install # 安装 grub 磁盘引导程序,成功后升级内核无须像 lilo 一样要重新启动系统,只需修改 /etc/grub.conf 即可实现新引导配置

 

rdev bzImage # 显示 kernel 的根分区信息

 

rdev bzImage /dev/hda1 # kernel 的根分区设置为 /dev/hda1 ,这在没有 lilo 等引导程序的系统中非常重要 .

 

----------------------------------------------------------------------

 

dd if=/dev/fd0 of=floppy.fd # 将软盘的内容复制成一个镜像,功能与旧石器时代常用的 hd-copy 相同

 

dd if=/dev/zero of=root.ram bs=1024,count=1024 # 生成一个大小为 1M 的块设备,可以把它当作硬盘的一个分区来用

 

mkfs root.ram # 将块设备格式化为 ext2 格式

 

dd if=root.ram of=/dev/ram0 # init.rd 格式的 root.ram 的内容导入内存

 

mount /dev/ram0 /mnt #ramdisk /dev/ram0 装载到 /mnt 目录

 

----------------------------------------------------------------------

 

gcc hello.c # hello.c 编译成名为 a.out 二进制执行文件

 

gcc hello.c -o hello # hello.c 编译成名为 hello 的二进制执行文件

 

gcc -static -o hello hello.c # hello.c 编译成名为 hello 的二进制静态执行文件

 

ldd program # 显示程序所使用了哪些库

 

objcopy -S program # 将程序中的符号表及无用的调试信息去掉,可以小很多

 

----------------------------------------------------------------------

 

strace netscape # 跟踪程序 netscape 的执行,看调用的库,环境变量设置,配置文件,使用的设备,调用的其它应用程序等,在 strace 下,程序干了什么东东一目了然。

 

ps # 显示当前系统进程信息

 

ps ef # 显示系统所有进程信息

 

kill -9 500 # 将进程编号为 500 的程序干掉

 

killall -9 netscape # 将所有名字为 netscape 的程序杀死, kill 不是万能的,对僵死的程序则无效。

 

top # 显示系统进程的活动情况,按占 CPU 资源百分比来分

 

free # 显示系统内存及 swap 使用情况

 

time program # program 程序结束后,将计算出 program 运行所使用的时间

 

----------------------------------------------------------------------

 

chroot . # 将根目录切换至当前目录 , 调试新系统时使用

 

chroot /tomlinux # 将根目录切换至 /tomlinux 目录

 

chroot /tomlinux sbin/init # 将根目录切换至 /tomlinux 并执行 sbin/init

 

adduser id # 增加一个叫 id 的用户

 

userdel id # 增除叫 id 的用户

 

userlist # 显示已登陆的用户列表

 

passwd id # 修改用户 id 的密码

 

passwd -d root # root 用户的密码删除

 

chown id /work # 指定 /work 目录为 id 用户所拥有

 

----------------------------------------------------------------------

 

ifconfig eth0 192.168.1.1 netmask 255.255.255.0 # 设置网卡 1 的地址 192.168.1.1 ,掩码为 255.255.255.0 ,不写 netmask 参数则默认为 255.255.255.0

 

ifconfig eth0:1 192.168.1.2 # 捆绑网卡 1 的第二个地址为 192.168.1.2

 

ifconfig eth0:x 192.168.1.x # 捆绑网卡 1 的第二个地址为 192.168.1.x

 

ifconfig down eth1 # 关闭第二块网卡,使其停止工作

 

hostname -F tomlinux.com # 将主机名设置为 tomlinux.com

 

route # 显示当前路由设置情况

 

route add default gw 192.168.1.1 metric 1 # 设置 192.168.1.1 为默认的路由

 

route del default # 将默认的路由删除

 

dhcp # 启动 dhcp 服务

 

dhclient # 启动 dhcp 终端并自动获取 IP 地址

 

ping 163.com # 测试与 163.com 的连接

 

ping 202.96.128.68 # 测试与 IP 202 96.128.68 的连接

 

----------------------------------------------------------------------

 

probe rtl8139 # 检查驱动程序 rtl8139.o 是否正常工作

 

lsmod # 显示已装载的驱动程序

 

insmod rtl8139.o # 装载驱动程序 rtl8139.o

 

insmod sb.o io=0x280 irq=7 dma=3 dma16=7 mpu_io=330 # 装载驱动程序并设置相关的 irq,dma 参数

 

rmmod rtl8139 # 删除名为 rtl8139 的驱动模块

 

gpm -k # 停止字符状态下的 mouse 服务

 

gpm -t ps2 # 在字符状态下以 ps2 类型启动 mouse 的服务

 

----------------------------------------------------------------------

 

telnet 192.168.1.1 # 登陆 IP 192.168.1.1 telnet 服务器

 

telnet iserver.com # 登陆域名为 iserver.com telnet 服务器

 

ftp 192.168.1.1 ftp iserver.com # 登陆到 ftp 服务

 

 

java 及相关配置

 

1 80% 的物理内存

   /home/tomcat/bin/catalina.sh 中添加

   JAVA_OPTS='-Xms256m -Xmx512m'

   管理机:

   JAVA_OPTS='-Xms256m -Xmx1024m'

   支撑机:

   JAVA_OPTS='-Xms256m -Xmx768m'

   测试机:

  

  

   export LD_ASSUME_KERNEL = 2.4.1

  

2 Tomcat 自启动设置:

/etc/rc.local 文件

  sshd

  touch /var/lock/subsys/local

  /etc/init.d/mysql start

  export JAVA_HOME=/home/j2sdk

  cd /home/tomcat/bin

  ./startup.sh

 

3 MySQL 自启动设置:

/etc/rc.local 文件

  /etc/init.d/mysql start

 

3 、设置虚拟路径:

/home/tomcat/conf/server.xml 文件:

        </Context>

         <Context path="/backup" docBase="/home/backup" reloadable="false" />

        <Context path="/arbitration" docBase="/home/arbitration" reloadable="true" />

        <Context path="/netbar" docBase="/home/netbar" reloadable="true" />

        <Context path="/beijing" docBase="/home/beijing" reloadable="true" />

      </Host>

    </Engine>

  </Service>

</Server>

 

4 、连接数配置:

/home/tomcat/conf/server.xml 文件:

     <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"

               port="8080" minProcessors="5" maxProcessors="75"

               enableLookups="true" redirectPort="8443"

               acceptCount="100" debug="0" connectionTimeout="20000"

               useURIValidationHack="false" disableUploadTimeout="true" URIEncoding="UTF-8"/>

    <!-- Note : To disable connection timeouts, set connectionTimeout value

     to 0 -->

 

    <!-- Define a SSL Coyote HTTP/1.1 Connector on port 8443 -->

    <!--

    <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"

               port="8443" minProcessors="5" maxProcessors="75"

               enableLookups="true"

           acceptCount="100" debug="0" scheme="https" secure="true"

               useURIValidationHack="false" disableUploadTimeout="true">

      <Factory className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"

               clientAuth="false" protocol="TLS" />

    </Connector>

 

5 、管理机 root.xml 配置

/home/tomcat/bin/root.xml

  <?xml version="1.0" encoding="UTF-8"?>

  <JWCFK> 

    <db>

            <driverName>com.mysql.jdbc.Driver</driverName>

            <connectionURL>jdbc:mysql://192.168.16.20/netbar</connectionURL>

            <connectionParam>useUnicode=true</connectionParam>

            <connectionParam>characterEncoding=gbk</connectionParam>

            <connectionParam>maxRows=10000</connectionParam>

            <user>root</user>

            <password>gtigstarcenter</password>

            <maxConnection>10</maxConnection>

    </db>

  </JWCFK>

 

5 、支撑机 root.xml 配置

/home/tomcat/bin/root.xml    

  <?xml version="1.0" encoding="UTF-8"?>

  <JWCFK> 

    <db>

            <driverName>com.mysql.jdbc.Driver</driverName>

            <connectionURL>jdbc:mysql://192.168.16.20/netbar</connectionURL>

            <connectionParam>useUnicode=true</connectionParam>

            <connectionParam>characterEncoding=gbk</connectionParam>

            <user>root</user>

            <password>gtigstarcenter</password>

            <maxConnection>40</maxConnection>

    </db>

  </JWCFK>  

 

6 MySQL 数据库配置参数:

 

show processlist; (登陆到 mysql 数据库后,该命令可以查看当前所做事情列表)

 

show table status from netbar like 'Consume';

 

EXPLAIN SELECT SHOW VARIABLES SHOW STATUS SHOW PROCESSLIST

show variables like 'table_type';

 

show create table tablename;  // 查看建表语句

show index from 表名 ;  // 查看表索引情况

alter table 表名 drop index 索引名 ;  // 删除索引

alter table 表名 add index 索引名 ( 字段名 1[ ,字段名 2 ]);

alter table employee change depno depno int(5) not null;

GRANT privileges (columns)

    ON what

    TO user IDENTIFIED BY "password"

    WITH GRANT OPTION  

   

grant all privilleges on *.* to test1@localhost identified by '123456' with grant option;

 

記憶體的消耗數量簡易計算方式是:

key_buffer + (sort_buffer + read_buffer) * max_connection

 

innodb 表不能用 repair table 命令和 myisamchk -r table_name

但可以用 check table ,以及 mysqlcheck [OPTIONS] database [tables]

mysqlcheck -r -o -uroot -p****** netbar

 

c:\mysql\bin\mysqld-max-nt --standalone --default-table-type=InnoDB

------------------------------------------

有的时候因为掉电或者其他原因导致数据库损坏 , 我们可以使用 mysql 自带的 mysqlcheck 命令来快速修复所有的数据库或者特定的数据库 ; 例如

检查优化并修复所有的数据库用 :

# mysqlcheck -A -o -r -p

Enter password:

guestbook.simpgb_avatars OK

guestbook.simpgb_bad_words OK

guestbook.simpgb_banlist OK

guestbook.simpgb_data OK

......

......

......

修复指定的数据库用

# mysqlcheck -A -o -r Database_NAME -p (-A, 检查整个数据库 )

即可

 

---------------------------

 

 

8 Linux 常用命令

   /lib/modules/2.4.20-20.9 Linux 版本号

   #ifconfig eth0 A.B.C.D netmask E.F.G.H

   其实 , linux 系统中我们可以给一块网卡设置多个 ip 地址 , 例如下面的命令 :

  #ifconfig eth0:1 202.112.11.218 netmask 255.255.255.192

  然后 , 使用命令 #ifconfig -a 就可以看到所有的网络接口的界面 :

 

   ifconfig 命令可以在本次运行的时间内改变网卡的 ip 地址,但是如果系统重新启动, linux 仍然按照原来的默认的设置启动网络接口。

   这时候,可以使用 netconfig netconf 命令来重新设置默认网络参数。

 

   运行 setup 命令可以进入系统配置界面(网络、服务等)

   DNS 服务器 --- /etc/resolv.conf

   基本网络设置 --- /etc/sysconfig/network

 

   linux 系统中有一个超级守候进程 inetd,inetd 监听由文件 /etc/services 指定的服务的端口

 

   uname -r 查看版本

   du -s /usr/X11R6

 

   假如我们要把那个服务让它系统启动的时候自动启动,那么就配置好一个服务脚本,放到 /etc/rc.d/init.d 里面就 OK , 相应的 , 如果你要删除那个服务 , 把脚本移走就可以了 .

 

   /etc/rc.d/rc3.d 目录下都是各进程的脚本的名字,脚本名字中的数字是 init 进程启动这些进程的顺序,如果要在系统启动的时候不启动某个服务服务,

   只要把该服务的脚本名字中的大写字母 S 改成小写字母 s 就可以了,例如,如果用户不希望系统启动的时候自动运行 smb 服务,

   /etc/rc.d/rc3.d/S91smb 改名成 /etc/rc.d/rc3.d/s91smb 就能达到预期目的。脚本名字中以大写字母 K 开头的,是杀死进程用的。

 

   # ps -eaf|wc -l

  可以检查 Linux 系统有多少服务运行。当然是运行的服务越少,系统越安全。要查看哪些服务在运行,可以执行下面的命令,如图 5

   # netstat -na --ip

  配置完后,可以执行命令:

   #chkconfig -list

  来检查开放网络服务的配置情况,可以看到有数字 0 6 (类似 0:off 1:off 2:off 3:off 4:off 5:off 6:off )的标示,

这是说明这些服务在 Linux 的各个运行级别的状态,是启动还是关闭。

 

 

MySQL 常见问题解答及技巧

 

常见问题集锦

 

 

  首先你应该试着找出问题 mysqld 守护进程是否死掉或你的问题是否与你的客户有关。你可以用 mysqladmin version 检查你的 mysqld 服务器正常执行了多长时间,如果 mysqld 死了,你可以在文件“ mysql-data-directory/'hostname'.err ”中找到其原因。

 

 

  使用 MySQL 时的一些常见错误

 

   MySQL server has gone away

 

  常见的原因是服务器超时了并且关闭了连接。缺省地,如果没有事情发生,服务器在 8 个小时后关闭连接。你可在启动 mysqld 时通过设置 wait_timeout 变量改变时间限制。

 

  如果 mysqld 得到一个太大或不正常的包,它认为客户出错了并关闭连接。

 

 

   Can't connect to [local] MySQL server

 

  通常意味着没有一个 MySQL 服务器运行在系统上或当试图连接 mysqld 服务器时,你正在使用一个错误的套接字文件或 TCP/IP 端口。

 

  检查 ( 使用 ps) 服务器上是否有一个名为 mysqld 的进程启动

 

  如果一个 mysqld 进程正在运行,可以通过尝试这些不同的连接来检查服务器

 

shell> mysqladmin version

 

shell> mysqladmin variables

 

shell> mysqladmin -h `hostname` version variables

 

shell> mysqladmin -h `hostname` --port=3306 version

 

shell> mysqladmin -h 'ip for your host' version

 

shell> mysqladmin --socket=/tmp/mysql.sock version

 

  注意 hostname 命令使用反引号“ ` ”而非正引号“ ' ”;这些导致 hostname 输出(即,当前主机名)被代替进 mysqladmin 命令中。

 

   Host '...' is blocked 错误

 

Host 'hostname' is blocked because of many connection errors.

 

Unblock with 'mysqladmin flush-hosts'

 

  这意味着, mysqld 已经得到了大量 (max_connect_errors) 的主机 'hostname' 的在中途被中断了的连接请求。在 max_connect_errors 次失败请求后, mysqld 认定出错了 ( 象来字一个黑客的攻击 ) ,并且阻止该站点进一步的连接,直到某人执行命令 mysqladmin flush-hosts

 

缺省地, mysqld 10 个连接错误后阻塞一台主机。你可以通过象这样启动服务器很容易地调整它:

 

shell> safe_mysqld -O max_connect_errors=10000 &

 

   Too many connections 错误

 

意味着已经有 max_connections 个客户连接了 mysqld 服务器。

 

如果你需要比缺省 (100) 更多的连接,那么你应该重启 mysqld ,用更大的 max_connections 变量值。

 

   Out of memory 错误

 

mysql: Out of memory at line 42, 'malloc.c'

 

mysql: needed 8136 byte (8k), memory in use: 12481367 bytes (12189k)

 

ERROR 2008: MySQL client ran out of memory

 

  注意,错误指向了 MySQL 客户 mysql 。这个错误的原因很简单,客户没有足够的内存存储全部结果。

 

  首先检查你的查询是否正确

 

   Packet too large 错误

 

 

 

  一个 MySQL 客户或 mysqld 服务器得到一个比 max_allowed_packet 个字节长的包

 

  可以通过用 mysql --set-variable=max_allowed_packet=8M 指定一个更大的缓冲区来启动客户程序。

 

 

   The table is full 错误

 

  这个错误发生在内存临时表变得比 tmp_table_size 字节大时。

 

 

   Commands out of sync in client 错误

 

  正在以错误的次序调用客户函数!

 

 

   Ignoring user 错误

 

Found wrong password for user: 'some_user@some_host'; Ignoring user

 

  这意味着在 mysqld 启动时或在它再次装载权限表时,它在 user 表中找到了一个有一个无效口令的条目。结果,条目简单地被权限系统忽略。

 

   Table 'xxx' doesn't exist 错误

 

  数据库和表名件是区分大小写的!可以用 SHOW TABLES 检查你在当前数据库中有哪个表。

 

  从一个文本文件运行 SQL 命令

 

  可以把 SQL 命令放在一个文件中并且告诉 mysql 从该文件读取其输入:创造一个文本文件“ text_file ”,它包含要执行的命令。然后如下调用 mysql

 

shell> mysql database < text_file

 

  或

 

shell> mysql < text_file

 

  启动有 USE db_name 语句的文本文件。

 

  怎样重新设置一个忘记的口令

 

  如果忘记了 MySQL root 用户的口令,可以使用如下方法恢复:

 

  通过发送一个 kill (不是 kill -9) mysqld 服务器来关闭 mysqld 服务器。 pid 被保存在一个 .pid 文件中,通常在 MySQL 数据库目录中:

 

   kill `cat /mysql-data-directory/hostname.pid`

 

  你必须是一个 UNIX root 用户或运行服务器的相同用户做这个。

 

  使用 --skip-grant-tables 选项重启 mysqld

 

  用 mysql -h hostname mysql 连接 mysqld 服务器并且用一条 GRANT 命令改变口令。见 7.26 GRANT REVOKE 句法。也可以用 mysqladmin -h hostname -u user password 'new password' 进行。

 

  用 mysqladmin -h hostname flush-privileges 或用 SQL 命令 FLUSH PRIVILEGES 来装载权限表。

 

  使用 DATE 列的问题

 

   DATE 值的格式是 'YYYY-MM-DD'

 

  改变一张表中列的顺序

 

  在一个应用程序中,应该决不基于他们的位置使用 SELECT * 检索列,因为被返回的列的顺序永远不能保证;对数据库的一个简单改变可能导致应用程序相当有戏剧性地失败。

 

  可以使用如下方法改变:

 

  以正确的列顺序创建一张新表。

 

  执行 INSERT INTO new_table SELECT fields-in-new_table-order FROM old_table.

 

  删除或改名 old_table

 

   ALTER TABLE new_table RENAME old_table

 

  数据库复制

 

   MySQL( 至今 ) 没有数据库复制,但是有一些如何实现的信息。

 

  复制一个数据库最一般的方法是使用更新日志。

 

 

  数据库备份

 

  为了得到一个一致的备份,在相关的表上做一个 LOCK TABLES 。你只需一个读锁定;当你在数据库目录中做文件的一个拷贝时,这允许其他线程继续查询该表。如果你想要做一个 SQL 级的备份,你可以 SELECT INTO OUTFILE

 

  备份一个数据库的另一个方法是使用 mysqldump 程序:

 

  为你的数据库做一个完整的备份:

 

shell> mysqldump --tab=/path/to/some/dir --opt --full

 

 

  你也可以简单地拷贝所有的表文件 ( *.frm ”、“ *.MYD ”和“ *.MYI ”文件 ) ,只要服务器不在更新任何东西。

 

 

  停止 mysqld 如果它正在运行,然后以 --log-update 选项启动它。你将得到一个名为“ hostname.n ”形式的日志文件, 这里 n 是随着你每次执行 mysqladmin refresh mysqladmin flush-logs FLUSH LOGS 语句、或重启服务器而递增的一个数字。这些日志文件向你提供了在你执行 mysqldump 处后面进行的复制数据库改变的所需信息。

 

  如果你必须恢复一些东西,尝试首先用 myisamchk -r 恢复你的表。这应该处理所有情况的 99.9% 。如果 myisamchk 失败,尝试下列过程:

 

  恢复原来的 mysqldump 备份。

 

  执行下列命令以再次运行更新日志中的更改:

 

shell> ls -1 -t -r hostname.[0-9]* | xargs cat | mysql

 

 

   ls 被用来以正确的顺序得到所有的日志文件。

 

 

  你也可以与 SELECT * INTO OUTFILE 'file_name' FROM tbl_name 做有选择的备份并且用 LOAD DATA INFILE 'file_name' REPLACE ... 恢复。为了避免重复记录,在表中你需要一个 PRIMARY KEY UNIQUE 键。当在唯一键值上一个新记录与一个老记录重复时, REPLACE 关键词使得老记录用一个新记录替代。

 

 

 

MySQL 常用命令

----- 修复命令:

   修复指定的数据库用

   # mysqlcheck -A -o -r Database_NAME -p   

   show table status from netbar like 'Consume';

   alter table auditinfo rename to auditinfo222;

   mysqldump -h192.168.1.16 -uroot -p netbar>c:\netbar.txt( 备份到操作机器的 C 盘根目录 )

   mysqldump center ActionLog050727>ActionLog050727.txt &

   c:\mysqlcheck -r -u 用户名 -p 数据库密码 -h 服务器地址 数据库名

  

   恢复整个数据库

   Mysql 参数如下:

   #mysql -u 用户名 -p' 密码 ' 数据库名 < 操作系统下文件名

  

   select * from SM_TermInfo into outfile 'c:/cSM_TermInfo.txt';

   load data infile 'yCredited222.out' into table Credited;

  

   mysqldump -h192.168.16.31 -uviewer -p123 -t netbar CommodityGroup >CommodityGroup.txt

 

   LOAD DATA INFILE "/home/mark/data.sql" INTO TABLE Orders;

    LOAD DATA LOCAL INFILE "C:\MyDocs\SQL.txt" INTO TABLE Orders;

   load data infile "/home/temp/CommodityGroup.txt" into table CommodityGroup;

   LOAD DATA INFILE "/mysql/temp/dg/*.txt" INTO TABLE coldata FIELDS TERMINATED BY '|';

  

   /usr/bin/mysqldump -h192.168.10.207 -uroot -p123456 -t netbar sm_terminfo >y2.txt(-t, 不带 create table ,只是数据 )

  

   show create table tablename;  // 查看建表语句

   show index from 表名 ;  // 查看表索引情况

   alter table 表名 drop index 索引名 ;  // 删除索引

   alter table 表名 add index 索引名 ( 字段名 1[ ,字段名 2 ]);

   alter table employee change depno depno int(5) not null;

  

  

   alter table MemberFavorite add classId int;

  

   二、修改密码。

   格式: mysqladmin -u 用户名 -p 旧密码 password 新密码

   1 、例 1 :给 root 加个密码 ab12 。首先在 DOS 下进入目录 mysqlbin ,然后键入以下命令

   mysqladmin -uroot -password ab12

   注:因为开始时 root 没有密码,所以 -p 旧密码一项就可以省略了。

   :SET PASSWORD FOR root@"%"=PASSWORD('123');  

   set PASSWORD FOR root@"192.168.16.31"=password('starnet');  

  

   grant all on *.* to root@"%" Identified by "gtigstarcenter7";

   grant all on *.* to root@"%" Identified by "123";

   grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

  

  

   UNIX/LINUX 中,普通进程用 & 符号放到后台运行,如果启动该程序的控制台 logout ,则该进程随即终止。

   要实现守护进程,一种方法是按守护进程的规则去编程(本站有文章介绍过),比较麻烦;另一种方法是仍然用普通方法编程,然后用 nohup 命令启动程序:

   nohup < 程序名 > &

  

   但就用 & ,logout , 好象进程也没终止 , 在继续执行 . 只是 jobs -l 看不到 ,ps -ef|grep mysql 就还在

 

   nohup mysql -h192.168.16.61 -uroot -pstarnet center < backup20051115.sql &

 

   恢复数据是密码不能为空,需要设置密码 .

   use mysql;

   set PASSWORD FOR root@"192.168.16.31"=password('starnet');  

 

 

 

如何配置 Linux 下的 Apache+Tomcat4.01

 

 

1. 所需的软件包 :

jdk1.3.1_01

Apache1.3.22

Jakarta-Tomcat4.01

Webapp-modul1.0

2. 软件包下载地址 :

(1) Java 2 SDK, Standard Edition Version 1.3.1_01 for Linux (Intel x86)

URL:http://java.sun.com/j2se/1.3/download-linux.html

(2) Apache_1.3.22

URL:http://httpd.apache.org/dist/httpd/apache_1.3.22.tar.gz

(3) Jakarta-Tomcat4.01

URL:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.1/bin/jakarta-tomcat-4.0.1.tar.gz

(4) Webapp-modul1.0

URL:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.0.1/bin/linux/i386/webapp-module-1.0-tc40-linux-glibc2.2.tar.gz

3. 软件安装 :

(1) 解开压缩包

   使用 tar rpm 解开下载的软件包,按照默认方式安装既可

(2) 目录的处理

JDK 安装目录 : /usr/java/jdk1.3.1_01

Apache 安装目录 : /etc/httpd

/usr/lib/apache

/var/www

Jakarta-Tomcat 安装目录 : /usr/local/jakarta-tomcat-4.0.1

Webapp-modul 安装目录 :/usr/local/webapp-module-1.0-tc40

4. 环境变量设置 :

PATH=/usr/java/jdk1.3.1_01/bin:/usr/java/jdk1.3.1_01/jre/bin:/usr/local/sbin:/usr/sbin:/sbin:$PATH:$HOME/bin

JAVA_HOME=/usr/java/jdk1.3.1_01

CLASSPATH=/usr/java/jdk1.3.1_01/lib:/usr/java/jdk1.3.1_01/jre/lib

CATALINA_BASE=/usr/local/jakarta-tomcat-4.0.1

CATALINA_HOME=/usr/local/jakarta-tomcat-4.0.1

5. 特殊安装 :

/usr/local/webapp-module-1.0-tc40 目录下的 mod_webapp.so 文件复制到 /usr/lib/apache

并执行如下命令来改变其属性

cd /usr/lib/apache

chmod +x mod_webapp.so

6. 独立环境的测试

(1) 测试 Java 的运行状况 , 如下命令 :

cd

java -version

javac -version

看到版本号则表示 JDK 安装成功

(2) 测试 Apache 的运行状况 , 如下命令 :

/etc/init.d/httpd restart ## 重新启动 Apache Server

使用任意一浏览器 , 输入服务器地址后回车 , 应该可以看到 Apache 的默认主页

(3) 测试 Jakarta-Tomcat 的运行状况 , 如下命令 :

cd /usr/local/jakarta-tomcat-4.0.1

cd bin

./startup.sh ## 启动 jakarta-tomcat-4.0.1 服务

使用任意一浏览器 , 输入服务器地址和端口号 8080 后回车 , 应该可以看到 jakarta-tomcat-4.0.1 的默认主页

例如 : http://192.192.192.1:8080

./shutdown.sh ## 关闭 jakarta-tomcat-4.0.1 服务

7. 整合安装设置

(1) 修改 /etc/httpd/conf/httpd.conf 文件

# Dynamic Shared Object (DSO) Support 之后 , 添加如下内容

LoadModule webapp_module modules/mod_webapp.so

(2) 修改 /etc/httpd/conf/httpd.conf 文件

ClearModuleList , 添加如下内容

AddModule mod_webapp.c

(3) 修改 /etc/httpd/conf/httpd.conf 文件

在文件尾部添加如下内容

WebAppConnection warpConnection warp localhost:8008

WebAppDeploy examples warpConnection /examples/

8. 整合测试

重新启动所有服务

/usr/local/jakarta-tomcat-4.0.1/bin/shutdown.sh

/usr/local/jakarta-tomcat-4.0.1/bin/startup.sh

/etc/init.d/httpd restart

在浏览器中输入如下地址

http:// 服务器 IP/examples/jsp/index.html, 如果能够显示正常的网页 , 则安装成功

在浏览器中输入如下地址

http:// 服务器 IP/examples/jsp/jsptoserv/jsptoservlet.jsp, 如果能够显示正常的网页和时间 , jsp Servlet 安装成功

9. 注意 ,

如在第 8 步中 , 重启 Apache 服务的时候报如下错误

Syntax error on line 1219 of /etc/httpd/conf/httpd.conf:

Invalid virtual host name

则证明在 /etc/httpd/conf/httpd.conf , 未设定 ServerName

打开 /etc/httpd/conf/httpd.conf 文件 , 找到 ServerName 一项 , 设定为你指定的名字 , 或简单的去掉 #ServerName 前的“ # ”号 , 再执行 /etc/init.d/httpd restart 就可以了 !

posted on 2006-12-16 19:32 szdlinxie 阅读(650) 评论(3)  编辑 收藏 引用 所属分类: Linux基础杂志

评论

# re: Linux常用基本操作 2008-10-11 17:40 帘人

重新恢复QQ帐号  回复  更多评论   

# re: Linux常用基本操作 2008-10-11 17:41 帘人

恢复帐号  回复  更多评论   

# re: Linux常用基本操作 2009-07-02 12:49 oil painting wholesale

收藏了  回复  更多评论   

只有注册用户登录后才能发表评论。
点击这里给我发消息