2005-06-30

Installation von Ilias 3 beim AVG Trier

Heute habe ich Ilias 3 beim AVG Trier auf dem Linux Rechner installiert. Die ganze Installation hat anderhalbe Stunden gedauert.

Vor der Installation wurde pear mit dem Skript go-pear unter Konsole maricuri#>php go-pear aktualisiert und ein paar pear Pakete installiert. Danach wurde php.ini geändert und Apache neu gestartet. MySQL ist auch von 3.22 nach 4.02 aktualisiert. Mit dem URL http://mariecurie.dyndns.info/setup/setup.php kann man dann mit der Installation anfangen.

TCL工具命令语言简介

TD {
FONT-SIZE: 9pt
}













工具命令语言简介


索引

Tcl 语言



  • 没有固定的(fixed)文法

  • 由解释器(分析器)和执行命令的过程来定义

  • 大小写敏感


Tcl 基础



    脚本, 命令, 和字(word)


    Tcl 是基于字符串的解释型命令语言。它在语法上的简单性和语义上的通常的感官性的方式(common sensical approach)使这门语言易于学习和熟练。这个简短的


    教程将集中于最基本的概念,使你能尽快的起步。


    Tcl 脚本由一个或多个命令组成,用换行或分号分隔。


    command arg1 arg2 arg3 ...


    命令是基本的执行单元(element)。一个命令跟随着一个或多个字,这些字是(命令)参数(parameters or arguments), 字之间用空格或 tab 分隔。


    ex: puts stdout "My first Tcl script."


    = > My first Tcl script.


    求值(Evaluating)一个命令


    两步过程: 分析执行



  • 分析: Tcl
    不给字的的值提供任何意义。它只是完成简单的字符串操作,例如,变量替换。Tcl只进行一遍替换(每个字符被严格的扫描一次)。一次替换的结果不为了进一步的替换而被扫描。

  • 执行: 为命令的参数提供意义。Tcl 假定字序列的第一个字是命令,检查是否定义了命令,并且定位一个命令过程 来执行。


注意: 参数在缺省时是被引用的 -- 如果你想求值,你必须显式的提出要求


例如:



      set a 5
      set b a+8

    第一条命令把字符串 5 赋给变量 a。第二条命令把字符串
    a+8 作为新值存储在 b 中。要得到值 13,你必须显式的去求值,比如:


      set a 5

      set b [expr $a+8]


    每对方括号调用一次附加的求值。对于 Tcl 你必须记住的一件事是它只做你认为它将要做的事。求值的模型很直接了当。有一个单独的命令和零或多个参数。这些参数可以依次是必须被求值的有参数的命令。这些命令的返回值变成要被求值的最初的命令的参数。


    变量,命令和反斜线替换


    在 Tcl 中通过使用变量来维护状态,变量用"set" 命令来声明和实例化(instantiate)。


    例如:


    set loopCounter 0


    注意分开的变量声明是没有必要。使用美元标号来检索变量值,这对shell 程序员和 Perl 开发者是很熟悉的,在何时使用与何时不使用美元标号的相关规则上有细微的区别。


    例如:


    if
    ($loopCounter > 10) {
    do something
    }



    • $ 变量替换: 不声明变量 --
      它们都是任意长度的字符串类型。变量替换可以在一个字中的任何地方发生(例如
      button .b$num)。

    • [ ] 命令替换:
      在方括号中任何东西被作为一个 Tcl
      脚本来求值。

    • 反斜线替换: 转义符,用于 $、换行、引号等。


    引用和注释



    • 双引号: 空格,tabs,换行,分号被作为普通的字符对待(通常的
      $,命令,和反斜线替换正常发生)。

    • 花括号: 所有特殊字符失去特殊意义(不发生替换)。花括号延期求值。

    • 注释: 如果第一个非空字符是 '#',知道换行的所有东西都是注释。如果 '#'在其他任何地方出现,它被当作通常的字符。


    变量


      简单变量 有一个名字和一个值(被作为一个字符串存储)。

      数组是一组元素(element),每个元素有它自己的名字和值。数组名和元素名可以是任意的字符串 (有时叫做关联数组 来与要求元素名是整数的数组相区别)。


      例如:


      set yearTotal 0

      foreach month {Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec}
      {


      set yearTotal [expr $yearTotal+$earnings($month)]


      }


    Tcl 只实现了一维数组,但是多维数组可以通过通过连接多个索引成一个单一的元素名来模拟。


      set matrix(1,1) 140

      set matrix(1,2) 218


      set matrix(1,3) 84


      set i 1


      set j 2


      set cell $matrix($i,$j)


      => 218


      * 注意这里没有空格,三个元素名是 1,1
      1,21,3。 所以:


      matrix(2,5)


      不同于


      matrix(2, 5)


    表达式


      表达式组合操作数和操作符来建立一个新值。

      语法: expr arg ?arg arg ...?

    操作符



    • 关系操作符 (, >=, ==, !=)
      返回 0 (假) 或 1 (真)。

    • 位操作符 (&, |, ^, >, ~)
      要求操作数是整数。
        >
        使用右操作数作为移位记数(单位是位)。在左移时,零被移入低位(low
        order) 字节。右移是“算术右移”,对正数移入零,对负数移入一(不象
        ANSI C,它是依赖机器的)。~ 是一的补码(one's
        complement)操作符,它翻转所有位。


    • 选择操作符是三重(ternary)操作符 ?:
      ,如果第一个操作数是真,求第二个操作数的值,否则求第三个操作数的值。
        语法: expr { ($a



    替换


    对于表达式操作数替换以两种方式发生。



    1. 通过通常的 Tcl 分析机制

    2. 通过表达式求值器(evaluator)
      在求表达式的值时完成附加的一轮变量和命令替换


    例如:


      expr { 2*sin($x)

    花括号致使 Tcl 分析器不做对 x 做变量替换。当变量求值器遇到美元号的时候,它自己完成变量替换。这对
    expr 命令是非常有用的,而且对其他的象 while
    这样的的命令也是有用的, while
    重复的求一个表达式的值并希望每次都有不同的结果。


    例如:



      set pow 1

      while {$pow


    如果省略了{$pow的花括号,while
    的参数将是一个不变的表达式如 1字符串操纵


    Tcl 允许一些操作符有字符串操作数,如: 、=、 == 和 !=
    。对所有其他的操作符,操作数必须是数值。如果一个或两个操作数不能做数来分析,Tcl
    将使用字符串比较。


    例如:



      set x 0
      set y 00
      if {$x==$y} {
      ...
      }

      将使用算术比较并且这个测试将求值成 1。要强制对数值操作数进行字符串比较,使用象string compare 这样的命令。


    类型和转换


    Tcl 求表达式的值尽可能的得出数值。只对一个或两个操作数不象是数值的关系操作符进行字符串操作。对有着不同类型的操作数自动进行转换:



    • real 和 int: int => real

    • 非数值字符串 和 int/real: int/real => 字符串


    还有,分别的使用 doubleintround 来转换intreal 和转换 real 成 int。


    精度



    • 整数 (int 类型): 32 位精度

    • 实数 (double 类型): 64 位精度

    • 在求一个表达式的值时数值始终被用内部形式保持,只在必要时才转换回字符串。

    • 转换实数成字符串缺省是 6 位有效数字(significant digits)。设置 Tcl 全局变量 tcl_precision可以变更有效数字。注意:在一个使用
      IEEE 浮点数的机器上设置 tcl_precision
      成 17 将保证转换出的字符串不丢失精度(例如,当一个表示式被转换成字符串并在以后要在一个数值计算中使用时)。


    列表


    译注:在 Tcl
    中用一对问号表示其中的部分是可选的,在其他语言的语法描述中这项任务通常用方括号完成。


      一个列表是一组有序的元素(用空格分隔),每个元素都可以有任意的字符串值。列表可以是嵌套的。





















































      命令结果
      concat ?list list ...?连接多个列表成一个单一的列表(每个
      list
      中的所有元素都变成结果列表中的元素)并返回这个新列表。
      join list ?joinString?joinString
      作为分隔符把列表的元素连接到一起并返回结果,
      joinString 缺省是空格。
      lappend varName value
      ?value ...?
      把每个 value 作为列表的元素添加到变量varName 上并返回这个变量的新值。如果变量不存在则建立它。
      lindex list indexlist 返回第 index
      个元素 (0 参照第一个元素)。
      linsert list index
      value ?value ...?
      list 的第index 个元素的前面插入所有的
      value 并返回这个新列表(0
      参照第一个元素)。例如:
      set x {a b {c d} e}
      => a b {c d} e
      linsert $x 2 X Y Z
      => a b X Y Z {c d} e
      list ?value value ...?返回一个元素是所有的 value
      参数的列表。
      llength list返回在 list 中的元素数。
      lrange list first last返回一个list 的从 first
      last 元素组成的新列表。如果 last
      是 end,它选择 list 的直到最后的所有的元素。
      lreplace list first
      last ?value value ...?
      用零个或多个新元素替换 list
      的从 first last 的所有元素,value
      参数就是这些新元素,返回这个新列表。
      lsearch ?-exact? ?-glob?
      ?-regexp? list pattern
      返回在 list 中匹配 pattern 的第一个元素的索引,如果没有则返回
      -1。 选项开关选择一项模式匹配技术(缺省是:
      -glob)。
      lsort ?-ascii? ?-integer?
      ?-real? ?-command command? ?-increasing? ?-decreasing?
      list
      返回把 list 的元素进行排序的一个新的列表。开关决定比较函数和排序的顺序
      (缺省是: -ascii -increasing)。
      split string ?splitChars?splitChars
      的实例来分割 string
      并把这些实例之间的字符转变成一个新列表的元素并返回这个新列表。


    控制流




























      if test1 body1 ?elseif
      test2 body2 elseif ...? ?else bodyn?
      while test body
      for init test reinit
      body
      foreach varName list
      body
      switch ?options?
      string pattern body ?pattern body ...?

      switch ?options? string { pattern body ?pattern body
      ...? }
      选项: -exact (精确匹配), -glob (同于字符串匹配),
      或 -regexp (正则表达式匹配)。如果一个脚本是 '-', switch
      使用下一个模式的脚本 (比如说,多个模式可以执行同一个脚本)。

      default 模式用于捕捉不匹配(unmatched)的模式。

      eval arg ?arg arg ...?用于建立和执行 Tcl 脚本的通用的建造块。它接受任意数目的参数,用空格作为分隔符把所有的 args 连接起来,接着把结果作为一个 Tcl 脚本来求值并返回它的结果,这在你需要进入(force)另一分析层次时很有用。


    过程


      过程是在一个可以重用的包装模块中的通常的 Tcl 命令。在任何时候都可以定义过程,并可以用传值或传引用来传递参数。除非显式的使用return命令返回,否则返回的值是过程体的最后一条语句的结果。

      语法:


      proc procedure_name arguments ?args? body

    例子:


      proc plus {a b} {expr $a+$b}

    参数


    在一个过程中使用的参数是本地的。要引用全局变量,在过程的生存期间global 命令在过程中绑定变量(译注:就是访问全局变量)。参数可以有缺省值并象下面这样指定:


      proc inc {value {increment 1}} {

      expr $value+$increment


      }


      incr 42 3


      => 45


      incr 42


      => 43


    如果有的话,缺省的参数必须是过程的最后一个参数。如果没指定一个缺省则要求有这个参数。


    args 来支持可变数目的参数,它被放在参数列表的最后。过程使用args
    参数作为一个列表,它的每个元素都是额外的参数。如果没有额外的参数,则设置args 为空串。


      proc sum args {

      set s 0


      foreach i $args {


      incr s $i


      }


      return $s


      }


      sum 1 2 3 4 5


      => 15


      sum


      => 0


    引用调用


    upvar
    命令提供一个访问一个过程上下文外部的变量的通用机制。可被用于访问在一些其他的活跃的过程中的全局或本地变量,但它最常用于传递数组(因为没有数组的值,只有数组的元素)。


    例子:


      proc parray name {

      upvar $name a


      foreach el [lsort [array names a]] {


      puts "$el = $a($el)"


      }


      }


      set info(age) 37


      set info(position) "Vice President"


      parray info


      => age = 37


      position = Vice President


    upvar 也可以被用于访问在调用栈的不同层次上的变量。


      upvar #0 other x

    通过本地变量 x 来使全局变量 other可访问(#0 指定访问全局变量 other而不管调用栈的层次)。


      upvar 2 other x

    使在当前的过程的调用者的调用者中的变量 other作为本地变量 x 访问(2 指定在调用栈中两层之上)。


    建立新的控制结构


    uplevel 是一个 evalupvar 之间杂交的命令。它象eval 那样把它的参数作为一个脚本来求值,但象upvar那样在一个不同的栈层次的变量上下文中求脚本的值。使用uplevel,可以定义作为 Tcl 过程的一个新的控制结构。


    例子:


      proc do {varName first last body}{

      upvar $varName v


      for {set v $first} {$v 1 4 9 16 25


    象upvar 一样,uplevel 接受一个可选的初始参数来指定一个显式的栈层次。


    字符串操纵


      Tcl 是完全 8 位的(不只是 ASCII 7 位子集)。Tcl 不为 ASCII 子集外的字符提供任何解释。Tcl 存储字符串使用一个 null (零)字符作为终结,所以不可能在字符串中存储零字符。要表示二进制数据,要把它转换成包括非零字符的形式,例如,把字节转换成相应的十六进制的值。

      通配符-式样(Glob-style)模式匹配


      Tcl 模式匹配的最简单的形式。


      语法:


      string match pattern string

    匹配则返回 1,不匹配返回 0。在匹配中使用特殊的字符串



















    *匹配零个或多个字符的任何序列。
    ?匹配任何单一字符。
    [chars]匹配在 chars 中的任何单一字符。如果
    chars 包含一个 a-b 样式的序列,在
    a 和 b 之间的包括的任何字符都匹配。
    x匹配单一字符 x 。这提供了避免解释模式中的字符
    *?[] 的一种方式。

    用正则表达式的模式匹配


    正则表达式可以有多层的结构。基本的建造块叫做原子,并且最简单的正则表达式的形式由一个或多个原子组成。一个正则表达式要匹配一个输入字符串,输入中必须有一个子串(substring),每个正则表达式的原子(或其他成分)匹配子串的相应的部分。例如,正则表达式
    abc 匹配包含 abc 的任何字符串比如 abcdef
    xabcy


    举个例子,下面的模式匹配要么是十六进制数要么是十进制数的任何字符串。


      ^((0x)?[0-9a-fA-F]+|[0-9]+)$

    语法:


      regexp ?-nocase? ?-indices? {pattern}
      input_string ?variable ...?

    如果没有匹配则返回 0,如果有一个匹配则返回 1。


    注意,模式必须被包裹(enclosed)在花括号中,这样字符
    $[、和 ] 可以被传递给(pass
    through to) regexp 命令而不触发变量或命令替换。


    如果调用 regexp
    有在输入字符串之后的参数,每个参数都被作为一个变量的名字对待。第一个变量被添入匹配整个正则表达式的子串。第二个变量被添入与模式中最左的圆括号中的(parenthesized)子表达式(subexpression)相匹配的子串的相应的部分,第三个变量被添入匹配下一个子表达式并以次类推。如果有变量名比圆括号中的子表达式多,则额外的变量被设置成空串。


    例子:


      regexp {([0-9]+) *([a-z]+)} "Walk 10
      km" a b c

    变量 a 将被持有值 "10 km", b 将持有 "10" 而 c 将持有 "km"。


    开关 -nocase指定匹配大小写不敏感。开关 -indices 指定增加的变量不应被添入匹配的子串的值,而是给出在输入字符串中子串的范围的最先和最后的索引的一个列表。


    例子:


      regexp -indices {([0-9]+) *([a-z]+)} "Walk 10 km"a b c

    变量 a 将被持有值 "5 9",b 将持有 "5 6" 而 c 将持有 "8
    9
    "。















































    字符意义
    .匹配任何单一字符。
    ^匹配在行首的 null 字符串。
    $匹配在行尾的 null 字符串。
    x匹配字符 x
    [chars]匹配任何在 chars 中的单一字符。如果第一个字符是
    ^, 匹配不是在 chars 中的其余字符的任意单一字符。在
    chars 中的 a-b 样式的序列被作为在a
    b 之间包含的所有 ASCII
    字符的速写。如果在 chars 的第一个字符(可能跟随着 ^) 是 ],它被作为字符(literally)对待(作为chars 的一部分而不是一个终结符)。如果一个 - 出现在 chars 的最前面或最后面,它被作为字符对待。
    (regexp)匹配与正则表达式 regexp 匹配的任何东西。用于组织和标识匹配子串的各部分。
    *匹配有零个或多个前面的原子的匹配的一个序列。
    +匹配有一个或多个前面的原子的匹配的一个序列。
    ?匹配要么是空串要么是前面的原子的一个匹配。
    regexp1
    | regexp2
    匹配与 regexp1regexp2 匹配的任何东西。

    为替换而使用正则表达式


    语法:


      regsub ?-nocase? ?-all? pattern
      input_string replacement_value new_string

    regsub 的第一个参数是正则表达式模式。如果在输入字符串中发现一个匹配,regsub 返回 1, 否则它返回 0 (同于 regexp 命令 )。如果模式被匹配,输入字符串中的子串被用第三个参数所替换并且新串被存储在第四个参数中。如果没发现匹配,第四个参数包含原始的输入串。使用了两个开关: -nocase等价于 regexp 命令的 nocase 开关,-all 导致在输入串中所有匹配的子串都被替换。


    格式化输出


    format 命令提供了象 ANSI sprintf那样的设施。


    例子:


      format "The square root of 10 is
      %.3f" [expr exp(10)]
      => The square root of 10 is 3.162

    其他的格式指定符(specifier):


      %s 字符串
      %d 十进制整数
      %f 实数
      %e 科学计数法(mantissa-exponent)表示的实数
      %x 十六进制数
      %c 字符

    格式化命令也被用于改变一个值的代表。例如,用 %c 格式化一个整数生成这个整数代表的 ASCII 字符。


    用 scan 分析字符串


    语法:


      scan parse_string format_string
      ?variable ...?

      例子:


      scan "16 units, 24.2 margin"
      "%d units, %f" a b
      => 2


    字符函数


    字符串操纵命令是 string 命令的选项。


      string index "See Spot run." 5
      => p

      string range "See Spot run." 5 8
      => Spot


      string range "See Spot run." 5
      end
      => Spot run.


    查找和比较


    first last 查找一个子串返回子串的第一个字符的位置(以0 开始,对应输入串中第一个字符以)。如果没发现匹配则返回 -1。


    string first th "The trains were thirty
    minutes late this past week"
    => 16


    string last th "The trains were thirty minutes late this past week"
    => 36


    如果串匹配 Compare 返回 0,如果第一个比第二个排序在前返回 -1,如果第一个比第二个排序在后返回 1。


    string compare twelve thirteen
    => 1


    string compare twelve twelve
    => 0


    长度, 大小写转换, 修剪(trimming)


    string length "not too long"
    => 12


    string toupper "Hello, World!"
    => HELLO, WORLD!


    string tolower "You are lucky winner
    13!"
    => you are lucky winner 13!


    string trim abracadabra abr
    => cad


    string trim 接受一个要修剪的字符串和可选的一组修剪字符,并且从它的参数字符串的开头和结尾删除所有的修剪字符的实例,返回修剪后的字符串作为结果。trimlefttrimright 选项除了只是在字符串的开头或结尾删除之外,以相同的方式工作。trim 命令最常用于删除额外的白空格,如果没指定修剪字符,它们的缺省是白空格(空格、tab、换行、回车、和 form feed)。


    资源


    上面的许多例子取自 John Ousterhout 的书:
    Tcl and the Tk Toolkit
    作者: John K. Ousterhout
    出版商: Addison Wesley, 1994


    尽管有许多关于Tcl语言的书,依我看这本书是最好的之一。


    后宫佳丽何止三千 中国历代后宫构成图

    宫女,泛指被选入宫中供帝王声色享用的女子。大致上由三部分人组成:一是礼法允许,历代沿制的嫔妃类。《礼记·昏仪》说:“古者天子后立六宫、三夫人、九嫔、二十七世妇、八十一御妻。”历代封建帝王一人占有成千上万的女子,根据其好恶程度,将宫中女子分成若干等级。如隋炀帝继位后,认真按照《礼记·昏仪》中之说,置三夫人九嫔二十七世妇八十一御妻。贵妃、淑妃、德妃是为三夫人,品正第一。顺仪顺容顺华、修仪修容修华、充仪充容充华是为九嫔,品正第二。婕妤十二人,品正第三。美人才人共十五人,品正第四。宝林二十四人,品正第五。御女二十四人,品正第六。采女三十七人,品正第七。总共一百二十四人。这是宫女中品位最高的。又如唐制,宫中设皇后,皇后之下为贵妃、德妃、淑妃、贤妃;妃之下又有昭仪、昭容、昭媛、修仪、修容、修媛、充仪、充容、充媛,谓之九嫔;九嫔之下有婕妤、美人、才人各九人;再就是宝林、御女、采女各二十七人。上述女子是宫中级别高、有地位的宫女,这只是后宫成群宫女中的一小部分。二是宫中数不清的女官和宫娥等等,这部分女子可随时召来,封以头衔,博取帝王一时之欢心。三是宫中庞大的女乐倡优,她们色艺出众,专供帝王享乐和应酬之需。

    (一)先秦时代

    早在先秦时代,随着奴隶制的产生,专供天子诸侯取乐的宫中美女,倡优和女乐就产生了。古书中对此有所记载:“昔者桀之时,女乐三万人,晨噪于端门,乐闻于三衢。”(《管子·轻重甲》)“昔桀女乐充宫室,文绣衣裳。故伊尹高逝游薄,而女乐终废其国。”(《盐铁论》)

    夏桀拥有女乐三万,足可见其荒淫无度。古人把夏桀灭亡的原因归罪于君王沉迷女色而荒废政事。

    殷商时代的商纣王,在赏玩女乐倡优等宫女时,更是有一种变态心理。他不满足于自己宫中的女色,还随意发动战争,劫掠诸侯的女乐,大施淫威。甚至设酒池肉林,命宫中男女裸体追逐于其间,他一边饮酒一边观赏,通宵达旦。并广征赋税,营造极其壮丽的苑台、苑圃。《史记·殷本纪》记载:“(纣)好酒淫乐……使师涓作新淫声,北里之舞,靡靡之乐……大聚乐戏于沙丘,以酒为池,悬肉为林,使男女裸,相逐其间,为长夜之饮。”

    至春秋战国的动乱年代,君王广罗女乐倡优,嗜玩声色歌舞已成风气。《吴越春秋》卷一记载,楚庄王初即位时,“淫于声色,左手拥秦姬,右手抱越女”;黄宪《天禄阁外史》卷四中说,魏王饮宴时,楚姬舞于前,吴姝歌于后,越女鼓瑟于左,秦娥泛筝于右;任《述异记》中,则说吴王夫差的后宫竟有“宫妓数千人”。

    (二)秦汉时期

    秦汉时代是礼教得以发展与完善的时期。一方面,刘向的《列女传》、班昭的《女诫》以及《礼心》等书对妇女的贞操德行加以苛严的约束,与此同时,统治者大力提倡贞节,表彰节妇。如秦始皇为褒奖巴清寡妇而修筑女怀清台以劝导贞节;西汉宣帝于神爵四年(公元前五十八年)诏赐贞妇顺女帛;东汉安帝也曾于“元初六年二月,诏赐贞妇有节义谷十斛,甄表门闾,旌显厥行”。(《后汉书·安帝本纪》)但是另一方面,统治者自己却占有大量女乐、倡优等宫女,供他们享乐。

    《史记·秦始皇本纪》描述说:“咸阳之旁二百里内宫观二百七十,复道甬道相连,帷帐钟鼓美人充之,各案署不移徙。”其后宫之盛,可想而之。秦始皇把从六国掠来的上万名宫女据为已有,并大修宫室供女乐居住表演。计有“关中离宫三百所,关外四百所,皆有钟磬、帷帐,妇人倡优”共达数万人。唐代杜牧曾作《阿房宫赋》,极写秦代宫廷生活的荒淫以托古讽今:“妃嫔媵嫱,王子皇孙,辞楼下殿,辇来于秦,朝歌夜弦,为秦宫人。明星荧荧,开妆镜也;绿云扰扰,梳晓鬟也;渭流涨腻,弃脂水也;烟斜雾横,焚椒兰也。雷霆乍惊,宫车过也;辘辘远听,杳不知其所之也。一肌一容,尽态极妍,缦立远视,而望幸焉。有不见者,三十六年。”把秦朝帝王淫逸,宫女如云和宫女们竭力妆扮争媚,盼望皇帝来临的情形写得形象生动。但是,“有不见者,三十六年”,也就是说,秦始皇在位三十六年,有的宫女幽闭于宫中,终身未能见到皇帝。

    西汉自高祖以来,历代皇帝不论荒淫风流与否,其后宫蓄藏的美女,数量之众相当可观。据汉元帝之时贡禹的上疏,可知“武帝之时,宫人达数千”。汉武帝好大喜功又风流放荡,他在宫中收纳数千名宫娥、女乐,一方面恣意享乐,一方面以此显示天子的特权与威严。昭帝、宣帝效法武帝,把后宫美女置于园陵游乐。元帝继位后,嫌后宫女子年长色衰,下令选天下美女入宫,由于选女过众,来不及逐个召见,就令画工毛延寿、樊青等将美女一一画来,他再按图挑选。宫女们为得到皇帝召幸,纷纷贿赂讨好画工。而毛延寿等画工乘机恃权索贿。著名的美女王昭君就是因为自恃貌美,又不愿巴结行贿老画工,以致久久冷落宫中,直至被赐嫁匈奴和亲时,才得以见到元帝。元帝见昭君倾国倾城之貌,后悔难言,追惩画工而解恨。至成帝、哀帝时,也因袭先制,效法祖宗例规。汉成帝好色,他刚继位,皇太后就下令为他广选良家女子入宫。据记载,西汉各帝继政期间,因为宫女过多,时有放出宫女之事,但大批宫女放出宫门,并未减弱帝王荒淫纵欲,宫廷仍是美女如云,淫乱成风。

    到了东汉,后宫中除皇后、贵人外,置美人、宫人和采女三类。采女,就是定期从民间采择来的十三岁以上二十岁以下的美女。虽然光武帝曾简略诸制,宫女数量一度有所减少,但到了安帝时,宫女又增加了。《后汉书·后妃纪》记载,东汉末年,宫女达数千人。《后汉书·桓帝邓皇后传》中说,桓帝时,“多内幸,博采宫女至五六千人。”此外,《后汉书·吕强传》中记载了汉末灵帝的淫纵,灵帝后宫中,采女有数千人之多。他喜好胡乐胡舞,就经常让宫女们在西园表演,供他赏玩。有时,他命令采女们在西园中装扮成客舍主人,他自己身穿商人服饰,来到客舍中与女主人喝酒调情,游戏玩乐。灵帝还在西园中修筑一座裸泳馆,每到夏天,他就到这里来避暑,命令十四到十八岁的宫女脱光上衣,只穿一条裤衩下水池游泳,他或饮酒欣赏,或下池去与宫女们一起裸浴。灵帝沉湎于淫逸,对宦官擅权视而不见,以至国家衰微,天下大乱,群盗蜂起,民不聊生。

    Wurmliste

    Ab und zu fragen mich meine Kollege, wieso ihre Rechner keine Netzverbingdung mehr haben. In der letzten Zeiten sind manche Rechner wegen des Wurms gesperrt. Hier kann man die Liste anschauen, ob seine IP Adresse schon gesperrt oder nicht.

    2005-06-28

    Graphik schützen

    Ein Album für CHINA-WOCHE habe ich mit dem Open-Source Software "gallary" eingerichtet. Um den Server zu entlasten und Traffic zu vermindern, habe ich eine .htaccess Datei in dem Verzeichs "album", wo die Bilder gespeichert sind, gelegt mit der folden Zeilen:


    SetEnvIfNoCase Referer "^http://ilias3test.uni-trier.de.de/" local_ref=1


    Order Allow,Deny
    Allow from env=local_ref
    Mit dem Rewriterule komme ich immer noch nicht zurecht, deswegen keine Rewrite Regel verwendet.

    Referenz:
    Der Artikel Preventing Image 'Theft' beschreibt genau, wie ein Webmaster seine Image Datei schützen kann.

    Erklärung von SetEnvIfN0Case Apache HTTP Server 1.3 Documentation .

    2005-06-27

    RewriteRule in .htaccess

    blocking MSIE user agents and sending them to the site http://ieblock.html using a RewriteCond and RewriteRule in .htaccess file.

    [snipping s9y stuff]
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_USER_AGENT} .*MSIE.* [NC]
    RewriteRule ^(.*) ieblock.html [L]
    [snipping more s9y stuff]
    RewriteRule (.*.html?&!^impressum.html&!^ieblock.html) index.php?url=/$1 [L,QSA].oO(tho I'm not sure if you actually need to explicitly allow access here again, I might give it a shot later)


    #anti-spamhosts
    SetEnvIfNoCase Referer .biz spammer=yes
    SetEnvIfNoCase Referer 6q.org spammer=yes
    SetEnvIfNoCase Referer 8gold.com spammer=yes
    SetEnvIfNoCase Referer 911easymoney.com spammer=yes
    SetEnvIfNoCase Referer best-xp-software.biz spammer=yes
    SetEnvIfNoCase Referer canadianlabels.net spammer=yes
    SetEnvIfNoCase Referer chat-nett.com spammer=yes
    SetEnvIfNoCase Referer condodream.com spammer=yes
    SetEnvIfNoCase Referer crepesuzette.com spammer=yes
    SetEnvIfNoCase Referer crescentarian.net spammer=yes
    SetEnvIfNoCase Referer debt-help-bill-consolidation-elimination.com spammer=yes
    SetEnvIfNoCase Referer fidelityfunding.net spammer=yes
    SetEnvIfNoCase Referer flafeber.com spammer=yes
    SetEnvIfNoCase Referer freakycheats.com spammer=yes
    SetEnvIfNoCase Referer future-2000.net spammer=yes
    SetEnvIfNoCase Referer gb.com spammer=yes
    SetEnvIfNoCase Referer highprofitclub.com spammer=yes
    SetEnvIfNoCase Referer houseofsevengables.com spammer=yes
    SetEnvIfNoCase Referer learnhowtoplay.com spammer=yes
    SetEnvIfNoCase Referer mediavisor.com spammer=yes
    SetEnvIfNoCase Referer newtruths.com spammer=yes
    SetEnvIfNoCase Referer nutzu.com spammer=yes
    SetEnvIfNoCase Referer oiline.com spammer=yes
    SetEnvIfNoCase Referer onlinegamingassociation.com spammer=yes
    SetEnvIfNoCase Referer online-----poker.com spammer=yes
    SetEnvIfNoCase Referer popwow.com spammer=yes
    SetEnvIfNoCase Referer psxtreme.com spammer=yes
    SetEnvIfNoCase Referer ronnieazza.com spammer=yes
    SetEnvIfNoCase Referer royalmailhotel.com spammer=yes
    SetEnvIfNoCase Referer spoodles.com spammer=yes
    SetEnvIfNoCase Referer sportsparent.com spammer=yes
    SetEnvIfNoCase Referer smsportali.net spammer=yes
    SetEnvIfNoCase Referer stmaryonline.org spammer=yes
    SetEnvIfNoCase Referer terashells.com spammer=yes
    SetEnvIfNoCase Referer tigerspice.com spammer=yes
    SetEnvIfNoCase Referer thatwhichis.com spammer=yes
    SetEnvIfNoCase Referer tmsathai.org spammer=yes
    SetEnvIfNoCase Referer uaeecommerce.com spammer=yes
    SetEnvIfNoCase Referer yelucie.com spammer=yes

    SetEnvIfNoCase Referer card spammer=yes
    SetEnvIfNoCase Referer casino spammer=yes
    SetEnvIfNoCase Referer holdem spammer=yes
    SetEnvIfNoCase Referer phentermine spammer=yes
    SetEnvIfNoCase Referer pills spammer=yes
    SetEnvIfNoCase Referer poker spammer=yes
    SetEnvIfNoCase Referer profit spammer=yes
    SetEnvIfNoCase Referer texas spammer=yes

    deny from env=spammer

    2005-06-26

    Ein Bug von Wordpress der Version 1.5.1.2

    Heute habe ich festgestellt, dass WordPress 1.5.1.2 einen Bug bei Konfiguration der "General Options" hat. Wenn man beim default Character-set "UTF-8" für die Option "Tagline" ein paar chinesische Zeichen angibt und speichert, kann man danach gar keine Seite mehr öffnen. Was schlimmes ist, wird keine einzige Fehlermeldung ausgegeben, und im Apache's Error-log sieht man auch gar nichts darüber. Keine Panik! Um Blog wieder online zu bringen, ist es notwendig, in der MySQL Datenbank den Wert blogdescription in der Tabelle "wp_options" zu löschen oder ändern.

    Wörter

    06.07.2005
    dank der zuvorkommenden Kooperation von jm.
    im Verlauf der Arbeit stand Herr N.N. mehrfach mit Rat und Tat zur Seite, ihm gilt unser besonderer Dank.

    02.07.2005
    Endemie f.-n 地方病(如山区的甲状腺肿大)
    endemisch: (医)地方性的(传染病)

    Microsoft-Übervater Bill Gates
    lotsen: 为领路;说服去某处(jn. mit ins Kino lotsen,说服某人一块儿去电影院)

    26.06.2005
    schleichen:蹑手蹑脚地走
    sich schleichen:偷偷地走
    schleichend:缓慢的,渐进的

    aberwegig:错误的,不恰当的

    proprietärer Software
    Adept m –en 门徒,信徒,追随者
    Linux-Adepten

    London ist die teuerste Stadt Europas. Weltweit sind bei den Lebenshaltungskosten nur die japanischen Städten Tokio und Osaka teurer.

    Krizel: 潦草的字迹,鬼画符
    abspecken:vi. 减肥 vt. 缩小
    austricksen:用智谋骗过

    20.06.05
    gähnen:vi. 打呵欠

    Beifall vt. 赞同,赞许
    wogen: vi. 波涛汹涌
    rüffeln vt. 责备,训斥
    Disput m. –e 辩论,争论(雅)
    etwas verfällt jm. 落入某人之手
    darauf verfallen, etwas zu tun:猛地想起做某事
    Er verfiel in den gleichen Fehler. 他又犯了同样的错误。
    anstiften: 策划,挑起
    jm. zu etwas anstiften煽动,唆使

    fortan:(雅)从此以后
    kokketieren: mit etwas kokketieren 卖弄,炫耀
    zulegen: sicht etwas zulegen 添加;购置
    zulegen: vi. 加快速度;发胖

    zerrütten: (过度劳累而)损害,伤害(身体健康);破坏(婚姻)

    Trophäe:(体育比赛等)银杯

    22.05.05:
    Mutationen (生物学上的,与Modifikation相对)突变
    Desinfektion 消毒
    Veterinär m -e 兽医
    Veterinär-, Forst- und Landwirtschaftsbehörden
    Vorbeugungs- und Quarantänemaßnahmen ergreifen
    Quarantäne 检疫,隔离
    brüten vi. 孵化;(口语)苦思,冥想;想出坏主意
    Zugvogel:候鸟
    Pore: f. –n 毛孔,细孔
    Cannes嘎纳(地名)
    kümmeln vi. 聚一起喝酒
    Kumpel m. 矿工
    Grube f. –n 沟,槽,矿井
    eine Grube ausheben:挖一个深沟
    grübeln vi. 苦思,冥想
    Alarm schlagen:拉响警报
    überhasten: vt. 匆匆忙忙的做
    überhastet 性急的,匆忙的

    Glatze f. –n 秃顶
    eine Glatze bekommen/haben 头秃顶了

    mutmaßlich: 可能的,猜想的
    der mutmaßliche Täter 犯罪嫌疑人
    vorhalten: jm. etwas vorhalten 责备,批评,告诫

    patzen: vi. 马虎的工作,草率从事
    Patzer 干事草率的人

    Milz: f. –en 脾脏

    Sperma n. –s 精液
    Klistier n. –e 灌肠

    03.05.05
    axillar: 腋下的
    rektal:直肠的

    30.04:
    Minderwertigkeit: (身体上,精神上,社会地位上的)自卑感
    die Seine: 塞纳河

    29.04.05:
    Purzel: (可爱的,滑稽的)小家伙, einen Purzel machen翻一个跟斗
    purzeln vi. 跌倒,摔倒,栽跟斗

    Rivalität: 竞争,对抗
    zurichten: (口语)损坏,用坏(家具,鞋)

    09.04.05:
    kolossal: 巨大的,庞大的(建筑物,熊);非常,及其
    brummen: (马达,变压器)嗡嗡响;剧痛,疼痛;
    brummen:含糊地说

    Rußfilter 炭黑过滤器
    Waffen-Embargo gegen China: 针对中国的武器禁运
    02.04:
    Geselle, m –n 满师的徒工
    Aufbewahrung:遗体安放

    Bumerang: m. 飞去来器
    Efeu: 常春藤
    Dossier: 卷宗,案卷
    Dingsbums n./m. (俗,贬)某人,某事
    Dingsda 贬,某人,某事,某处
    Waschlappen: 毛巾,浴巾

    bezichtigen: 指控,指责
    Jm. der Lüge bezichtigen 指责某人说谎

    Leutnant: 少尉
    Major, m. –e 少校

    am gestrigen Sonntag

    Solitär: 单人玩的游戏

    Kleinkram:(口语)小事,琐碎事

    küren:(雅)选举,推选,选择
    Alliteration:(诗律)头韵,首音相同

    huldigen: 表示敬意,致敬
    dem Fortschritt huldigen:崇尚进步
    sich einen Ast lachen:捧腹大笑
    Darauf bin ich grad gestoßen und mir nen Ast gelacht:
    nörgeln:抱怨,发牢骚
    an allem nörgeln / über alles nörgeln
    zermürben:消耗,折磨

    schwunghaft: (生意)兴旺的,生气勃勃的
    jm. das Handwerk legen: 停止某人的恶劣行径
    Microsoft will die Aktivierung frischer Installationen von Windows XP über das Internet fallweise nicht mehr zulassen, um Raubkopierern das Handwerk zu legen.

    erklimmen: (经过努力)达到

    kündig: 内行的,有经验的
    sich bekennen:承认,招供
    sich zu jm./etwas bekennen:拥护, sich zu seinen Freund bekennen 为朋友辩护
    Marotte: f. –n 奇想,幻想

    Nippel: m. ;螺纹接套
    sich verrenken:(谑)不自然的扭歪肢体
    schelmisch: 恶作剧的,戏谑(xue)的,调皮的
    lasziv: 淫荡的,好色的

    Bluff: 恐吓,诈骗

    Kuratorium: 董事会,管理委员会

    Mit ihrem Engagement für das Gemeinwohl sei die Gattin des Bundeskanzlers ein Vorbild für

    Letztmalig 最后一次的

    Lawinen reißen mindestens acht Skifahrer in den Tod 雪崩让至少八人丧命。

    Koralle f, -n 珊瑚装饰品
    Korallenriffe 珊瑚礁石

    fackeln: 犹豫不决
    Orgie: 狂欢,纵酒宴乐

    31.01.2005:
    sich abkehren lassen: 抛弃;转过身去
    banal: alltäglich, nichtssagend

    wittern: 察觉到,预感到
    Witterung:(人和动物散发的)气味;(长期的)天气

    *: Asterisk
    Zank: m. 口角,争吵
    Zankapfel: 争端(源自希腊神话,三女神因为争夺金苹果而不和)
    vorzeitig: 过早的
    vorzeitige Abreise 提前启程
    nebst: mit
    vertagen: 使延迟
    Die Verhandlung wurde vertragt. 谈判推迟了。
    schleppend: 慢条斯理的,缓慢的
    schleppende Redeweise (Melodie), schleppende Unterhaltung 不带劲的谈话
    entwenden: 偷窃(雅)
    jm. etw. entwenden
    Frustration: 失望,挫折,失意
    Frustrieren:挫败,使受挫(Plan),使失望(Person)

    straff: 拉紧的(绳子),简洁的(文体)

    ansprangern: 谴责,严厉批评

    Leisetreter:拍马屁的人,虚伪的人
    Schleier: m. – 面纱,纱头巾
    schleierhaft: 费解的,不明白的
    Inventar n. (企业和个人财产)清单,(企业和个人所属的家具什物等)财产,动产
    Kompromittieren 使丢面子,使出丑
    dementieren (官方正式的)否认],辟谣
    eindringlich 紧迫的,迫切的,强烈的 (Warnung, Bitte)
    sich täuschen 误会,弄错
    glücken 成功,如愿以偿 (es ist mir geglückt, die Verbindung herzustellen)
    kappen:剪去,砍去(树枝);抓住,捉住(小偷)
    Pendant:对应物
    deponieren:存放,寄存 Geld auf der Bank deponieren
    abstreiten:否认
    bekunden:表达,表明 Abscheu (Reue) bekunden
    postulieren: 假设
    zerfetzen: vt. 撕碎,扯破
    pathologisch: krankhaft
    bizarr:不寻常的,稀奇的;怪癖的,古怪的
    prädestiniert: 天生就是做…的 für etwas prädestiniert
    verschleiern: 用棉纱遮盖
    Verschleiß:磨损,损耗
    prallen: gegen etwas prallen 猛烈碰撞
    hiesig: 本地的
    vergeuden: 浪费,花费 (Kräfte, Zeit)
    Caritas: f. 天主教慈善机构
    langwierig: 棘手的,麻烦费力的
    absegnen: 上司的赞同
    heikel: 困难的,棘手的,尴尬的
    aufgeschmissen: 不知所措的,无能为力的 (只作表语)
    ablecken: 把…舔干净
    ächten: 谴责,唾弃
    Munition:子弹,实弹
    auf etwas aufprallen:撞上,碰撞
    sich schneuzen: 鼻涕

    20.03.2004:
    flunkern:(开玩笑时的)撒谎,哄骗
    Schwätzer: 嘴不紧的人,空谈家
    schwatzen/schwätzen:(把不该对外人说的事)捅出去;闲聊;(上课时)偷偷讲话
    fromm:虔诚的;敬神的,心地善良的;无恶意的,好心的(Betrug,Lüge);(貌似)无辜的
    frommer Wunsch:不能实现的愿望
    sich etwas vermasseln:把事告砸了(Plan, Arbeit, Geschäft, Klausur);破坏(Stimmung)
    dezimieren: 使受巨大损失
    munkeln:私下议论,私下传说
    Jetzt wird gemunkelt, der Papst-Segen sei vom Band gekommen.
    Munkelei:f. –en 窃窃私语;谣言,传闻
    Im Dunkel ist gut zu munkeln. 黑暗中适合密谈
    Abgrund:(道德上的)堕落,失足;深渊,深谷
    spähen:窥探,张望;侦查 nach etwa. spähen
    Späher:m. 侦探
    Gespött n. 嘲笑,挖苦;笑柄 zum Gespött der Leute werden 成为人们的笑柄
    flennen 嚎头大哭
    schmähen:(雅)侮辱,辱骂,诽谤
    schmählich:可耻的(Betrug,Niederlage),卑鄙的
    eitel:爱打扮的,爱虚荣的;真正的,纯正的(Freude,Gold)
    ergeben 忠诚的,谦恭的 (mit ergebenen Grüssen 致以衷心的问候)
    demütigen:使屈辱,使感到侮辱
    sich demütigen:自卑,低声下气
    Demutssinn:自卑感
    jn. aufs Kreuz legen:使某人上当,欺骗某人
    unerhört:闻所未闻的,罕见的(Begebenheit,事件);令人愤慨的(Frechheit,放肆行为)
    Orgel:f. –n 管风琴
    Konspiration:密谋,政治阴谋,konspirativ:密谋的
    düpieren:(雅)欺骗,愚弄
    überlaufen:(可分)(液体)溢出
    überlaufen:(不可分)(感觉)袭来
    vulgär:粗野的,庸俗的(Mensch, Benehmen,Sprache)
    einen Platten haben:轮胎漏气(破裂)
    apart:别致的,雅致的(Aussehen,Kleid);单独的,分开的
    Fuge:f. 裂缝,接缝,

    23.03:
    Schürzejäger: 好色之徒
    Trumpf:主牌
    Fehlkarte:副牌
    abwürgen:Motor abwürgen (操作不当)使马达熄火
    griffig: 不滑的,附着力好的,不打滑的

    16.04:
    deponieren:寄存,存放(贵重物品)
    sich unterstehen :胆敢做,冒险干

    in einem Aufwasch:一下子,
    klappern: (坚硬物相撞)发出格格声

    28.05:
    Stegreif:aus dem Stegreif 未经准备的,即兴的
    poussieren: vt. 巴结,讨好 vi.调情

    30.05.04:
    verkneifen: sich etw. verkneifen 放弃,忍住
    rüstig: 精力充沛的,硬朗的
    Höfling: 宫廷侍从

    10.06:
    aufmotzen: 装饰,打扮
    wuchern:(杂草)丛生
    17.06:
    Hellseher: (常用于讽刺)千里眼,慧眼者
    blamabel: 丢脸的,不光彩的
    gebührend: 恰当的,恰如其分的;应得的,应有的

    21.06:
    abknicken: 急转弯
    prickeln: 发痒,Seine Hände prickelten.他的手发痒。
    Keil:m. 楔子,垫木
    22.06:
    sich etwas einfallen lassen: 仔细考虑某事
    gestochen:非常准确的,非常仔细地, (die Schrift ist gestochen klar)
    beeiden/beeidigen: 发誓

    27.06:
    Schwule und Lesben: 男女同性恋
    Mandant m. –en 委托人,当事人
    Lebensgefährte:生活伴侣

    08.07:
    Laufpass: 解雇证书,免职 jn. den Laufpass geben 中断与某人的关系
    Anlass nehmen, etwas zu tun: 冒昧做某事(雅)
    geifern: 流口涎(xian ,2声),流口
    sabbern: 淌口水;说废话

    17.07:
    Konfektion: 成衣;成批服装生产

    30.07:
    Akronym: 首字母的大写字母缩写
    Kuriosität: 珍贵物,稀罕之物
    jn. in Trab halten: 让某人忙个不停
    berichtigen: 改正

    16.08:
    überkommen (某种感觉)袭来,etw. ist jn. (auf jn.)überkommen 流传下来,遗留下来
    fummeln, an etw. fummeln (为了修理)来回拨弄,摸索

    kapern: [口]赢得,占有,夺取(比如网站被黑客攻破)
    Saboteuer:破坏者
    sabotieren: vt. 破坏
    glimpflich:温和的,宽大的;损失不大的,后果不严重的
    dämlich:愚笨的
    Dämlichkeit
    Mast m. –en 船桅,桅杆;电线杆,天线杆
    insolvent: 无力支付的
    diskret: 谨慎的,机智的
    freimütig: 坦率的,正直的
    in jüngster Zeit
    auferlegen: jm. etwa auferlegen 让某人承担,负担 jm eine Strafe auferlegen处罚某人

    12.11.2004:
    lukrativ: 可获利的
    stigmatisieren: 使受辱

    20.11.2004:

    tarnen: 伪装;隐藏
    Tarnkappe: 魔帽,隐身帽
    Rute:枝条,(拷打用的)鞭子,荆条
    ein Silberstreifen am Horizont 一线希望
    Chirologe : 手相家
    toben: 狂怒,大怒
    schinden: Zeit schinden 故意拖延时间, Zeilen schinden 故意拖长篇幅
    um Brei herumreden: 绕着弯说,说话兜圈子
    knifflig: 棘手的(事),艰难的,吃力的(Arbeit)
    sich verhaspeln: 说话颠三倒四
    bewerkstelligen:(牍)(设法)做到(困难的事),办到
    weismachen: jm. etwas weismachen 愚弄某人,欺骗某人
    launisch: 情绪变化无常的

    12.03:
    einstweilig:暂时的,临时的
    störungsanfällig: 容易出毛病的(如机器)
    verschlingen: (线)缠绕;耗尽,吞掉,挥霍
    verschlungene Wege: 曲里拐弯的路
    sich verschlucken: 吃呛
    12.18:
    zücken: 抽出,拔出(匕首)
    sich verpissen: 悄悄地离去
    Wanne f. 椭圆形的盆

    12.21:
    dezent: 有礼貌的,得体的;不引人注目的
    Hauch m. –e 一丝儿,一点儿 ein Hauch von Weihnachtsstimmung 一丝圣诞气氛
    Einem geschenkten Gaul, schaut man nicht ins Maul.

    12.25:
    docken: 把(船)引入船坞
    derb: 下流的,粗鲁的(玩笑,笑话);干脆的,不客气的(回答)
    Gespött: n. 嘲笑的对象,笑柄
    etwas über sich ergehen lassen: 忍受某事
    sich ergehen: 散心,散步
    Die Schülerin hatte dem Gericht erklärt, sie sei zum Gespött ihrer Schule geworden und hätte Beleidigungen auf der Straße über sich ergehen lassen müssen.
    zieren: 装饰,装扮
    geziert: 矫揉造作的
    Utensilien: (小的)工具,用具
    Frühwarnsystem
    Amphibie: 两栖纲
    Lurch: 两栖纲
    Piste: 斜坡上的滑雪道
    Etwas schiesst in Kraut: 某事迅速蔓延,扩张
    schluderig: 马虎的,草率的
    marode: 精疲力尽的
    Haare spalten: 讨论细微末节
    jm. stehen die Haare zu Berge:口语,某人感到震惊

    db2命令介绍

    相比图形界面而言,使用命令行的命令可以节省很多内存资源。但是写的时候语法需要熟悉。

    db2start:启动当前的DB2数据库管理实例。
    db2stop:停止当前的数据库管理实例。
    注:启动和关闭的是数据库管理实例,而不是单个的数据库,而restart database:并不是重新启动数据库,是平衡非正常结束而不一致状态的数据库,结束后,连接仍然存在。

    db2look:能为表,索引,视图和诸如此类需要产生统计信息和数据定义语言(DDL)的对象产生需要的语句,以便重建数据库对象和/或更新统计信息。 DB2CLP下直接db2look,可看到选项。 db2move:db2移动数据的一个工具,可以在两个不同的db2数据库间移动数据,这两个DB2数据库可以在不同的服务器上,尤其是大量数据的表需要转移的情况下,非常方便。 DB2CLP下直接db2move,可看到选项。

    以下命令在“db2=>”下键入“? Command”可以看到使用。
    catalog:编目数据库或节点
    uncatalog:删除已经编目的数据库或节点
    这一对命令其实就实现了客户机配置辅助程序编目数据库的功能。
    update:功能是更新数据库/数据库管理器配置参数,
    更新命令行处理器设置和监控器的开关等。
    connect:连接到一个数据库。
    注:习惯显式的关闭连接。
    attach:建立一个到实例的连接,执行实例级别的管理。
    list:显示一些数据库对象或者设置的相关信息
    get:获取一些数据库参数的设置和状态
    runstats:运行统计,更新系统目录表中的信息。
    backup:备份数据库
    1、防止意外数据丢失或系统意外
    2、重定向恢复实现整个数据库的迁移
    3、AIX下的备份需要指定with n buffers 和 buffer size
    restore:还原数据库
    注:操作系统相同才可进行备份和恢复
    force application:强行关闭应用程序或者连接
    导入导出数据:
    文件格式:
    DEL:界定的ASCII文件,行分隔符和列分隔符将数据分开。常用
    ASC:定长的ASCII文件,行按照行分割符分开,列定长。
    PC/IXF:只能用来在db2之间导数据,根据类型数字值被打包成十进制或者二进制,字符被保存为ASCII,只保存变量已经使用了的长度,文件中包括表的定义和表的数据。
    WSF:工作表方式导入导出,不建议使用。

    export:导出数据,支持IXF,DEL或WSF
    import:导入数据,可以向表或者视图中导入数据,支持上面提到的4中文件。
    注:当一个表中的主键被其他表引用为外键时,导入数据只能选APPEND,不能选替换。
    load:导入数据,功能和import基本相同。支持以上说的4种格式。Load最大的缺点是变化没有记录日志,不能前滚恢复。
    Load的工作步骤:
    1、载入阶段:
    把数据载入到表中
    收集并存储索引
    2、建立阶段
    建立载入阶段收集的索引
    3、删除阶段
    把违反唯一键或主键约束的记录放到例外表中
    删除违反主键和唯一键约束的记录
    注:自动生成列数据导入问题。
    Load完毕之后:
    Load程序可以将表或者表所在的表空间处于挂起状态。
    1、载入挂起:在载入阶段发生错误,表空间处于此状态
    解决方法:
    A:纠正错误后重新载入,将replace或者insert换成restart。将从失败处重新开始装载操作。
    B:如果前面调用用了replace,则再使用replace做load。
    C:用terminate选项终止load操作。
    D:DBA撤消并重新建立表空间
    E:从一个备份中恢复表空间(归档日志下才可以)。
    2、删除挂起:在删除阶段发生错误,将一直处于删除挂起状态。
    3、备份挂起:这种策略是强迫用户对目标表所在的数据库或者表空间做一个备份。如果load是使用了copy no选项,并且开启了归档日志,load完后将处于该状态。做一个备份就可以消除该状态。
    4、检查挂起的表:当表上存在主键和唯一键之外的约束时,load完后表将处于该状态。包括以下情况:
    外键约束—用来强制执行内容的完整性。
    检查约束—用户定义的约束,检查合法性。
    操作中引用了summary表,并且表设置的为refresh immediate。
    可以使用如下命令解除该状态:
    SET CONSTRAINTS FOR TABNAME IMMEDIATE CHECKED FOR EXCEPTION IN EXP_TABLE
    load和import的不同:
    1、load的目标表必须存在,而import不需要
    2、load并不创建索引,只是在原来索引的基础上追加数据
    3、最大区别在于性能区别,import每次插入一条,每行都要进行一次限制检查,日志用来记录变化,而load插入则快的多,每次读取数据构造页,然后直接输入到数据库。插入完页后,索引将重新建立,违反主键和唯一键限制的记录将被删除并保存到另一个扩展表中。
    注:load技巧使用:大数据量删除。
    load from a.del of del replace into table

    mysqldump常用的选项

    germa83上的mysql有超过3个G的数据,在重装系统时难免要把数据备份,我使用的是备份mysql数据库的常见工具,mysqldump。在备份时,使用了mysqldump --opt DWBdatabase > DWBdatabase.sql。阅读mysql的手册才知道,其实--opt在4.1版本以上是默认打开的(As of MySQL 4.1, --opt is on by default, but can be disabled with --skip-opt)。在导入数据时我先用create database DWBdatabase,然后用mysql DWBdatabase DWBdatabase.sql 就可以避免这样的麻烦。看来仔细阅读手册还是很有用的。总结一下常见用法:

    mysqldump最常见的用法是:
    shell> mysqldump --opt -u username --password="password" db_name > backupfile.sql
    shell>mysqldump --opt -u username --password="password" db_name > backupfile.sql

    或者压缩备份文件:
    #mysqldump --opt -u user --password="password" database | bzip2 -c > database.sql.bz2

    在dbname已经存在的情况下,读入备份文件恢复数据库,

    shell> mysql db_name mysql -e "source /path-to-backup/backup-file.sql" db_name

    mysqldump 还可以用于在两个mysql server之间复制数据:

    shell> mysqldump --opt db_name | mysql --host=remote_host -C db_name

    也可以同时备份多个数据库:

    shell> mysqldump --databases db_name1 [db_name2 ...] > my_databases.sql

    如果想一次备份整个数据库使用 --all-databases 选项:

    shell> mysqldump --all-databases > all_databases.sql

    常见选项:
    --add-drop-table:添加DROP TABLE语句
    --add-locks:用LOCK TABLES 和 UNLOCK TABLES 语句封装插入每个表格的语句,能加速数据导入速度
    --all-databases, -A: 备份所有数据库
    --compress, -C:用于在两个server之间复制时压缩数据
    --databases, -B: 用于备份多个数据库,如果没有该选项,mysqldump 把第一个名字参数作为数据库名,后面的作为表名。使用该选项,mysqldum把每个名字都当作为数据库名。CREATE DATABASE IF NOT EXISTS db_name and USE db_name 会被添加到导出文件里。
    --force, -f:即使发现sql错误,仍然继续备份
    --host=host_name, -h host_name:备份主机名,默认为localhost
    --no-data, -d:只导出表结构
    --opt:等同于激活--add-drop-table --add-locks --create-options --disable-keys --extended-insert --lock-tables --quick --set-charset这些选项
    --password[=password], -p[password]:密码
    --port=port_num, -P port_num:制定TCP/IP连接时的端口号
    --protocol={TCP | SOCKET | PIPE | MEMORY}:制定连接所用的协议
    --quick, -q:快速导出
    --socket=path, -S path:当连接至localhost时,制定socket文件
    --tables:覆盖 --databases or -B选项,后面所跟参数被视作表名
    --user=user_name, -u user_name:用户名
    --xml, -X:导出为xml文件

    2005-06-23

    不输入密码进入mysql shell界面

    你的mysql帐户是受密码保护的,如果觉得每次进入mysql shell界面输入密码比较烦的话,将密码置空有不安全的话,可以在自己的主目录下生成一个.my.cnf文件,包含下列几行:

    # The following options will be passed to all MySQL clients
    [client]
    port = 3307 #mysql 运行的端口号
    socket = /tmp/mysql.sock.urts12 #socket文件的位置
    password = ******
    user = jia

    这样就可以直接进入mySQL的命令行界面了。

    Windows 2000/XP/2003操作系统所支持的计算机类型(HAL)及相关内核文件的对应 关系、更改计算机类型的方法

    作者:Climbing(xclimbing@msn.com)
    版本:2.0
    创建日期:2004年12月6日
    最后修改日期:2004年12月7日

    ============
    致谢
    ============
    这篇总结文章的写成,主要参考了死性不改网友所发布的用于制做万能克隆的S&R&S系列中的相关批处理文件,在此表示万分感谢!
    同时感谢无忧启动论坛的hyne网友(他已经沉默了很长时间了),他是万能克隆技术的先驱者之一,本文章引用了很多他制做的计算机类型选择程序(acpi.exe)中的说明,这里一并表示感谢。
    感谢JUJUMAO论坛木鸟网友对本文作出的有益补充!

    2005-06-20

    在.comdirect开户

    在网上发现Commerzbank下的一个子公司为大学生提供免费的Girokonto和免费的Visa信用卡,并在开户时送25欧元,于是在网上填写了开户申请。很快就收到了申请材料的书面材料,填写完毕后就去邮局确认身份并邮寄材料。

    在邮寄材料时的一件小事倒是值得一提。很多信封的右上角上都写着:Bitte freimachen, falls Marke zur Hand。以前一直以为是商家比较客气地要求用户自己贴上邮票后才能投递,今天在邮局时鼓起勇气问了一下邮局的工作人员,他告诉我,不用贴邮票也能邮寄。这倒是解开了我很久就想问的疑惑。

    2005-06-17

    MySQL常见问题解决办法

    Interesting Things to Know about MySQL
    Mike Chirico (mchirico@users.sourceforge.net)
    Copyright (c) 2004 (GPU Free Documentation License)
    Last Updated: Mon Nov 22 20:01:59 EST 2004

    The latest version of this document can be found at:
    http://prdownloads.sourceforge.net/souptonuts/README_mysql.txt?download

    爱与美 —— 一种生物心理学观点[转]

    作者:潘卫星

    性爱与审美皆人之天性。总觉得两者之间存在某种内在的联系,却一直理不出头绪。对此两大永恒的人性主题。古今中外的论述不乏种种精辟和闪光。但总体地看,仍不能令我满意。我寻找自己的答案。终于,一次雪中漫步,我体验到顿悟的喜悦,从而有幸抛出现在这块砖坯。

    2005-06-16

    删除一个数据库下的所有表

    在studipserv上我没有权限删除数据库,只能对数据库内的表进行操作,因此当要删除多个表的时候,用phpMyadmin比较方便,可是在命令行下删除多个表就比较麻烦,不知道mysql本身是否支持这样的操作,不过结合shell写个小脚本倒是可以解决这个问题:


    删除Linux后清除GRUB恢复MBR

    这是第二次赶上这样的情况了。上次对付germa63那台机器就是把linux删除后,用ghost恢复了一个windows 2000的镜像后,无法正常进入windows启动界面,总是出现Grub的引导界面,后来折腾一番重写MBR后才解决问题。今天在germa83这台机器上又赶上同样的问题,在网上先查了一下,如何快速的处理类似问题。

    2005-06-13

    如何在德国打工

    转自 德国导报

    在德国读书期间原则上是允许打工的,但不允许一年四季都去打工。持短期签证学习语言的不许打工。在打工方面,要看你持的是什么签证(签证上给你加的是什么
    样的附注)。一般的规定是假期中可以打工。但有的签证上也有不加规定。不加规定的,平时打工每个月有时间限制(劳动局说是每周八小时,
    或全年不超过三个月).学音乐的学生比较受惠,签证上会写上"可以参加音乐演出方面的工作"。德国全国大多数地方规定得差不多,
    但有的地方比较松,比如柏林,有的地方又特别的严,比如乌帕塔尔。

    2005-06-11

    CSS中常用的单位

    CSS的主要功能之一就是CSS定位,这个定位的概念即包括位置的定位,也包括尺寸的定位。无论哪一种,都需要使用长度单位,不然,精确定位就无从谈起。  在CSS中,长度是一种度量尺寸,用于宽度、高度、字号、字和字母间距、文本的缩排、行高、页边距、贴边、边框线宽以及许许多多的其他属性。

    Update Ilias 3 from 3.4 to 3.4.2

    此次更新数据库没有变化,仅仅是部分文件更新,修正一些错误。

    2005-06-10

    迟到的Antrittsvorlesung

    今天去DM楼看到有个海报,是邀请大家去参加下周Frau Prof. Moulin的Antrittsvorlesung。“Prof. Moulin不是早就是是Germanistik系的教授了吗?” 看到海报时心里正琢磨呢,正好碰到Thomas路过,便顺便问了一下。Thomas便解释道,他说,没错,Frau Moulin在Germanistik工作都2年多了,一直没有找到合适的机会做Antrittsvorlesung,这次终于补上了。Frau Moulin给我的印象是很好的,一个很年轻,和蔼的女教授。

    Notepad的一个小技巧

    在网上看chedong的日志发现一个notepad有趣的小技巧,特记录于此:

    在文件的头部加上“.LOG”,这样每次打开文件时,焦点都会自动定位到文件结尾,并加注当前日期。

    2005-06-03

    红灯区网站有自己的顶级域名.xxx了

    现在ICANN引入了一个新的顶级域名.xxx,专门用于包括成人内容的站点,目的是帮助家长保护未成年人免受成人内容的影响。
    Seit Jahren wird darüber gestritten, jetzt wird sie tatsächlich kommmen: Spätestens Ende des Jahres werden die schlüpfrigeren Seiten des Internet unter der Toplevel-Domain ".xxx" versammelt. Lange Zeit war der Rotlichtbezirk fürs Web umstritten.