Linux的iptables脚本详细的解释

8:08:00 PM 0 Comments

#开启DHCP上网

#dhcpd eth0

#加载相关的内核模块

/sbin/modprobe ip_tables

/sbin/modprobe ip_nat_ftp

/sbin/modprobe ip_conntrack_ftp

# 清除预设表 filter 中,所有规则链中的规则

/sbin/iptables -F

# 清除nat表中,所有规则链中的规则   

/sbin/iptables -F -t nat

# 清除预设表 filter 中,使用者自订链中的规则

/sbin/iptables -X

#将封包计数器归零。封包计数器是用来计算同一封包出现次数,是过滤阻断式攻击不可或缺的工具

/sbin/iptables -Z

# 清除mangle表中,所有规则链中的规则

#iptables -F -t mangle

# 清除mangle表中,使用者自订链中的规则

#iptables -t mangle -X

# 清除nat表中,使用者自订链中的规则

#iptables -t nat -X

#定义链的规则(设定预设规则)

/sbin/iptables -P INPUT ACCEPT

/sbin/iptables -P FORWARD DROP

/sbin/iptables -P OUTPUT ACCEPT

# 打开 forward 功能 (或在/etc/sysconfig/network 中添加 FORWARD_IPV4=yes 打开转发功能,实现各网段互访)

echo "1"> /proc/sys/net/ipv4/ip_forward

# IP转发

#echo "1">/proc/sys/net/ipv4/ip_forward

#echo "1">/proc/sys/net/ipv4/icmp_echo_ignore_all

#echo "8184000">/proc/sys/net/ipv4/ip_conntrack_max

#echo "1024">/proc/sys/net/ipv4/neigh/default/gc_thresh1

#echo "2048">/proc/sys/net/ipv4/neigh/default/gc_thresh2

#echo "4096">/proc/sys/net/ipv4/neigh/default/gc_thresh3

#将返回给CERNET DNS客户数据包的源端口(53端口)伪装成53端口,只要正确的改这里,下面的机器可以改成任意的dns。

iptables -t nat -A PREROUTING -p udp -d 0.0.0.0/0 --dport 53 -j DNAT --to 218.30.19.40:53

#iptables -t nat -A PREROUTING -p udp -d 192.168.1.1 --dport 53 -j DNAT --to 61.134.1.9:53

#IP 伪装(SNAT应用)

#使内网的封包经过伪装之后,使用对外的 eth0 网卡当作代理号,对外连线,进行IP地址伪装,使得内部的主机的数据包能通过服务器与外界联系!

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

/sbin/iptables -A FORWARD -s 0/0 -d 0/0 -j ACCEPT

#禁止ping

#ping

#iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -j DROP

#iptables -A INPUT -p icmp --icmp-type 0 -s 0/0 -j ACCEPT

# 设置icmp阔值 ,并对攻击者记录在案,小型的防火墙!

iptables -A INPUT -p icmp -m limit --limit 3/s -j LOG --log-level INFO --log-prefix "ICMP packet IN: "

iptables -A INPUT -p icmp -m limit --limit 6/m -j ACCEPT

iptables -A INPUT -p icmp -j DROP

# 打开 syncookie (轻量级预防 DOS 攻击)

sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null

# 设置默认 TCP 连接痴呆时长为 3800 秒(此选项可以大大降低连接数)

sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null

# 设置支持最大连接树为 30W(这个根据内存和 iptables 版本来,每个 connection 需要 300 多个字节)

#sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/null

# 允许要转向的包

iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

iptables -A FORWARD -i eth0 -j ACCEPT

iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

# 防止SYN攻击 轻量

iptables -N syn-flood

iptables -A INPUT -p tcp --syn -j syn-flood

iptables -A syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN

iptables -A syn-flood -j REJECT

# 对于不管来自哪里的ip碎片都进行控制,允许每秒通过100个碎片

iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT

# icmp包通过的控制,防止icmp黑客攻击

iptables -A FORWARD -p icmp -m limit --limit 1/s --limit-burst 10 -j ACCEPT

# 丢弃坏的TCP包

iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j LOG --log-prefix "New not syn:"

iptables -A FORWARD -p TCP ! --syn -m state --state NEW -j DROP

#drop pp poco(禁止PP POCO)

iptables -I FORWARD -p tcp -s 0/0 --dport 2881 -j DROP

iptables -I FORWARD -p tcp -s 0/0 --dport 5354 -j DROP

iptables -I FORWARD -p tcp -s 0/0 --dport 9099 -j DROP

iptables -I FORWARD -p udp -s 0/0 --dport 8094 -j DROP

iptables -I OUTPUT -d 61.145.118.224 -j REJECT

iptables -I OUTPUT -d 210.192.122.147 -j REJECT

iptables -I OUTPUT -d 207.46.196.108 -j REJECT

#drop QQLive(禁止QQLive)

iptables -I FORWARD -p udp --dport 13000:14000 -j DROP

#drop www(禁止网页)

#iptables -I FORWARD -dwww.baidu.com-j DROP

# dorp mac(通过禁止mac禁止上网)

#iptables -t nat -I PREROUTING -m mac --mac-source 00:14:78:30:3E:DE -j DROP

#drop ip(通过禁止ip禁止上网)

#iptables -I FORWARD -s 192.168.1.35 -j DROP

#accept all(允许某个ip上网)

#iptables -I INPUT -s 192.168.1.6 -j ACCEPT

#iptables -I FORWARD -s 192.168.1.6 -j ACCEPT

#端口映射

#movie

iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 25001 -j DNAT --to-destination 192.168.100.3:3389

iptables -t nat -A POSTROUTING -d 192.168.100.3 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.100.1

#game

iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 25002 -j DNAT --to-destination 192.168.100.252:3389

iptables -t nat -A POSTROUTING -d 192.168.100.252 -p tcp -m tcp --dport 3389 -j SNAT --to-source 192.168.100.1

#ftp

iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 1021 -j DNAT --to-destination 192.168.100.3:21

iptables -t nat -A POSTROUTING -d 192.168.100.3 -p tcp -m tcp --dport 21 -j SNAT --to-source 192.168.100.1

iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 1022 -j DNAT --to-destination 192.168.100.252:21

iptables -t nat -A POSTROUTING -d 192.168.100.252 -p tcp -m tcp --dport 21 -j SNAT --to-source 192.168.100.1

#flim

#iptables -t nat -A PREROUTING -d 124.114.130.178 -p tcp -m tcp --dport 8088 -j DNAT --to-destination 192.168.1.251:80

#iptables -t nat -A POSTROUTING -d 192.168.1.251 -p tcp -m tcp --dport 80 -j SNAT --to-source 192.168.100.1

不必担心 恢复误删除Linux文件全攻略

11:16:00 AM 0 Comments

不必担心 恢复误删除Linux文件全攻略

作为一个多用户、多任务的操作系统,Linux下的文件一旦被删除,是难以恢复的。尽管删除命令只是在文件节点中作删除标记,并不真正清除文件内容,但是其他用户和一些有写盘  
动作的进程会很快覆盖这些数据。不过,对于家庭单机使用的Linux,或者误删文件后及时补救,还是可以恢复的。

1、Ext2文件系统结构的简单介绍

在 Linux所用的Ext2文件系统中,文件是以块为单位存储的,默认情况下每个块的大小是1K,不同的块以块号区分。每个文件还有一个节点,节点中包含有 文件所有者,读写权限,文件类型等信息。对于一个小于12个块的文件,在节点中直接存储文件数据块的块号。如果文件大于12个块,那么节点在12个块号之 后存储一个间接块的块号,在这个间接块号所对应的块中,存储有256个文件数据块的块号(Ext2fs中每个块号占用4字节,这样一个块中所能存储的块号 就是1024/4=256)。如果有更大的文件,那么还会在节点中出现二级间接块和三级间接块。

2、恢复被误删文件的方法

大多数Linux发行版都提供一个debugfs工具,可以用来对Ext2文件系统进行编辑操作。不过在使用这个工具之前,还有一些工作要做。

首先以只读方式重新挂载被误删的文件所在分区。使用如下命令:(假设文件在/usr分区)

   mount –r –n –o remount /usr -r表示只读方式挂载;-n表示不写入/etc/mtab,如果是恢复/etc上的文件,就加上这个参数。如果系统说xxx partion busy,可以用fuser命令查看一下是哪些进程使用这个分区上的文件:

  fuser –v –m /usr

如果没有什么重要的进程,用以下命令停掉它们:

  fuser -k –v –m /usr

然后就可以重新挂载这些文件系统了。

如 果是把所有的文件统一安装在一个大的/分区当中,可以在boot提示符下用linux single进入单用户模式,尽量减少系统进程向硬盘写入数据的机会,要不干脆把硬盘挂在别的机器上。另外,恢复出来的数据不要写到/上面,避免破坏那些 有用的数据。如果机器上有dos/windows,可以写到这些分区上面:

    mount –r –n /dev/hda1 /mnt/had

    然后就可以执行debugfs:(假设Linux在 /dev/hda5)

    #debugfs /dev/hda5

    就会出现debugfs提示符debugfs:

    使用lsdel命令可以列出很多被删除的文件的信息:

    debugfs:lsdel

    debugfs: 2692 deleted inodes found.

    Inode Owner Mode Size Blocks Time deleted

    164821 0 100600 8192 1/ 1 Sun May 13 19:22:46 2001

    …………………………………………………………

    36137 0 100644 4 1/ 1 Tue Apr 24 10:11:15 2001

    196829 0 100644 149500 38/ 38 Mon May 27 13:52:04 2001

    debugfs:





列出的文件有很多(这里找到2692个),第一字段是文件节点号,第二字段是文件所有者,第三字段是读写权限,接下来是文件大小,占用块数,删除时间。


然后就可以根据文件大小和删除日期  
判断那些是我们需要的。比如我们要恢复节点是196829的文件:

可以先看看文件数据状态:

    debugfs:stat <196829>

    Inode: 196829 Type: regular Mode: 0644 Flags: 0x0 Version: 1

    User: 0 Group: 0 Size: 149500

    File ACL: 0 Directory ACL: 0

    Links: 0 Blockcount: 38

    Fragment: Address: 0 Number: 0 Size: 0

    ctime: 0x31a9a574 -- Mon May 27 13:52:04 2001

    atime: 0x31a21dd1 -- Tue May 21 20:47:29 2001

    mtime: 0x313bf4d7 -- Tue Mar 5 08:01:27 2001

    dtime: 0x31a9a574 -- Mon May 27 13:52:04 2001

    BLOCKS:

    594810 594811 594814 594815 594816 594817 ………………………………….

    TOTAL: 38

    然后就可以用dump指令恢复文件:

    debugfs:dump <196829> /mnt/hda/01.sav

    这样就把文件恢复出来了。退出debugfs:

    debugfs:quit

    另一种方法是手工编辑inode:

    debugfs:mi <196829>

    Mode [0100644]

    User ID [0]

    Group ID [0]

    Size [149500]

    Creation time [0x31a9a574]

    Modification time [0x31a9a574]

    Access time [0x31a21dd1]

    Deletion time [0x31a9a574] 0

    Link count [0] 1

    Block count [38]

    File flags [0x0]

    Reserved1 [0]

    File acl [0]

    Directory acl [0]

    Fragment address [0]

    Fragment number [0]

    Fragment size [0]

    Direct Block #0 [594810]

    …………………………….

    Triple Indirect Block [0]

使用mi指令后每次显示一行信息以供编辑,其它行可以直接按回车表示确认,把deletion time改成0(未删除),Link count改成1。改好后退出debugfs:

debugfs:quit

然后用fsck检查/dev/hda5

fsck /dev/hda5

程序会说找到丢失的数据块,放在lost+found里面。这个目录里的文件就是我们要的东东。

SVN入门及配置使用

6:25:00 PM 0 Comments

SVN,即Subversion,是一个自由开源的版本控制系统,可以将数据恢复到早期版本,或者检查数据修改的历史,这些数据可以是源代码,也可以是其他类型的文件。
  在SVN出现之前,CVS是开源世界版本控制工具的事实标准,然而CVS存在一些固有的缺陷,并且修复这些缺陷需要耗费很大的精力,因此,SVN的发 起者Brian Behlendorf和CollabNet决定重新编写一个版本控制系统,保留CVS的基本思想,但要修正其中错误和不合理的特性。于是,SVN作为 CVS的继任者出现了。SVN的设计者们力图通过两方面的努力赢得CVS用户的青睐:保持开源系统的设计以及界面风格与CVS尽可能类似,同时尽力弥补 CVS许多显著的缺陷。这些努力的结果使得从CVS迁移到SVN不需要作出重大的变革,因此越来越多的人选择了SVN。

http://svnbook.red-bean.com
http://www.subversion.org.cn

=====
目录
=====================================================
一、客户端的使用
 1.1 Linux系统下一般使用(Ubuntu)
 1.2 Windows系统下一般使用
 1.3 Linux下使用SVN+ssh认证(未找到相关资料@_@)
 1.4 Windows下使用SVN+ssh认证
二、服务器端的配置
 2.1 Linux下的svnserve配置
 2.2 Windows下的svnserve配置
 2.3 Linux下的svnserve+ssh配置
 2.4 Windows下的svnserve+ssh配置(需使用Cygwin,略)
 2.5 Linux下基于APache的SVN服务器配置
 2.6 Windows下基于APache的SVN服务器配置
三、建立版本库
 3.1 Linux下创建版本库
 3.2 Windows下创建版本库
=====================================================


===========================================================
  大多数人都是从客户端开始使用SVN,以下先介绍客户端的使用。假设已经假设好了SVN服务器,其文件夹地址为http://domain/svn/trunk/myproject,用户名为test,密码为test。(如果服务器端配置的是SVN,则使用svn://开头的URL访问;如果服务器端配置的是SVN+SSH,则使用svn+ssh开头的URL访问)

一、客户端的使用

1.1 Linux(Ubuntu)系统下一般使用
 1)首先需要安装svn客户端,ubuntu下使用$sudo apt-get install subversion(其他请baigoogledu,余同)
 2)checkeout命令:第一次使用时使用checkout命令,把服务器的目录拷贝到本地的当前目录下,同时会建立一个隐藏文件夹记录版本信息:
  [工作目录]$svn checkout "http://domain/svn/trunk/myproject" --username test
然后输入密码
 3)svn update命令:获取服务器上的最新版本
  [工作目录]$svn update(除了第一次要加url和用户名和密码,之后系统会记住)
 4)svn add命令:要把非版本控制的本地文件添加到版本控制:
  [工作目录]$svn add hello.c
 5)svn commit命令:把本地文件上传到服务器
[  工作目录]$svn commit(如果有新的文件,要首先svn add)
------------------------------------------------------------
1.2 Windows系统下一般使用
 1)安装客户端:http://tortoisesvn.net/downloads
 2)新建一个文件夹(工作目录),右击选择checkout,填写URL和用户名密码
 3)工作目录右键update
 4)工作目录右键add
 5)工作目录右键commit
------------------------------------------------------------
1.3 Linux下使用SVN+ssh认证(未找到相关资料@_@)
------------------------------------------------------------
1.4 Windows下使用SVN+ssh认证
(参考ubuntu下架设svn服务器及在windows建立svn+ssh客户
1.4.0 安装TortoiseSVN、Puttygen、Pageant
  http://sourceforge.net/projects/tortoisesvn
  http://www.chiark.greenend.org.uk/~sgtatham/putty/
1.4.1 转换私钥格式
 1)将Linux下的文件<username>key拷贝到windows下,运行Puttygen;
    2)选择菜单conversions->Import Key;选择文件<username>key,提示"Enter passphrase for key",输入创建公私钥对示使用的passphrase关键字;
    3)选择Parameters为"SSH-2 DSA"或"SSH-2 RSA"->Save private key->保存文件名为username>key.ppk。
1.4.2 建立TortoiseSVN与Pageant的关联,并将私钥加入Pageant:
    1)鼠标右键选择TortoiseSVN->Settings->Network->SSH client,输入:
     C:\Program Files\TortoiseSVN\bin\TortoisePlink.exe
2)鼠标右键选择TortoiseSVN->RepoBrowser 输入URL:
  svn+ssh://<username>@<SvnServiceIP>/usr/local/svn/trunk
    3)运行Pageant,右键点击屏幕右下角的图标-〉Add Key,将私钥文件<username>key.ppk加入。
——如果不想缓存ssh密码,则第8、9步不需要,只保留第二步,但每次check out、check in中每进入一个文件夹都要输入两次密码,烦死你:)

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

二、服务器端的配置

Web服务器部署可以有三种选择,配置由简单到复杂排列为
·svnserve
·svnserve over SSH
·Apache+mod_dav_svn模块
下面从最简单的入手,介绍svnserve。
[更新]Windows下服务器端的配置可以使用VisualSVN Server进行傻瓜化安装。
官方网站:http://www.visualsvn.com/
参考链接:VisualSVN系列介绍(有详细的安装过程介绍,这里就不转述了)
----------------------
2.1&2.2 配置svnserve
----------------------
svnserve是一个轻型的服务器,可以同客户端通过在TCP/IP基础上的自定义有状态协议通讯,客户端通过使用开头为svn://或者svn+ssh://svnserve的URL来访问一个svnserve服务器。
------------------------------------------------------------
2.1 Linux下的svnserve配置
2.1.0 同样地,使用命令$sudo apt-get install subversion
2.1.1 svnserve作为独立守护进程,监听请求
  $svnserve -d
  $ #svnserve is now running, listening on port 3690
  ——可以使用--listen-port=[端口号]来指定端口,或者--listen-host=[主机名]来指定主机名
  假定已经建立一个版本库位于/usr/local/repositories/project路径(版本库的建立稍后提及), 此时客户端可以使用svn://[主机]/usr/local/repositories/project来进行访问
  ——可以使用-r选项来限制只输出指定路径下的版本库,从而使客户端访问更为简洁:
  $svnserve -d -r /usr/local/repositories
  则客户端只要使用svn://[主机]/project就可以访问
2.1.2 通过inetd使用svnserve
  $svnserve -i
  ——此时svnserve会尝试使用自定义协议通过stdin和stdout来与subversion客户端通话,默认端口为3690。可以在/etc/services添加如下几行:
  svn 3690/tcp #subversion
  svn 3690/udp #subversion
  ——如果是使用经典的类Unix的inetd守护进程,可以在/etc/inetd.conf添加如下行,则如果有客户连接来到端口3690,inetd会产生一个svnserve进程来做服务
  svn stream tcp nowait svnowner /usr/bin/svnserve svnserve -i
2.1.3 设置svnserve的内置认证
编辑版本库目录的conf/svnserve.conf文件:
 1)设置匿名访问
  [general]
  anon-access = none #无权限
  anon-access = read #只读
  anon-access = write #打开匿名的写访问,但这样很危险,不能控制谁来修改版本库
 2)使用用户和密码
 2.1)定义保存用户名和密码的文件和一个认证域
  [general]
  password-db = <userfile> #指出保存用户和密码列表的文件,可以是绝对或相对路径
  realm = example realm #定义认证域
  anon-access = read
  auth-access = write
 2.2)然后在userfile文件中指明用户名和密码:(格式为"用户名=密码")
  [users]
  harry = foopassword
  sall = barpassword
------------------------------------------------------------
2.2 Windows下的svnserve配置
2.2.0 安装svnserve
 1)从http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91得到最新版本的Subversion
(如果之前已经安装了subversion,svnserve已经在服务器上运行,需要先停止服务)
 2)安装subversion,然后进入subversion的安装目录,找到bin目录下的文件 svnserve.exe,int13_svn.dll,libapr.dll,libapriconv.dll,libapriutil.dll,libdb*.dll,libeay32.dll 和ssleay32.dll,将它们复制到服务器目录下(如C:\svnserve)。
2.2.1 以守护方式运行svnserve
在命令行窗口输入svnserve.exe --daemon,则svnserve将会在端口3690等待请求,--daemon选项告诉svnserve以守护进程方式运行,这样在手动终止之前不会退出。这种方式的不便之处是需要保持命令行窗口不关闭。
2.2.2 svnserve作为windows服务
svnserve作为windows服务时,在后台运行,可以在启动时自动执行,并且可以使用同其他windows服务一致的管理界面启动和停止服务。
需要使用命令行工具sc.exe定义新的服务(create svnserve),在windows启动时指明svnserve的调用:
  C:\>sc create svnserve
   binpath= "\"c:\svnserve\svnserve.exe\" --service --root c:\repos"
   displayname= "Subversion"
   depend= tcpip
   start= auto
  ——注意为了回避目录名中的空格等字符,将整个binpath值放在双引号中;另外,sc 的命令行很特殊。在 key= value 对中,key 与 = 之间不能有空格,但是在 value 之前,必须有空格。
定义了服务之后,就可以使用GUI工具(如服务管理面板)进行停止、启动和查询,也可以通过命令行的方式进行:
  C:\>net stop svn
  C:\>net start svn
  C:\>sc delete svn(需要确定先停止了服务)
2.2.3 设置svnserve的内置认证
  同上Linux配置文件即可。
------------------------------------------------------------
------------------------
2.3&2.4 配置svnserve+ssh
------------------------
2.3 Linux下的svnserve+ssh配置
2.3.0 介绍与安装ssh
  通过此方法,svnserve不会作为守护进程启动,而是SSH来启动svnserve,以SSH授权用户进行。
  $sudo apt-get install ssh
2.3.1 创建帐户
  $sudo adduser <username> #为参与项目开发的成员建立用户帐户
  $sudo addgroup <groupname> #建立用户组
  $sudo addgroup <username> <groupname> #将用户帐户添加进用户组
2.3.2 为成员生成密钥对
  首先必须切换为<username>的用户登陆Linux:
  $sudo <username>
  $(提示输入密码)
  $cd ~/
  $whoami
  <username>$ssh-kegen -b 1024 -t dsa -N <passphrase> -f <filename> #使用DSA加密,也可以改为RSA加密
  ——这时产生两个文件:私钥<username>key和公钥<username>key.pub
  然后创建目录/home/<username>/.ssh,把公钥拷贝到该目录下:
  $cp <username>key.pub /home/<username>/.ssh/authrized_keys #文件名必须为authorized_keys
------------------------------------------------------------
2.4 Windows下的svnserve+ssh配置
需要使用Cygwin来配置ssh,此处略,详情可参考http://tortoisesvn.net/node/156
------------------------------------------------------------
----------------------------
2.5&2.6 基于Apache服务器的SVN配置
----------------------------
概述
  Apache的http服务器是一个subversion可以利用的"重型"网络服务器,通过一个自定义模块,httpd可以让SVN版本库通过WebDAV/DeltaV协议在客户端前可见。可以将浏览器指向版本库的URL,无需安装SVN客户端就可以浏览内容。
  基于Apache的SVN需要两个包的四个部分:Apache httpd2.0及其中包含的mod_dav DAV模块,Subversion及与之一起发布的mod_dav_svn模块。有了上述组件之后,配置步骤一般如下
 1)配置好http2.0,并且使用mod_dav启动
 2)为mod_dav安装mod_dav_svn插件
 3)配置httpd.conf来发布版本库
------------------------------------------------------------------
2.5 Linux下基于APache的SVN服务器配置
(参考http://www.123shang.cn/blog/?p=53
(参考"ubuntu下svn+apache版本管理服务器配置")
2.5.1 安装aphache
  $sudo apt-get install apache2 #安装apache
  $sudo apt-get install libapache2-svn #安装相关组件
  $sudo apt-get install subversion #安装svn
  安装完毕后启动apache
  $/usr/local/apache/bin/apachectl –k start
  ——用浏览器查看http://localhost/,得到it works,说明apache已经配置成功了。
2.5.2 创建版本库(见第三节)
2.5.3 添加用户并设置密码文件
  版本库的密码文件,一般命名为PasswdFile,由用户通过命令创建,里面保存授权用户的用户名和MD5加密后的密码。创建密码文件,密码文件保存在版本库文件目录下,在终端通过下面的命令创建密码文件:
  $htpasswd -c /etc/svn/passwordfile username
   passwordfile 密码文件名称,可以由用户自行命名
   username 你希望添加的用户名,比如zhangsan,lisi,wangwu
   -c 用来创建密码文件
  按提示输入密码,添加成功后会提示add user username,然后可以再继续添加第二个用户。
  $htpasswd /etc/svn/passwordfile seconduser
2.5.4 httpd.conf文件修改
  conf文件正常安装的话在etc/apache2/ 目录下,双击打开进行编辑,添加以下内容:
  LoadModule dav_svn_module modules/mod_dav_svn.so 加载mod_dav_svn模块
  LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so 加载 mod_anthz.svn模块
  <Location /vcard>
   DAV svn
   SVNPath /home/bb/svn/vcard/ 指明版本库的路径
   AuthType Basic 认证类型为基本认证
   AuthName "SVN repos" 认证名称,将在IE界面弹出一个对话框,其标题就是SVN repos
   AuthUserFile /home/bb/svn/vcard/VcardPasswdFile 加载密码文件,访问版本库用户的文件,用apache 的htpasswd命令生成
   # AuthzSVNAcessFile //home/bb/svn//vcard/accesspolicy 访问版本库权限的文件
   # satisfy Any
   Require valid-user 要求验证用户,即不能匿名访问;如果没有这个语句,则只能第一个用户可以访问新建库
  </Location>
  保存文件退出,重新启动apache
  # /usr/local/apache/bin/apachectl –k restart
  测试:
  $svn checkout http://localhost/svn
------------------------------------------------------------
2.6 Windows下基于APache的SVN服务器配置
2.6.1 下载安装Apache
  APache:http://httpd.apache.org/download.cgi
  ——如果你将Apache安装成一个服务,它将以本地system帐户来运行。为Apache创建一个单独的用户来运行它将会更安全一些。
  ——请确保运行Apache的用户有版本库的完全访问权限(右键版本库目录->属性->安全)。要不然,用户将无法提交他们的更改。
  ——就算Apache以本机system来运行,你也要设置它能完全读写版本库目录。
  ——如果没有为Apache配置这个许可,用户将会得到"禁止访问"的错误信息,在Apache的错误日志中表现为错误500。
2.6.2 配置Subversion
  使用Windwos资源管理器,来到Subversion的安装目录(通常是c:\program files\Subversion),找到文件httpd/mod_dav_svn.so和mod_authz_svn.so,复制这些文件到 Apache的模块目录(通常是c:\program file\apache group\apache2\modules)。
2.6.3 配置httpd.conf文件
  路径通常为c:\program files\apache group\apache2\conf\httd.conf),修改以下内容:
  去掉以下两行的注释号"#":
  #LoadModule dav_fs_module modules/mod_dav_fs.so
  #LoadModule dav_module modules/mod_dav.so
  在LoadModule节的最后添加以下两行:
  LoadModule dav_svn_module modules/mod_dav_svn.so
  LoadModule authz_svn_module modules/mod_authz_svn.so
  文件末尾添加以下行,让Apache知道哪个URL将被Subversion使用:
  <Location /svn>
   DAV svn
   SVNParentPath D:\SVN
   AuthType Basic
   AuthName "Subversion repositories"
   AuthUserFile D:\passwd
   #AuthzSVNAccessFile D:\svnaccessfile
   Require valid-user
  </Location>
  ——这样配置表示:你所有的版本库将位于D:\SVN目录下,要访问你的版本库可以使用这样的URL:http://MyServer/svn/,访问权限将由passwd文件中的用户名/密码来限制。
  要创建passwd文件,可以打开命令行,将当前目录切换到apache2目录,输入命令:
  c:\program files\apache group\apache2 >bin\htpasswd -c passwd <username>
  重启Apache服务。
  使用浏览器测试。

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

三、建立版本库

  在前面的服务器配置上我们通常假设已经建立了版本库,这是为了避免在每种配置中重复赘述这种操作,因此把它独立出来讲。
  版本库创建完毕后会在目录下生成若干个文件和文件夹:
   dav目录是提供给Apache与mod_dav_svn使用的目录,让它们存储内部数据;
   db目录就是所有版本控制的数据文件;hooks目录放置hook脚本文件的目录;
   locks用来放置Subversion文件库锁定数据的目录,用来追踪存取文件库的客户端;
   format文件是一个文本文件,里面只放了一个整数,表示当前文件库配置的版本号。
3.1 Linux下创建版本库
  版本库有两种数据存储格式:Berkeley DB和FSFS,推荐选用FSFS格式,具体可以查阅参考资料了解二者的区别。
  创建版本库时,在终端运行如下命令:
  # 运行创建版本库的命令,指定数据存储为 FSFS,如果要指定为 Berkeley DB,则将 fsfs 替换为 bdb
  $ svnadmin create --fs-type fsfs /etc/svn/repos 创建版本库,运行这个命令后,我们就可以看到一个版本库应有的文件
  更改版本库的访问权限
  $ sudo mkdir /home/svn
  $ cd /home/svn
  $ sudo mkdir myproject
  前面三条命令用于创建版本库目录,如果已经建立,就可以省略掉;后面三条用于修改权限
  $ sudo chown -R www-data myproject
  $ sudo chgrp -R subversion myproject
  $ sudo chmod -R g+rws myproject 这条命令允许用户对版本库进行读写操作,即可以更新,可以提交3.2 Windows下创建版本库
  可以使用TortoiseSVN图形化的完成这一步,在目录E:subversionrepository下"右键 ->TortoiseSVN->Create Repository here...", 然后可以选择版本库模式, 使用默认即可, 然后就创建了一系列目录和文件。
  [Tips]如果下载的是setup.exe版本,安装程序安装后会自动设置系统变量,如果下载的是zip版就需要手动设置系统变量.
  也可以使用命令行来创建:
  C:\> svnadmin create F:\svn\
======================THE=========END=====================

关于word的一些技巧

4:00:00 PM 0 Comments

1、用好样式



编写论文,一定要使用样式,除了Word原先所提供的标题、正文等样式外,还可以自定义样式。

如果你发现自己是用选中文字然后用格式栏来设定格式的,一定要注意,想想其他地方是否需要相同的格式,如果是的话,最好就定义一个样式。对于相同排版表现
的内容一定要坚持使用统一的样式,这样做能大大减少工作量和出错机会。如果要对排版格式(文档表现)做调整,只需一次性修改相关样式即可。使用样式的另一
个好处是可以由 Word 自动生成各种目录和索引。



一般情况下,不论撰写学术论文或者学位论文,相应的杂志社或学位授予机构都会根据其具体要求,给论文撰写者一个清楚的格式要求。比如,要求宋体、小四,行间距17磅等等。这样,论文的撰写者就可以在撰写论文前对样式进行一番设定,这样就会很方便的编写论文了。



2、使用交叉引用设置编号



一定不要自己敲编号,推荐使用交叉引用,否则手动输入的编号极可能给你文章的修改带来无穷的后患。标题的编号可以通过设置标题样式来实现,表格和图形的编
号通过设置题注的编号来完成。在写“参见第x章、如图x所示”等字样时,不要自己敲编号,应使用交叉引用。这样做以后,当插入或删除新的内容时,所有的编
号和引用都将自动更新,无需人力维护。并且可以自动生成图、表目录。



3、对齐



一定不要用手动敲空格来达到对齐的目的。只有英文单词间才会有空格,中文文档没有空格。所有的对齐都应该利用标尺、制表位、对齐方式和段落的缩进等来进
行。如果发现自己手动打了空格,一定要谨慎,想想是否可以通过其他方法来避免。同理,一定不要通过敲回车来调整段落的间距。





4、绘图技巧



论文中会用到很多图表,笔者强烈建议论文撰写者分清论文中的图形和表格,表格可以使用Word提供的工具进行编写,很简单,这里就不再赘述了。框图和流程
图的编辑,笔者强烈建议使用Office 2003中绑定的Microsoft Office Visio Professional
2003画。如果不能忍受Visio对象复制到Word的速度,还可以试试SmardDraw,功能不比Visio弱,使用不比Visio难,速度却快多
了。

按此在新窗口打开图片







5、编辑数学公式



在论文中编辑数学公式,个人建议使用MathType5.0,其实Word集成的公式编辑器就是它的3.0版。安装MathType后,Word会增加一
个菜单项,其功能一目了然。推荐使用 MathType 的自动编号和引用功能,这样首先有良好的对齐效果,还可以自动更新编号。Word
正文中插入公式的一个常见问题是把上下行距都撑大了,很不美观,这部分可以通过固定行距来修正。但是要提醒论文撰写者,如果你计算机上安装了
MathType5.0后,撰写公式的速度非常快,占用少量的CPU。但是,当你准备打印论文的时候,要记得找个按照了MathType5.0的计算机打
印,不然,我们的公式就“不翼而飞”了。



6、参考文献的编辑和管理



如果你在写论文时才想到要整理参考文献,就已经太迟了,但总比论文写到参考文献那一页时才去整理要好。应该养成看文章的同时就整理参考文献的习惯。手工整理参考文献是很痛苦的,而且很容易出错。Word没有提供管理参考文献的功能,用插入尾注的方法也很不地道。



我建议使用Reference Manager,它与Word集成得非常好,提供即写即引用(Cite while you write,简称
Cwyw)的功能。你所做的只是像填表格一样地输入相关信息,如篇名、作者、年份等在文章中需要引用文献的的方插入标记,它会为你生成非常美观和专业的参
考文献列表,并且对参考文献的引用编号也是自动生成和更新的。这除了可以保持格式上的一致、规范,减少出错机会外,更可以避免正文中对参考文献的引用和参
考文献列表之间的不匹配。并且从长远来说,本次输入的参考文献信息可以在今后重复利用,从而一劳永逸。





7、使用分节符



如果希望在一篇文档里得到不同的页眉、页脚、页码格式,可以插入分节符,并给每一节设置不同的格式。



上述七点都是关于排版的建议,还是要强调一遍,作者关心的重点是文章的内容,文章的表现就交给Word去处理。如果你发现自己正在做与文章内容无关的繁琐的排版工作,一定要停下来学一下Word的帮助,因为Word 早已提供了足够强大的功能。



8、使用子文档



学位论文至少要几十页,且包括大量的图片、公式、表格,比较庞大。如果所有的内容都保存在一个文件里,打开、保存、关闭都需要很长的时间,且不保险。



建议论文的每一章保存到一个子文档,而在主控文档中设置样式。这样每个文件小了,编辑速度快,而且就算文档损坏,也只有一章的损失,不至于全军覆灭。建议先建主控文档,从主控文档中创建子文档,个人感觉比先写子文档再插入到主控文档要好。



9、及时保存、多做备份



设置自动保存,还有一有空就Ctrl+S。



不但Word不可靠,Windows也不可靠,每天的工作都要有备份才好。Word提供了版本管理的功能,将一个文档的各个版本保存到一个文件里,并提供
比较合并等功能。不过保存几个版本后文件就大得不得了,而且一个文件损坏后所有的版本都没了,个人感觉不实用。还是多处备份吧。



另外提醒一下,插入的图片、和公式最好单独保存到文件里另做备份。否则,哪天打文档时发现自己辛辛苦苦的编辑的图片和公式都变成了大红叉,哭都来不及了。





10、大纲视图与文档结构图



使用大纲视图写文章的提纲,调整章节顺序比较方便。



使用文档结构图让你方便地定位章节。



有人说,硕士写毕业论文就像干一个月苦力搬运工一样,累死累活,写不了多少东西;博士写毕业论文就像妇女生孩子,挑灯夜战也得一个春秋。上面的建议并不全
面,但相信比较管用,希望各位论文撰写者能从中有所收获。如果还有疑问,自己花些时间研究一下Word的帮助,相信会有事半功倍的效果。



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

在Word中随意插入独立页码

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



大家在使用Word
2000/2002编辑带有目录或者附录的文档时,一定遇到过这样的问题:对正文之前的目录或者前言要插入页码,操作并进行设置后发现,正文中的页码是接
着前面的页码从n+1开始的。要是正文后面还有附录或者编后语的话,页码会接着正文的末页往下排列,真是让人头疼啊!

由于笔者经常编辑这种文档,所以经过不断摸索和学习,终于利用Word自带的功能解决了这个难题,不敢独享。



用实例说明:当我们写完目录后,执行“插入”→“页码”操作,假设页码从1开始。为了消除正文页码续接目录页码的现象,我们在正文段首执行“插入”→
“分隔符”(弹出窗口)→“分节符类型”(选项栏)→“下一页(N)” →“确定”
,然后双击正文部分第一页的页码,调出“页眉和页脚”设置窗口。然后点击“同前”按钮,将默认的页眉、页脚及页码格式“同前页”的属性更改为“不同前页
”(大家注意更改前后按钮的不同之处,前者带有蓝色边框,更改过后则没有)。然后删除页码(注意:是删除页码位置,不仅仅是删除字符),这时我们可以发现
正文中原有的页码消失了。接着我们就可以对正文插入新的页码了,不过此时要注意设置正确的页码起始页。正文的页码设置完毕以后,可以用同样的步骤重新给附
录编写页码。



通过这种方法,我们不仅可以灵活地对同一篇文章的不同部分分别插入合适的页码,还可以对各部分页码的格式进行不同的设置。比如目录采用Ⅰ、Ⅱ、Ⅲ、Ⅳ……及“居中”的格式,而对正文采用1、2、3、4……及“右侧”的格式。





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

Word XP 中目录的编制方法

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

由于业务的需要,我经常要写某某项目的设计方案、协议合同等,虽篇幅不大,但都会有目录。可我觉得目录的插入总是不尽人意,索性人工编排,那麻烦劲真是一
言难尽,不是对不齐,就是格式难看得要命,自从我安装了OFFICE
XP(2002)以后,在WORD中的目录编排简直可以说是随心所欲,这样的好东西实在不敢独享,写出来与大家共享。



编制目录最简单的方法是使用内置的大纲级别格式或标题样式。如果已经使用了大纲级别或内置标题样式,请按下列步骤操作:



1.单击要插入目录的位置。

2.指向"插入"菜单上的"引用",再单击"索引和目录"。

3.单击"目录"选项卡。

4.若要使用现有的设计,请在"格式"框中单击进行选择。

5.根据需要,选择其他与目录有关的选项。



如果目前未使用大纲级别或内置样式,请进行下列操作之一:



用大纲级别创建目录



1.指向"视图"菜单上的"工具栏",再单击"大纲"。

2.选择希望在目录中显示的第一个标题。

3.在"大纲"工具栏上,选择与选定段落相关的大纲级别。

4.对希望包含在目录中的每个标题重复进行步骤 2 和步骤 3。

5.单击要插入目录的位置。

6.指向"插入"菜单上的"引用",再单击"索引和目录"。

7.单击"目录"选项卡。

8.若要使用现有的设计,请在"格式"框中单击进行选择。

9.根据需要,选择其他与目录有关的选项。



用自定义样式创建目录



如果已将自定义样式应用于标题,则可以指定 Microsoft Word 在编制目录时使用哪些样式。



1.单击要插入目录的位置。

2.指向"插入"菜单上的"引用",再单击"索引和目录"。

3.单击"目录"选项卡。

4.单击"选项"按钮。

5.在"有效样式"下查找应用于文档的标题样式。

6.在样式名右边的"目录级别"下键入 1 到 9 的数字,表示每种标题样式所代表的级别。

注意 如果仅使用自定义样式,请删除内置样式的目录级别数字,例如"标题 1"。

7.对于每个要包括在目录中的标题样式重复步骤 5 和步骤 6。

8.单击"确定"。

9.若要使用现有的设计,请在"格式"框中单击一种设计。

10.根据需要,选择其他与目录有关的选项。



用自己标记的条目编制目录



使用"标记目录项"框将目录域插入文档。



1.请选择要包含在目录中的第一部分文本。

2.按 Alt+Shift+O。

3.在"级别"框中,选择级别并单击"标记"。

4.若要标记其他条目,可选择文本,单击"条目"框,再单击"标记"。添加条目结束后,请单击"关闭"。

5.单击要插入目录的位置。

6.指向"插入"菜单上的"引用",再单击"索引和目录"。

7.单击"目录"选项卡。

8.单击"选项"按钮。

9.在"目录选项"框中,单击选择"目录项域"复选框。

10.清除"样式"和"大纲级别"复选框。



注意



·若要创建 Web 框架的目录,请指向"格式"菜单上的"框架",再单击"框架集中的目录"。只能用内置标题样式创建 Web 框架中的目录。

·若要与主文档一起工作,请在建立或更新目录以前,在"大纲"工具栏上单击"展开子文档"



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

重复显示Word文档表格标题行

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

当Word文档中表格的内容多于一页时,我们可以设置标题行重复,使其反复出现在每一页表格的首行或数行。



步骤:



1.如果表格的第一行作为标题行,需选中第一行(全部或部分)或将插入点置于第一行的单元格中;如果表格的开始连续数行作为标题行,需选中这些行(全部或部分)。



2.单击“表格”菜单的“标题行重复”命令。



注意:要重复的标题行必须是该表格的第一行或开始的连续数行,否则“标题行重复”命令将处于禁止状态。



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

脚注和尾注

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



对一些读者来说,文章中不时出现的脚注可能会让他们有一种被强迫打断思路的感觉,令人难以取舍。但是,如果你是经常用Word写文章的作者,想要定制一下
脚注或尾注,使它们看起来与Word XP默认的不同,可能更有一种无从措手的感觉。如果你也遇到过这种情形,下面几则技巧可能对你有用。



一、修改分隔符



默认情况下,Word用一条细实线把脚注和尾注与文档的正文分隔开来。要修改这条分隔线并不困难,关键在于要知道在哪里修改。选择菜单“视图”→“普通
”,确保文档以“普通”视图显示,然后选择“视图”→“脚注”打开脚注窗格。如果文档只包含脚注或只包含尾注,Word自动打开适当的窗格;如果文档既有
脚注又有尾注,Word将询问要打开哪个窗格,选择适当的窗格然后点击“确定”。



打开脚注窗格上方的下拉列表,可以看到脚注分隔符、脚注延续分隔符、脚注延续标记等选项。选择要修改的项目,窗格中会显示出当前的符号,现在你可以随心所欲地修改它了。



二、多重引用与自动编号



有些时候,可能要对同一个脚注或尾注设置多重引用,当第一个引用的编号改变时,所有多重引用的编号也随之改变。设置这种编号要分几步进行。



首先按常规的方式插入一个脚注,并选中正文里面的脚注引用。然后插入一个书签:选择菜单“插入”→“书签”,输入书签的名称,点击“添加”。接下来创建所
有指向同一脚注的引用:先把光标移到正文中要插入引用的位置,选择菜单“插入”→“域”,在“域名”列表中选择NoteRef,在“书签名称”列表中选择
适当的书签,选中“插入引用标记”选项,点击“确定”。



现在,假设第一个对脚注的引用因为Word的自动编号功能而改变,要想其他引用编号也相应地改变,只需选中这些域(或选中整个文档),然后按F9。



三、批量引用



除了多重引用之外,脚注引用的另一种常见变化是“2-5”之类的批量引用,如图一所示。这类引用不能自动编号,但我们可以想办法让后继的脚注和尾注的编号再次回归常规的编号序列。



办法之一是,第一个对批量脚注的引用以定制标记的形式创建:选择菜单“插入”→“引用”→“脚注和尾注”,输入自定义的标记,如“2-5”,点击“插入
”,然后按通常的方式编写脚注文字。接着,用上标文字或NoteRef域的形式(而不是标准脚注引用)插入其余的批量引用。



要重新开始自动编号时,必须在插入后继脚注之前先插入一个分节符:选择菜单“插入”→“分隔符”,设定“分节符类型”为“连续”。插入下一个脚注时,给“起始编号”设定一个适当的值,“将更改应用于”设置为“本节”。



四、快捷键



如果你经常要用到脚注,最好掌握三个常用的快捷键:Alt Ctrl F插入一个脚注,Alt Ctrl D插入一个尾注,F6在脚注窗格、尾注窗格和正文之间切换。



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

从x页才开始显示页码的方法



X代表你想插入的页码

1、将鼠标定位在第X-1页的最后一个字符后  

2、选择“插入-〉分隔符”;在“分节符类型”选项中,选中“下一页”;按“确定”  

3、将鼠标定位到第X页  

4、选择“插入-〉页码”;将“首页显示页码”勾上(因为页面默认是“首页不同”)  

5、按“格式”键;勾点“起始页码”,选择“1”  

“将第X页设为第1页的问题”就解决了;但还要执行下面这一步  

6、双击第X页的页脚,出现“页眉和页脚”工具图标,同时页脚区域会显示“与上一节相同”的提示(如果没有此提示,下面的步骤就不用执行了)  

7、点击“页眉和页脚”工具图标中“链接到前一个”按键后,页脚区域显示的“与上一节相同”的提示消失;  

8、点击“页眉和页脚”工具图标中“关闭”按键;至此就ok了  

对第X-1页及之前页无页码的处理:  

双击第X-1页的页脚,将显示页脚数字的栏位删掉即可



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

去掉Word页眉下的那条横线

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

去掉Word页眉下的那条横线可以用下面四种方法:   (1) 可以将横线颜色设置成“白色”;   (2)
在进行页眉和页脚设置时,设置表格和边框为 “无”;   (3) 在进行页眉和页脚设置时,选中段落标记并删除它;   (4)
将“样式”图标栏里面的“页眉”换成“正文”就行了。

关于word的一些技巧

4:00:00 PM 0 Comments

1、用好样式



编写论文,一定要使用样式,除了Word原先所提供的标题、正文等样式外,还可以自定义样式。

如果你发现自己是用选中文字然后用格式栏来设定格式的,一定要注意,想想其他地方是否需要相同的格式,如果是的话,最好就定义一个样式。对于相同排版表现
的内容一定要坚持使用统一的样式,这样做能大大减少工作量和出错机会。如果要对排版格式(文档表现)做调整,只需一次性修改相关样式即可。使用样式的另一
个好处是可以由 Word 自动生成各种目录和索引。



一般情况下,不论撰写学术论文或者学位论文,相应的杂志社或学位授予机构都会根据其具体要求,给论文撰写者一个清楚的格式要求。比如,要求宋体、小四,行间距17磅等等。这样,论文的撰写者就可以在撰写论文前对样式进行一番设定,这样就会很方便的编写论文了。



2、使用交叉引用设置编号



一定不要自己敲编号,推荐使用交叉引用,否则手动输入的编号极可能给你文章的修改带来无穷的后患。标题的编号可以通过设置标题样式来实现,表格和图形的编
号通过设置题注的编号来完成。在写“参见第x章、如图x所示”等字样时,不要自己敲编号,应使用交叉引用。这样做以后,当插入或删除新的内容时,所有的编
号和引用都将自动更新,无需人力维护。并且可以自动生成图、表目录。



3、对齐



一定不要用手动敲空格来达到对齐的目的。只有英文单词间才会有空格,中文文档没有空格。所有的对齐都应该利用标尺、制表位、对齐方式和段落的缩进等来进
行。如果发现自己手动打了空格,一定要谨慎,想想是否可以通过其他方法来避免。同理,一定不要通过敲回车来调整段落的间距。





4、绘图技巧



论文中会用到很多图表,笔者强烈建议论文撰写者分清论文中的图形和表格,表格可以使用Word提供的工具进行编写,很简单,这里就不再赘述了。框图和流程
图的编辑,笔者强烈建议使用Office 2003中绑定的Microsoft Office Visio Professional
2003画。如果不能忍受Visio对象复制到Word的速度,还可以试试SmardDraw,功能不比Visio弱,使用不比Visio难,速度却快多
了。

按此在新窗口打开图片







5、编辑数学公式



在论文中编辑数学公式,个人建议使用MathType5.0,其实Word集成的公式编辑器就是它的3.0版。安装MathType后,Word会增加一
个菜单项,其功能一目了然。推荐使用 MathType 的自动编号和引用功能,这样首先有良好的对齐效果,还可以自动更新编号。Word
正文中插入公式的一个常见问题是把上下行距都撑大了,很不美观,这部分可以通过固定行距来修正。但是要提醒论文撰写者,如果你计算机上安装了
MathType5.0后,撰写公式的速度非常快,占用少量的CPU。但是,当你准备打印论文的时候,要记得找个按照了MathType5.0的计算机打
印,不然,我们的公式就“不翼而飞”了。



6、参考文献的编辑和管理



如果你在写论文时才想到要整理参考文献,就已经太迟了,但总比论文写到参考文献那一页时才去整理要好。应该养成看文章的同时就整理参考文献的习惯。手工整理参考文献是很痛苦的,而且很容易出错。Word没有提供管理参考文献的功能,用插入尾注的方法也很不地道。



我建议使用Reference Manager,它与Word集成得非常好,提供即写即引用(Cite while you write,简称
Cwyw)的功能。你所做的只是像填表格一样地输入相关信息,如篇名、作者、年份等在文章中需要引用文献的的方插入标记,它会为你生成非常美观和专业的参
考文献列表,并且对参考文献的引用编号也是自动生成和更新的。这除了可以保持格式上的一致、规范,减少出错机会外,更可以避免正文中对参考文献的引用和参
考文献列表之间的不匹配。并且从长远来说,本次输入的参考文献信息可以在今后重复利用,从而一劳永逸。





7、使用分节符



如果希望在一篇文档里得到不同的页眉、页脚、页码格式,可以插入分节符,并给每一节设置不同的格式。



上述七点都是关于排版的建议,还是要强调一遍,作者关心的重点是文章的内容,文章的表现就交给Word去处理。如果你发现自己正在做与文章内容无关的繁琐的排版工作,一定要停下来学一下Word的帮助,因为Word 早已提供了足够强大的功能。



8、使用子文档



学位论文至少要几十页,且包括大量的图片、公式、表格,比较庞大。如果所有的内容都保存在一个文件里,打开、保存、关闭都需要很长的时间,且不保险。



建议论文的每一章保存到一个子文档,而在主控文档中设置样式。这样每个文件小了,编辑速度快,而且就算文档损坏,也只有一章的损失,不至于全军覆灭。建议先建主控文档,从主控文档中创建子文档,个人感觉比先写子文档再插入到主控文档要好。



9、及时保存、多做备份



设置自动保存,还有一有空就Ctrl+S。



不但Word不可靠,Windows也不可靠,每天的工作都要有备份才好。Word提供了版本管理的功能,将一个文档的各个版本保存到一个文件里,并提供
比较合并等功能。不过保存几个版本后文件就大得不得了,而且一个文件损坏后所有的版本都没了,个人感觉不实用。还是多处备份吧。



另外提醒一下,插入的图片、和公式最好单独保存到文件里另做备份。否则,哪天打文档时发现自己辛辛苦苦的编辑的图片和公式都变成了大红叉,哭都来不及了。





10、大纲视图与文档结构图



使用大纲视图写文章的提纲,调整章节顺序比较方便。



使用文档结构图让你方便地定位章节。



有人说,硕士写毕业论文就像干一个月苦力搬运工一样,累死累活,写不了多少东西;博士写毕业论文就像妇女生孩子,挑灯夜战也得一个春秋。上面的建议并不全
面,但相信比较管用,希望各位论文撰写者能从中有所收获。如果还有疑问,自己花些时间研究一下Word的帮助,相信会有事半功倍的效果。



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

在Word中随意插入独立页码

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



大家在使用Word
2000/2002编辑带有目录或者附录的文档时,一定遇到过这样的问题:对正文之前的目录或者前言要插入页码,操作并进行设置后发现,正文中的页码是接
着前面的页码从n+1开始的。要是正文后面还有附录或者编后语的话,页码会接着正文的末页往下排列,真是让人头疼啊!

由于笔者经常编辑这种文档,所以经过不断摸索和学习,终于利用Word自带的功能解决了这个难题,不敢独享。



用实例说明:当我们写完目录后,执行“插入”→“页码”操作,假设页码从1开始。为了消除正文页码续接目录页码的现象,我们在正文段首执行“插入”→
“分隔符”(弹出窗口)→“分节符类型”(选项栏)→“下一页(N)” →“确定”
,然后双击正文部分第一页的页码,调出“页眉和页脚”设置窗口。然后点击“同前”按钮,将默认的页眉、页脚及页码格式“同前页”的属性更改为“不同前页
”(大家注意更改前后按钮的不同之处,前者带有蓝色边框,更改过后则没有)。然后删除页码(注意:是删除页码位置,不仅仅是删除字符),这时我们可以发现
正文中原有的页码消失了。接着我们就可以对正文插入新的页码了,不过此时要注意设置正确的页码起始页。正文的页码设置完毕以后,可以用同样的步骤重新给附
录编写页码。



通过这种方法,我们不仅可以灵活地对同一篇文章的不同部分分别插入合适的页码,还可以对各部分页码的格式进行不同的设置。比如目录采用Ⅰ、Ⅱ、Ⅲ、Ⅳ……及“居中”的格式,而对正文采用1、2、3、4……及“右侧”的格式。





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

Word XP 中目录的编制方法

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

由于业务的需要,我经常要写某某项目的设计方案、协议合同等,虽篇幅不大,但都会有目录。可我觉得目录的插入总是不尽人意,索性人工编排,那麻烦劲真是一
言难尽,不是对不齐,就是格式难看得要命,自从我安装了OFFICE
XP(2002)以后,在WORD中的目录编排简直可以说是随心所欲,这样的好东西实在不敢独享,写出来与大家共享。



编制目录最简单的方法是使用内置的大纲级别格式或标题样式。如果已经使用了大纲级别或内置标题样式,请按下列步骤操作:



1.单击要插入目录的位置。

2.指向"插入"菜单上的"引用",再单击"索引和目录"。

3.单击"目录"选项卡。

4.若要使用现有的设计,请在"格式"框中单击进行选择。

5.根据需要,选择其他与目录有关的选项。



如果目前未使用大纲级别或内置样式,请进行下列操作之一:



用大纲级别创建目录



1.指向"视图"菜单上的"工具栏",再单击"大纲"。

2.选择希望在目录中显示的第一个标题。

3.在"大纲"工具栏上,选择与选定段落相关的大纲级别。

4.对希望包含在目录中的每个标题重复进行步骤 2 和步骤 3。

5.单击要插入目录的位置。

6.指向"插入"菜单上的"引用",再单击"索引和目录"。

7.单击"目录"选项卡。

8.若要使用现有的设计,请在"格式"框中单击进行选择。

9.根据需要,选择其他与目录有关的选项。



用自定义样式创建目录



如果已将自定义样式应用于标题,则可以指定 Microsoft Word 在编制目录时使用哪些样式。



1.单击要插入目录的位置。

2.指向"插入"菜单上的"引用",再单击"索引和目录"。

3.单击"目录"选项卡。

4.单击"选项"按钮。

5.在"有效样式"下查找应用于文档的标题样式。

6.在样式名右边的"目录级别"下键入 1 到 9 的数字,表示每种标题样式所代表的级别。

注意 如果仅使用自定义样式,请删除内置样式的目录级别数字,例如"标题 1"。

7.对于每个要包括在目录中的标题样式重复步骤 5 和步骤 6。

8.单击"确定"。

9.若要使用现有的设计,请在"格式"框中单击一种设计。

10.根据需要,选择其他与目录有关的选项。



用自己标记的条目编制目录



使用"标记目录项"框将目录域插入文档。



1.请选择要包含在目录中的第一部分文本。

2.按 Alt+Shift+O。

3.在"级别"框中,选择级别并单击"标记"。

4.若要标记其他条目,可选择文本,单击"条目"框,再单击"标记"。添加条目结束后,请单击"关闭"。

5.单击要插入目录的位置。

6.指向"插入"菜单上的"引用",再单击"索引和目录"。

7.单击"目录"选项卡。

8.单击"选项"按钮。

9.在"目录选项"框中,单击选择"目录项域"复选框。

10.清除"样式"和"大纲级别"复选框。



注意



·若要创建 Web 框架的目录,请指向"格式"菜单上的"框架",再单击"框架集中的目录"。只能用内置标题样式创建 Web 框架中的目录。

·若要与主文档一起工作,请在建立或更新目录以前,在"大纲"工具栏上单击"展开子文档"



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

重复显示Word文档表格标题行

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

当Word文档中表格的内容多于一页时,我们可以设置标题行重复,使其反复出现在每一页表格的首行或数行。



步骤:



1.如果表格的第一行作为标题行,需选中第一行(全部或部分)或将插入点置于第一行的单元格中;如果表格的开始连续数行作为标题行,需选中这些行(全部或部分)。



2.单击“表格”菜单的“标题行重复”命令。



注意:要重复的标题行必须是该表格的第一行或开始的连续数行,否则“标题行重复”命令将处于禁止状态。



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

脚注和尾注

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



对一些读者来说,文章中不时出现的脚注可能会让他们有一种被强迫打断思路的感觉,令人难以取舍。但是,如果你是经常用Word写文章的作者,想要定制一下
脚注或尾注,使它们看起来与Word XP默认的不同,可能更有一种无从措手的感觉。如果你也遇到过这种情形,下面几则技巧可能对你有用。



一、修改分隔符



默认情况下,Word用一条细实线把脚注和尾注与文档的正文分隔开来。要修改这条分隔线并不困难,关键在于要知道在哪里修改。选择菜单“视图”→“普通
”,确保文档以“普通”视图显示,然后选择“视图”→“脚注”打开脚注窗格。如果文档只包含脚注或只包含尾注,Word自动打开适当的窗格;如果文档既有
脚注又有尾注,Word将询问要打开哪个窗格,选择适当的窗格然后点击“确定”。



打开脚注窗格上方的下拉列表,可以看到脚注分隔符、脚注延续分隔符、脚注延续标记等选项。选择要修改的项目,窗格中会显示出当前的符号,现在你可以随心所欲地修改它了。



二、多重引用与自动编号



有些时候,可能要对同一个脚注或尾注设置多重引用,当第一个引用的编号改变时,所有多重引用的编号也随之改变。设置这种编号要分几步进行。



首先按常规的方式插入一个脚注,并选中正文里面的脚注引用。然后插入一个书签:选择菜单“插入”→“书签”,输入书签的名称,点击“添加”。接下来创建所
有指向同一脚注的引用:先把光标移到正文中要插入引用的位置,选择菜单“插入”→“域”,在“域名”列表中选择NoteRef,在“书签名称”列表中选择
适当的书签,选中“插入引用标记”选项,点击“确定”。



现在,假设第一个对脚注的引用因为Word的自动编号功能而改变,要想其他引用编号也相应地改变,只需选中这些域(或选中整个文档),然后按F9。



三、批量引用



除了多重引用之外,脚注引用的另一种常见变化是“2-5”之类的批量引用,如图一所示。这类引用不能自动编号,但我们可以想办法让后继的脚注和尾注的编号再次回归常规的编号序列。



办法之一是,第一个对批量脚注的引用以定制标记的形式创建:选择菜单“插入”→“引用”→“脚注和尾注”,输入自定义的标记,如“2-5”,点击“插入
”,然后按通常的方式编写脚注文字。接着,用上标文字或NoteRef域的形式(而不是标准脚注引用)插入其余的批量引用。



要重新开始自动编号时,必须在插入后继脚注之前先插入一个分节符:选择菜单“插入”→“分隔符”,设定“分节符类型”为“连续”。插入下一个脚注时,给“起始编号”设定一个适当的值,“将更改应用于”设置为“本节”。



四、快捷键



如果你经常要用到脚注,最好掌握三个常用的快捷键:Alt Ctrl F插入一个脚注,Alt Ctrl D插入一个尾注,F6在脚注窗格、尾注窗格和正文之间切换。



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

从x页才开始显示页码的方法



X代表你想插入的页码

1、将鼠标定位在第X-1页的最后一个字符后  

2、选择“插入-〉分隔符”;在“分节符类型”选项中,选中“下一页”;按“确定”  

3、将鼠标定位到第X页  

4、选择“插入-〉页码”;将“首页显示页码”勾上(因为页面默认是“首页不同”)  

5、按“格式”键;勾点“起始页码”,选择“1”  

“将第X页设为第1页的问题”就解决了;但还要执行下面这一步  

6、双击第X页的页脚,出现“页眉和页脚”工具图标,同时页脚区域会显示“与上一节相同”的提示(如果没有此提示,下面的步骤就不用执行了)  

7、点击“页眉和页脚”工具图标中“链接到前一个”按键后,页脚区域显示的“与上一节相同”的提示消失;  

8、点击“页眉和页脚”工具图标中“关闭”按键;至此就ok了  

对第X-1页及之前页无页码的处理:  

双击第X-1页的页脚,将显示页脚数字的栏位删掉即可



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

去掉Word页眉下的那条横线

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

去掉Word页眉下的那条横线可以用下面四种方法:   (1) 可以将横线颜色设置成“白色”;   (2)
在进行页眉和页脚设置时,设置表格和边框为 “无”;   (3) 在进行页眉和页脚设置时,选中段落标记并删除它;   (4)
将“样式”图标栏里面的“页眉”换成“正文”就行了。

Finding the size of the browser window

10:22:00 PM 0 Comments

Window size and scrolling

Finding the size of the browser window

  • Clue browser can only work out window width.
  • Tkhtml Hv3 has the body/documentElement clientHeight/Width values reversed - versions before September 2007 also do not support innerHeight/Width, so they cannot work with this script.

There are some constants available that give the document area of the window that is available for writing to. These will not be available until after the document has loaded and the method used for referencing them is browser specific. The available constants are:

window.innerHeight/Width
Provided by most browsers, but importantly, not Internet Explorer.
document.body.clientHeight/Width
Provided by many browsers, including Internet Explorer.
document.documentElement.­clientHeight/Width
Provided by most DOM browsers, including Internet Explorer.

This is a little messy because the clientHeight/Width properties can mean different things in different browsers, and even different things in the same browser, depending on whether the document type declaration triggers the browser's strict mode or quirks mode. In some cases, they refer to the dimensions of the window, and sometimes they refer to the dimensions of the contents of the document. The table below shows what the properties mean in different browsers, and different modes:

Properties and what they relate to
Browser window.
innerHeight
document.
body.
clientHeight
document.
documentElement.
clientHeight
Opera 9.5+ strictwindowdocumentwindow
Opera 9.5+ quirkswindowwindowdocument
Opera 7-9.2windowwindowdocument
Opera 6windowwindowN/A
Mozilla strictwindowdocumentwindow
Mozilla quirkswindowwindowdocument
KHTMLwindowdocumentdocument
Safariwindowdocumentdocument
iCab 3windowdocumentdocument
iCab 2windowwindowN/A
IE 6+ strictN/Adocumentwindow
IE 5-7 quirksN/Awindow0
IE 4N/AwindowN/A
ICEbrowserwindowwindowdocument
Tkhtml Hv3windowwindowdocument
Netscape 4windowN/AN/A

As you can see, the browsers seem to have settled on at least one reliable property; innerHeight. Internet Explorer is the one that cannot make up its mind, and its influence means that other browsers change their clientHeight behaviour in different versions in order to match it. For now, almost all browsers provide window.innerHeight/Width so that can be used. Internet Explorer has chosen to swap the values around when it is in strict mode. Fortunately, it gives 0 in quirks mode. This means that if we see a value on the documentElement's properties, and the browser does not provide the properties on the window object, we can assume it is Internet Explorer in strict mode.

The most accurate method I could come up with uses the following algorithm, although it may have problems with future browsers, a situation which I am definitely not happy with:

  1. If window.innerHeight/Width is provided, that is fully trustworthy, use that (Hooray!).
  2. Else if document.documentElement.clientHeight/Width is provided and either one is greater than 0, use that.
  3. Else use document.body.clientHeight/Width.

This algorithm will fail with IE 6+ in 'standards compliant mode' if the window is shrunk to 0px by 0px. This is only possible when the user actively shrinks the window to hide the page within it. Even then, it will just give the height of the document instead, so it should not be a problem. The following code performs the algorithm as described.

function alertSize() {
var myWidth = 0, myHeight = 0;
if( typeof( window.innerWidth ) == 'number' ) {
//Non-IE
myWidth = window.innerWidth;
myHeight = window.innerHeight;
} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
//IE 6+ in 'standards compliant mode'
myWidth = document.documentElement.clientWidth;
myHeight = document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
//IE 4 compatible
myWidth = document.body.clientWidth;
myHeight = document.body.clientHeight;
}
window.alert( 'Width = ' + myWidth );
window.alert( 'Height = ' + myHeight );
}

Test it here: get the inner dimensions of this window.

Note that browsers may take the width either inside or outside the scrollbar (if there is one). I do not cover any way to work with these differences.

Finding how far the window has been scrolled

  • OmniWeb 4.2-, NetFront 3.3- and Clue browser do not provide any way to do this.
  • Safari and OmniWeb 4.5+ have bugs that do not affect this script - see below.

When trying to produce document effects like falling snow, or more serious things like menus that remain in the same place relative to the browser window when the user scrolls, it is essential to be able to obtain the scrolling offsets in both the horizontal and vertical direction.

There are also three ways to find this out, but it is easier than finding the size of the window. Most browsers provide window.pageXOffset/pageYOffset. These are completely reliable. Once again, Internet Explorer is the odd one out, as it does not provide these properties. Internet Explorer and some other browsers will provide document.body.scrollLeft/Top. In strict mode, IE 6 and a few other browsers, provide document.documentElement.scrollLeft/Top.

If the scrollLeft/Top properties are provided on either the document.body or document.documentElement, they are reliable in everything except Safari and OmniWeb 4.5+, which return -8 if the scrolling is 0, but get all other scrolling offsets correct. However, as they correctly provide window.pageXOffset/pageYOffset, this script will not have any problems.

The following script will obtain the scrolling offsets.

function getScrollXY() {
var scrOfX = 0, scrOfY = 0;
if( typeof( window.pageYOffset ) == 'number' ) {
//Netscape compliant
scrOfY = window.pageYOffset;
scrOfX = window.pageXOffset;
} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
//DOM compliant
scrOfY = document.body.scrollTop;
scrOfX = document.body.scrollLeft;
} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
//IE6 standards compliant mode
scrOfY = document.documentElement.scrollTop;
scrOfX = document.documentElement.scrollLeft;
}
return [ scrOfX, scrOfY ];
}

Test it here: get the scrolling offsets.

JavaScript获得选中文本内容的方法

10:03:00 PM 0 Comments



在Firefox, Google Chrome, Safari, Opera中:可以用 window.getSelection() (参考MDC)
在IE下,可以用 document.selection.createRange().text (参考MSDN)
注:将两者放在一起的代码:


function getSelectionText() {
if(window.getSelection) {
return window.getSelection().toString();
} else if(document.selection && document.selection.createRange) {
return document.selection.createRange().text;
}
return '';
}

JavaScript注册事件

7:02:00 PM 0 Comments

首先是最常规的方法:
程序代码 程序代码

<p id="para" title="cssrain demo!" onclick="test()" >test</p>
<script>
function test(){
   alert("test");
}
</script>


当某一天,我们知道JavaScript要跟HTML结构实现分离后,就会改了一种写法:
程序代码 程序代码

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
   alert("test");
}
window.onload = function(){
     document.getElementById("para").onclick = test;
}
</script>


当我们工作越来越久后,有时候我们需要对某个元素绑定多个相同的事件类型:
程序代码 程序代码
<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
   alert("test");
}

function pig(){
   alert("pig");
}

window.onload = function(){
     document.getElementById("para").onclick = test;
     document.getElementById("para").onclick = pig;
}
</script>


如果按照上面的写法,我们只能输出第二个函数。
这时候我们需要用到attachEvent方法:
程序代码 程序代码

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
   alert("test");
}

function pig(){
   alert("pig");
}

window.onload = function(){
     document.getElementById("para").attachEvent("onclick",test);
     document.getElementById("para").attachEvent("onclick",pig);
}
</script>


在一段时间内,你并没发现这段代码有任何错误。
某一天,一个名叫firefox的浏览器 闯入你的视野,当我们把这段代码放到firefox中执行后,
发现并不能正常运行。 问题就这样,越来越多,然而作为一名JS程序员,这些都是必须面对的。

为了解决这段代码的平台兼容性问题,我翻翻手册,知道了firefox跟ie的区别:
firefox中注册事件使用:addEventListener方法,同时为了兼容ie,我们必须用到if ... else...
程序代码 程序代码

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
   alert("test");
}

function pig(){
   alert("pig");
}

window.onload = function(){
         var element =   document.getElementById("para");
         if(element.addEventListener){   // firefox   , w3c
                 element.addEventListener("click",test,false);
     element.addEventListener("click",pig,false);
         } else {   // ie
     element.attachEvent("onclick",test);
     element.attachEvent("onclick",pig);
         }
}
</script>


此时,代码就可以在多个平台上工作了。

但随着水平的进步,你不满足每次都去判断,你想把这个判断封装起来,以后可以直接调用:
程序代码 程序代码

<p id="para" title="cssrain demo!">test</p>
<script>
function test(){
   alert("test");
}

function pig(){
   alert("pig");
}

function addListener(element,e,fn){
     if(element.addEventListener){
           element.addEventListener(e,fn,false);
     } else {
           element.attachEvent("on" + e,fn);
     }
}

window.onload = function(){
         var element =   document.getElementById("para");
         addListener(element,"click",test);
         addListener(element,"click",pig);
}
</script>


至此,作为一个程序员的工作就完了。
中间我们从一个最传统,最基本的写法 , 然后实现Js和HTML的分离,然后又实现对同一个元素注册多个事件,期间,我们发现注册事件的兼容性问题。最后我们对注册事件的方法进行封装,方便以后使用。

好了,文章写到这里。希望大家有收获哦。。。

64位 Fedora 11 硬盘安装 配置全解

5:17:00 PM 0 Comments

硬盘安装 Fedora11:XP下
首先把下载Fedora 11的ISO,官方有下载,把下载的ISO校验正确后放到FAT32分区中,一定要是这个分区,如果没有可以格式化为FAT32分区,当然你可以选择光盘或虚拟机安装。

其次把isolinux目录下的vmlinuz与initrd.img复制到系统盘下,一般为C盘,再把images目录复制到你放Fedora 11 ISO的所在的FAT32分区下面。

下载Grub For Dos,把里面的grldr,grub.exe与menu.lst文件复制到系统盘,即C盘。然后改boot.ini,在最后加上C:\grldr="GRUB For Dos",如果你的系统盘如D盘就把C改为D,应用。

在C:\menu.lst后面加上
title Install-Fedora
kernel (hd0,0)/vmlinuz
initrd (hd0,0)/initrd.img

重启系统,进入Grub For Dos ,选择Install-Fedora
选择kernel (hd0,0)/vmlinuz 按e编辑,在kernel (hd0,0)/vmlinuz后面加入 vga=792 linux xdriver=vesa resolution=1024*768 然后按ESC 返回,还是在kernel (hd0,0)/vmlinuz vga=792 linux xdriver=vesa resolution=1024*768 下 按b启动安装, 选择chinese(simplified),下一步,选择键盘布局,默认US,下一步,选择你的F11所在的FAT32分区,我的是 sda6 (即XP下的E盘),下一步,出现安装Splash画面,点击 Next 进入下一步 。一直下一步。到分区的时候要注意,如果你原来有linux系统在硬盘里,可以选择替换,或者你不想替换,又有多余的硬盘空间,你可以在这多余的空间上安 装,新手建议默认分区,有经验的可以 手动分区,我是分了4个区,/ ,/boot,/swap ,/home.往下就很容易了。
安装好以后,要安装显卡驱动。 由于我的本子是NVIDIA的显卡,我只介绍N卡的安装,ATI卡的没钱买,暂不介绍,望有安装过ATI卡的补充。
N卡驱动安装:
我这里是装的NVIDIA-Linux-x86_64-180.44-pkg2.run (可到NVIDIA官网自己下载)
装显卡驱动要进入文本模式下 vi /etc/inittab 找到这句话 id:5:initdefault: 按i,把5改为3 (5为图形模式,3为文本模式)按ESC :wq!保存退出。然后reboot 。进入文本模式,用root帐号登录,进入你N卡驱动的目录,chmod 777 NVIDIA-Linux-x86_64-180.44-pkg2.run ,然后 执行 ./NVIDIA-Linux-x86_64-180.44-pkg2.run ,默认安装就行了,(高手可以自己加参数,选择路径)。 安装完成后,vi /etc/inittab 找到这句话 id:3:initdefault: 按i,把3改为5, 按ESC :wq!保存退出。reboot。

(二)FEDORA 11 联网
## Fedora 11下设置ADSL上网
先得激活网卡,即eth0,然后才激活adsl(如果是通过adsl上网),也叫ppp0;
具体步骤如下:
1。打开"网络配置"对话框
主菜单->系统->管理->网络,在出现的窗口中输入安装时设定的管理员(root)密码,打开"网络配置"对话框。
2。查看网卡激活情况
假如正常的话,您能够看到eth0,他应该是激活的。假如没有看到任何东东,说明您的网卡可能没有被正确识别。只好自己找找相关的网卡的资料,以正确安装 对应的驱动。然后来看本节内容了。假如有eth0,即没有被激活,试试点击上方的激活按钮。假如正常激活了,请直接跳到3
假如仍然无法激活eth0,您能够试试如下办法:
(1)点击上方的编辑按钮,打开"以太网设备"对话框。
(2)点选"静态配置的IP地址"单选框。
(3)在"地址"框输入:192.168.1.12
(4)在"子网掩码"框输入:255.255.255.0
(5)然后"确定"退出本对话框。
(6)再次点击"网络配置"上方的激活按钮,一般情况应该能够正常激活了。
3。添加并激活ppp0
点击上方的"新建"按钮,打开"添加新设备类型"框。
在左侧设备类型中选择点下方的"xDSL连接",然后点"前进"按钮。
在 新出现的界面,在"提供商名称"框输入任何英文标识符。在Account Typ选择"Normal"。在"登录名"和"口令"中分别输入网络提供商给您用户名和密码。点"前进"按钮,返回"网络配置"对话框。现在在eth0下 方多了个ppp0的配置了。点击该设备,然后点击"激活"按钮。正常的话,能够看到ppp0也已被激活了。说明现在已能够上网了。
假如ppp0无法激活,最有可能是您的上方需要输入"登录名"或"口令"没有输入正确。能够通过上方的"编辑"按钮进行修改。
你能在通过"编辑"按钮,进入"xDSL配置"框,然后选定"当电脑启动时激活设备"复选框,这样,电脑开机时就会自动登录网络的。
## Fedora 11 静态IP地址上网
su模式下

[root@zeyark ~]# cd /etc/sysconfig/network-scripts/
[root@zeyark network-scripts]# ls -a
. ifdown ifdown-ipv6 ifdown-sit ifup-eth ifup-isdn ifup-routes keys-wlan0
.. ifdown-bnep ifdown-isdn ifdown-tunnel ifup-ippp ifup-plip ifup-sit net.hotplug
ifcfg-eth0 ifdown-eth ifdown-post ifup ifup-ipsec ifup-plusb ifup-tunnel network-functions
ifcfg-lo ifdown-ippp ifdown-ppp ifup-aliases ifup-ipv6 ifup-post ifup-wireless network-functions-ipv6
ifcfg-wlan0 ifdown-ipsec ifdown-routes ifup-bnep ifup-ipx ifup-ppp init.ipv6-global
[root@zeyark network-scripts]# vi ifcfg-eth0
# Networking Interface
auto eth0
address 172.16.1.20
gateway 172.16.1.1
netmask 255.255.255.0

保存退出
配置DNS"

[root@zeyark ~]# vi /etc/resolv.conf
nameserver 202.100.192.68
nameserver 202.100.199.8
# Generated by NetworkManager
domain domain
search domain

保存退出
执行 /etc/init.d/network restart 重启网卡
## Fedora 11 无线网卡和有线基本差不多,唯一的就是SSID标识要写入。这里就不再多废话了。
## Fedora 11 3G无线上网卡
应为现在的3G无线上网卡大部分都自带linux驱动,以华为,中兴为例。
GNOME桌面在桌面右上角的网络链接状态图示上(电脑显示器状的图标),右键它,选编辑连接,弹出一个对话框"网络连接" 里面有 "有线" "无线" "移动宽带" "VPN""DSL"。
"移动宽带"就是所谓的3G无线上网了,如果你有电信天翼3G无线上网卡,安装好驱动,就是在这里 设置。具体我不再罗嗦了,按部就班就行了。

(三)配置,更新,安装软件:
su用户下,更新系统 yum update
加入软件仓库:
rpm -ivh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
rpm -ivh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm

1.安装右键打开终端程序nautilus-open-terminal
yum install nautilus-open-terminal
注销后重新登入,在任何一个 Nautilus 窗口中点击鼠标右键,你就可以看到"在终端中打开"这个命令了。
2.*Gnome 启动时打开 Num Lock 键
yum install numlockx
cp /etc/gdm/Init/Default /etc/gdm/Init/Default_backup

vi /etc/gdm/Init/Default 按i
在这个文件的 exit 0 之前添加下面几行:
if [ -x /usr/bin/numlockx ]; then
/usr/bin/numlockx on
fi

保存并退出,重启 X 服务器检查一下你的 Num Lock 键是否开启。
3。安装Flash Player
我的本子是AMD64的,我装的X86_64位的F11,所以我安装的是64位的Adobe Flash Player。
首先到http://labs.adobe.com/downloads/flashplayer10.html 下载 libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
到你下载目录下 tar -zxf libflashplayer-10.0.d20.7.linux-x86_64.so.tar.gz
mv libflashplayer.so /usr/lib64/mozilla/plugins

4. mms 流媒体播放
在地址栏输入:
about:config
然后随便找个地方点击右键,选择 NEW (新建),然后选择 STRING (字符串),然后输入:
network.protocol-handler.app.mms
点击 OK (确定),然后输入你想打开流媒体的程序,比如 usr/bin/mplayer 。
接着再次点击,选择 NEW (新建),然后选择 BOOLEAN (布尔),然后输入:
network.protocol-handler.external.mms
接着输入
true
*设置退格键
默认情况下在 Firefox 中按 退格键 不起作用,如果你想按退格键之后放回上次打开的网页,在地址栏中输
入:
about:config
在过滤器中输入
browser.backspace_action
右键选择它选择编辑选择切换,将值从 2 改成 0 。重启 Firefox 退格键就设置好了。
5.IPv6
你发现在 Fedora 11 中用 Firefox 浏览网页有点慢了吗?这是因为 Firefox 默认开启了 IPv6 ,这导致
Firefox 首先解析 IPv6 地址,解析失败之后才转向 IPv4 。要改变这一设置,输入命令:
about:config
在过滤选项中输入
network.dns.disableIPv6
右键点击它,选择切换,将值改为 true ,重启 Firefox 就可以了。
6.MP3 和 音频播放器
yum install gstreamer rhythmbox
要设置 mp3 文件默认使用 Rhytmbox 来播放,鼠标右键点击一个 mp3 文件并选择 '使用其它程序打
开…',选中 Rhytmbox Music Player 即可。
*amaroK
amaroK 是 KDE 下一个非常好的 音频/mp3 播放器,当然你也能在 GNOME 或其它桌面环境下安装。要
安装这个播放器并添加 mp3 支持,通过以下命令安装:
yum install amarok amarok-extras-freeworld
7. DVD 和 视频
yum install libdvdread libdvdnav lsdvd
安装解码库
yum install ffmpeg ffmpeg-libs gstreamer-ffmpeg libmatrosca xvidcore
8. 64位F11安装MPlayer 和 SMPlayer
2种方式,省事的是yum安装:
yum install mplayer smplayer
安装完了后下载解码器 essential-amd64-20071007.tar.bz2 (amd专用),all-20071007.tar.bz2
cd到你下载解码器的目录下
tar -xvf essential-amd64-20071007.tar.bz2 tar -xvf all-20071007.tar.bz2
cd /usr/lib64/
mkdir amdcodecs

cd到你解码器下载目录 cd essential-amd64-20071007 ,mv * /usr/lib64/amdcodecs , cd ..
cd all-20071007 ,mv */usr/lib64/codecs

第2种就是编译安装,有点麻烦,如下:
1.解压安装解码器:

tar -xvf essential-amd64-20071007.tar.bz2 cd essential-amd64-20071007
mv * /usr/lib64/amdcodecs
//将所有的解码文件移动到/usr/lib64/codecs目录下
tar -xvf all-20071007.tar.bz2 cd all-20071007
mv * /usr/lib64/amdcodecs
//将所有的解码文件移动到/usr/lib64/codecs目录下
2,编译安装MPlayer:

tar jxvf MPlayer-1.0pre5.tar.bz2
cd MPlayer-1.0pre5
./configure --prefix=/usr/mlpayer --enable-gui --with-codecsdir=/usr/lib64/codecs --with-reallibdir=/usr/lib64/codecs --with-xanimlibdir=/usr/lib64/codecs --disable-inet6 --language=zh_CN
make
make install
cd etc/
cp codecs.conf gui.conf input.conf sample.conf ~/.mplayer/
mv ~/.mplayer/sample.conf ~/.mplayer/config

简单说明:由于默认没有支持gui,所以要用图形界面,需要–enable-gui;前面说了,把解码器都安装到了/usr/lib64 /codecs 下,配置的时候指出路径;由于多数情况下ipv6没有用处,所以要–disable-inet6,但是在某些情况下,如校园网使用了ipv6,那么不要加 该项;–language选定默认语言。另外,由于MPlayer内建了live支持,所以在线播放不需要–enable-live,如果想要该支持,查 看live.com网站。复制几个conf文件到~/.mplayer目录下,以后用户修改自己的配置,直接改这些文件。

3,安装字体:

tar xjvf font-arial-cp1250.tar.bz2
tar xjvf font-arial-iso-8859-1.tar.bz2
tar xjvf font-arial-iso-8859-2.tar.bz2
tar xjvf font-arial-iso-8859-7.tar.bz2

将解压目录移动到/usr/local/share/mplayer/font/目录下
mv font-arial-cp1250/ /usr/locale/share/mplayer/font/

ln -s /usr/share/fonts/zh_CN/TrueType/gbsn001p.ttf subfont.ttf //设置中文字幕字体

4,安装皮肤:

cd ~
tar xjvf neutron-1.5.tar.bz2
mv neutron/ default/
mv default/ /usr/local/share/mplayer/Skin

5,运行mplayer/gmplayer

使用MPlayer时,在终端输入mplayer是文本界面播放器,gmplayer打开图形界面。
9.安装VLC
yum install vlc
安装kaffeine
10. kaffeine 是另一个 KDE 媒体播放器,使用 xine 的引擎。
yum install kaffeine xine xine-lib xine-lib-extras-freeworld
11. Avidemux
Avidemux 是一个非常不错的视频编辑器,像这样安装就可以了:
yum install avidemux
它会在 应用程序–>声音和视频–>Avidemux Video Editor 菜单中。
12. IRC 客户端
*Konversation
基于 Qt 的 irc 客户端,KDE用户可以使用
yum install konversation
* Xchat
基于 gtk+ 的 irc 客户端,GNOME用户可以使用
yum install xchat
它们在 Applications -> Internet 菜单里
13. 制作、刻录、备份 CD/DVD
* Sound-Juicer(音乐榨汁机)
Sound Juicer 是CD抓取工具. 支持 flac, oga, mp3, wav 和 spx 的输出格式. 这个工具默认已经安装,
它的菜单是Applications -> Sound & Video -> Audio CD Extractor. 如果没有安装,可以通过下面的
命令安装:
yum install sound-juicer
* GnomeBaker
GNOME 下的 CD/DVD 刻录工具。通过下面的命令安装:
yum install gnomebaker
它的菜单是 Applications -> Sound & Video -> CD/DVD Writer GnomeBaker.
* k3b
可能这是最好的 CD/DVD 刻录工具。如果使用 GNOME,安装它需要依赖 KDE 的库,通过下面命令安装:
yum install k3b
如果要在 k3b 中启用所有编码的支持和程序支持,需要另外安装下面的软件:
yum install k3b-extras-freeworld vcdimager normalize transcode lame lame-libs
* DeVeDe
DeVeDe, 非常好的 dvd 制作工具,他能转变任何类型的视频格式到 DVD,通过下面命令安装:
yum install devede
14. 下载管理器
yum install wxdfast
yum install kdenetwork

15. PDF 阅读器
*evince
Fedora默认的pdf阅读器 Evince .如果没有安装,可以通过下面命令安装:
yum install evince evince-djvu evince-dvi
16. BT 客户端
* Transmission
yum install transmission
* KTorrent
ktorrent 是 KDE 用户替代的 BT 客户端。
yum install ktorrent
* Bittorrent
可以试试 bittorrent 这个 BT 客户端:
yum install bittorrent bittorrent-gui
* unrar
yum install unrar
* FTP 客户端
yum install gftp
* chm 阅读器
GNOME用户基于 gtk 开发的 chm 阅读器:
yum install gnochm
* eMule 客户端
yum install amule
17. 图形启动问题
在 Fedora 11 启动的时候,你也许看到一个蓝色的滚动条加载的画面,而不是 grub 的图形启动屏幕,之所
以出现这样的问题,是因为 Fedora 11 所使用的内核的模式设定选项的原因。为了能看到图形化的启动界
面,你必须编辑 grub.conf 文件,并添加一个 vga 分辨率上去,下面教你怎么做:

vi /boot/grub/grub.conf
这里你必须在内核文件的最后一行添加你自己的帧缓冲分辨率,像这样子:
title Fedora (2.6.29.4-167.fc11.x86_64)
root (hd0,9)
kernel /boot/vmlinuz-2.6.29.4-167.fc11.x86_64 ro
root=UUID=a61c8338-e373-4389-ae00-32942185f7c2 rhgb quiet vga=792(或者vga=ask)
initrd /boot/initrd-2.6.29.4-167.fc11.x86_64.img
vga=792 代表 1024×768 的分辨率,24 位色。

18.64位Fedora11 安装QQ并解决ibus输入中文(拼音)问题完美解决方案
一。安装QQ FOR LINUX
1.到http://im.qq.com/qq/linux/download.shtml 下载 linuxqq-v1.0.2-beta1.i386.rpm
2.安装QQ所依赖包
yum install ibX11.so.6
yum install libatk-1.0.so.0
yum install libc.so.6
yum install libcairo.so.2
yum install libdl.so.2
yum install libgcc_s.so.1
yum install libgcc_s.so.1
yum install libgcc_s.so.1
yum install libgdk-x11-2.0.so.0
yum install libgdk_pixbuf-2.0.so.0
yum install libglib-2.0.so.0
yum install libgmodule-2.0.so.0
yum install libgobject-2.0.so.0
yum install libgtk-x11-2.0.so.0
yum install libm.so.6
yum install libpango-1.0.so.0
yum install libpangocairo-1.0.so.0
yum install libpng12.so.0
yum install libpthread.so.0
yum install libstdc++.so.6

到你QQ的下载目录安装QQ,我这里是/home/用户名/下载
cd /home/用户名/下载
rpm -Uvh linuxqq-v1.0.2-beta1.i386.rpm
二。解决64位F11下QQ不能输入中文问题
F11默认自带的ibus输入法不用删除,到 http://rpmfind.net里找到 ibus-gtk-1.1.0.20090531-1.fc11.i586.rpm 并下载
然后执行下面操作:
yum install libibus.so.0
yum install libscim-1.0.so.8

到你的ibus-gtk-1.1.0.20090531-1.fc11.i586.rpm下载目录下执行 rpm -Uvh ibus-gtk-1.1.0.20090531-1.fc11.i586.rpm 安装
然后注销X 重启 ,就可以在Fedora11下用ibus 在QQ中完美支持(拼音)中文输入了。

19. 安装星际译王 F11源里有星际译王,和词库,直接可以安装
yum list StarDict*