在Red Hat Linux 9上安装Eclipse(转帖)

在Red Hat Linux 9上安装Eclipse(转自:http://www.linuxmine.com/1055.html)

2004-04-23 15:18 pm

作者:linux宝库 (http://www.linuxmine.com)

来自:linux宝库 (http://www.linuxmine.com)

现存:http://www.linuxmine.com/1055.html

联系:linuxmine#gmail.com

不明白?欢迎到 linux论坛 (http://bbs.linuxmine.com) 参加讨论!

先下载eclipse,网址为 http://www.eclipse.org。

eclipse 可以在很多个平台上执行,在此我们要安装在linux上面,参考下图,

请选择linux(x86/GTK 2)。

下载这个

eclipse所支持的平台

在本文撰写时,eclipse的最新版本为 3.0 版,2.1.1版本支持C/C++开发执行。

执行eclipse 时须使用到 Sun JDK

1,但eclipse的安装程序并未包含 Sun JDK,

且 Red Hatlinux 9 也未包含 Sun JDK。所以接下来我们要下载该档案。Sun 最

新版本的 JDK 可至 http://www.javasoft.com 下载,在此我们使用的是 Java 2 SDK (J2SE) 1.4.2-01 版

1,eclipse 似乎也可搭配 IBM 或其它公司的 JDK,不过我并没有实际测试过。

两个软件都下载完毕之后, 我们先安装 JDK(需以 root 身分安装):

[root @ljn] chmod 711 j2sdk-1_4_2_01-linux-i586-rpm.bin

[root @ljn] ./j2sdk-1_4_2_01-linux-i586-rpm.bin

[root @ljn] rpm –ivh j2sdk-1_4_2_01-linux-i586-rpm

执行后会出现好几页的版权声明,回答 yes

即可继续安装。完成后会产生一个

j2sdk-1_4_2_01-linux-i586-rpm 档案,接下

来用 rpm 来安装

[root @ljn]rpm –ivh j2sdk-1_4_2_01-linux-i586-rpm

将档案权限改为可执行檔

安装好后的 JDK 会储存在 /usr/java/j2sdk1.4.2_01 目录中(不同版本的 JDK 目录名称会不一样,例如 /usr/java/j2sdk1.x.y_zz)。

做一个符号连接

[root @ljn] ln –s /usr/java/j2sdk1.4.2_01 /usr/java/jdk

接下来我们要安装eclipse,在此我们把eclipse 安装在 /opt 这个目录中,你也

可以选择安装在其它不同的目录。安装 eclipse很简单,只要把下载回来的压缩档案解开就可以了:

2指定将档案解到 /opt 目录中,如果目录不

存在 unzip 会自动建立该目录

[root @ljn] unzip –d /opt eclipse-SDK-2.1.1-linux-gtk.zip

不管哪一个版本的eclipse(目前安装过 2.1.1 和 3.0 M3)

,解压缩后都会解到eclipse这个目录中。如果我们在同一台计算机上安装不同版本的eclipse,除非安装在不同目录,否则先前的版本将会被覆盖。因此,我们将刚刚解压缩出来的

/opt/eclipse

为了让每一位linux的使用者都可以执行eclipse,我们写了一个 script(eclipse.sh):

#!/bin/bash

#

# 文档名: eclipse.sh

#

# 执行 eclipse2.1 版本

#

export JAVA_HOME=/usr/java/jdk

export CLASSPATH=/usr/java/jdk/lib

/opt/eclipse/eclipse -vm /usr/java/jdk/bin/java -data ~/workspace &

-vm 参数用以指定使用哪一个 jvm 来执行eclipse,在此我们指定之前安装的 Sun JDK 1.4.2-01 版-date 参数用以告诉eclipse要将项目储存

在哪一个目录中。在此我们指定储存在使

用者home目录(~)的 workspace 目录中

3接下来我们将 clipsem.sh 复制到/usr/local/bin 目中并设定其权限:

[root @ljn]cp eclipse.sh /usr/local/bin

[root @ljn]chmod 755 /usr/local/bin/eclipse.sh

此时执行 eclipse.sh 既可启动 eclipse。请参考下图

eclipse启动后画面

4如果嫌每次都要打 eclipse.sh 太麻烦,我们也可以设定一个 alias,让使用者只要输入 eclipse2.1 即可。请修改 /etc/profile.d 目录下的 which-2.sh:

alias eclipse2.1=`/usr/local/bin/eclipse.sh`

在最后面加上这一行。

如果这样还是太麻烦,我们也可以像是在 Windows 系统里面一样,为eclipse在桌面上建立一个「快捷方式」

。请参考下图;

首先,在桌面上按下鼠标右键,在跳出

窗口中选择第三个选项「新增启动器(A) 」,之后会出现上图 的画面。分别在

「名称」栏中输入eclipse、

「指令」栏中输入/usr/local/bin/eclipse.sh,然后按

下「图标」栏右边的「没有图标」按钮。这时候按下确定按

钮桌面上就会出现的eclipse 图标,以后就可以直接点选该图标来执行eclipse。

备注:

1. 虽然 Sun JDK 和eclipse可以在 Red Hat Linux 7.x 版中成功安装,但是在执行eclipse 时,却会出现 error while loading shared libraries: libgtk-x11-2.0.so.0:

cannot load shared object file: No such file or directory 错误讯息。我想可能是

gtk 版本太旧的关系吧,也许更新一下 gtk 就可以。Red Hat linux 8.x、9

2. 如果要在Eclipse中安装 CDT 撰写 C/C++程序的使用者,可以安装eclipse 2.11版。在本文撰写时 CDT 只支持eclipse 2.1.x 版。

3.用 Eclipse 平台进行 C/C++ 开发

参照这两篇文章

http://www-900.ibm.com/developerWorks/cn/linux/opensource/os-ecc/index.shtml

Eclipse Project CDT (C/C++) Plugin Tutorial

返回前一页

本站由张善友制作并维护

copyright 2002-2003 All rights reserved

不明白?欢迎到 linux论坛 (http://bbs.linuxmine.com) 参加讨论!

全文结束

如何混合使用Linux和Windows(上); LINUX目录详解(转帖2篇)

下面这篇转帖这句话很有用:用户程序通常放在/usr目录和/opt目录下,但是个人文件一般放在/home目录下,而临时文件则存放在/var目录下。

如何混合使用Linux和Windows(上)(转自:http://www.zdnet.com.cn/techupdate/software/skill/story/0,3800080971,39329263,00.htm)

作者: vnunet.com

2005-08-26 04:55 PM

推荐朋友 | 打印本文 | 返回首页

在个人计算机上,Windos系统和Linux系统可以用来相互补充,在本文中我们将向你介绍如何在一台计算机上使用这两个系统,包括最好开始方式、有哪些文件可以使用等其他内容。

在刚刚过去的几年中,作为服务器和工作站操作系统的选择之一,Linux 已经很好的确定了自己的地位。

很多专业的用户发现,Linux还是一个很安全的网上冲浪平台。也许,Linux的安全漏洞并不比微软的操作系统少,但是,SuSE、Knoppix、Red Hat等系统都很少受到病毒攻击,因为这些系统不是黑客攻击的主要目标。

从另外一方面来说,当谈及多媒体,尤其是视频编辑以及DVD光盘制作等方面的软件时,Windows是一个必不可少的操作系统。对于办公软件以及图像编辑等方面来说,Windows目前在这方面仍然处于领先地位。因此,许多专业用户都使用双系统。

在本文中,我们将向你介绍在一台机器上使用两个系统的最好方式。如果你正在准备进行这种转换的话,就真的没有必要担心由于系统不兼容而可能会造成各种问题,在Linux环境下也可以读取Windows中的文件。

并且这些源自于Unix的操作系统现在可以识别并且能够与大量Windows格式的文件一起工作。如果有必要的话,你甚至可以在Linux环境下运行Windows环境下成熟的应用程序,如在Linux环境下运行微软的Office 。

将Linux和Windows合在一起

至于在一台个人计算机上一起使用Linux和Windows的方法,目前至少有半打以上。但是这些方法中最常用的方法应该是在一个硬盘上同时安装两个操作系统。

除了要配置多启动管理器外,这种方法实现起来很容易,但是这种方法要求有大量的硬盘空间。如果你已经决定还是使用Windows分区而又发现还需要3-4GB的空间来保存微软的文件以便能够经常性的查看某些文件时,你会觉得非常麻烦。

在这种方法中,每个操作系统都是分别存储在各自的分区中。目前所发行的Linux版本如Red Hat 9 或者SuSE 8,都会考虑到现有的微软操作系统并且会将该系统集成在引导选项中。然而,这确实需要有足够的空闲硬盘空间,要实现标准的安装,需要大概3-5GB没有使用或者没有分区的磁盘空间。

如果有足够的空间的话,安装工具会自动为Linux计算出一个合理的分区方案。如果有必要的话,专家级的用户可以不用考虑安装工具的建议,而是进行人工干预,直接输入期望的分区大小。

在成功的安装系统之后,你只需在系统引导时通过一个引导菜单来选择希望要进入的系统,从而可以进入不同的系统。Linux引导程序也允许你指定启动选项并且可以将这些参数传送给内核。

最佳分区方法

如果你想要尽可能方便而且安全的同时使用Windows和Linux这两个系统的话,就必须确保实现最佳分区。非常重要的一点就是考虑需要使用多少个分区,并且每个分区所占的空间大小应该是多少(分区方案)。这些参数都是根据你的安全需求、使用的程序、以及注册用户的数量来决定的。

利用挂载点(mount point)"/" 将Linux的系统目录(根目录)放在其自身的分区上是一种明智的做法。这样一来,使得系统在出现故障的时候可以很容易的实现恢复。用户程序通常放在/usr目录和/opt目录下,但是个人文件一般放在/home目录下,而临时文件则存放在/var目录下。

一般说来,没有必要将这些文件夹放在不同的分区上,当然。交换分区是一个例外。

如果你想要额外实现防止电子邮件病毒或者垃圾邮件的话,可以在其分区上增加/var目录。一个良好的Linux产品的自动分区中应该包含以下分割:root、/home、/var、以及交换分区。对于初学者以及那些从Windows转换过来的用户来说,有一个系统分区(/)以及一个交换分区就已经足够了。

不管你选择的是哪一个提供商发行的Linux系统,它都会包含免费的分区工具,如fdisk以及cfdisk,这些工具虽然其功能很强大,但是对于初学者来说,使用起来都不是那么容易,因为这些工具都没有图形界面。

大多数的新用户都喜欢使用图形化的分区工具,通常情况下,在每个发行版的安装器中也都含有这种工具。例如,SuSE的安装和配置工具Yast,就包含一个非常容易使用的分区程序。

如果你愿意在安装Linux系统之前,先在Windows界面下进行分区的话,你就需要使用商业化工具如Powerquest的分区魔术师(Partition Magic)来进行分区。

使用cfdisk来进行分区

传统的Linux系统的分区工具是cfdisk,在使用Knoppix进行硬盘安装的过程中也可以使用该工具。你可以从命令行中输入"cfdisk"命令来运行该工具。该程序就会将所有它发现的硬盘以及每个硬盘的分区信息全部列出。使用键盘就可以实现对cfdisk工具的全面控制。

借助于鼠标和回车键,你可以选择不同的功能按钮。你可以很容易的在未分区的硬盘上创建一个新的分区,或者删除一个已经存在的分区。如果要删除一个已经存在的分区,只需要简单的使用鼠标选择该分区,然后选择"删除"命令,最后通过"回车键"来确认。

你可以用相似的方法来创建一个新的分区,当然不是选择"删除"功能,而是选择"新建"功能。对于最小安装的Linux系统来说,它要求有一个根分区和交换分区。要创建一个新的交换分区,选择"基本分区"来创建一个新的基本分区。交换分区的大小取决于可用的内存的大小,但是在任何情况下,交换分区的大小都没有必要超过512MB。

可以通过输入"起始扇区"或者输入"结束扇区"或者相应的大小(以MB为单位)来指定分区的大小。建议将"起始"设置为第一个分区的"起始扇区"。选择"类型82"作为交换分区的类型。

这种方法也可以用于创建Linux的根分区。在这里仍然是使用选项"新建"以及"基本分区"来创建基本分区。这个分区所需要的大小取决于你想要安装多少个程序包。如果你正从一个Windows用户转变为一个Linux用户,并且只使用一个单一的Linux根分区,那么,默认安装只需要大约2-3GB的空间。

然而,随着许多多媒体文件以及大量应用程序的出现,分区大小一般至少要10GB的空间。当然了,你可以选择使用整个未分区的磁盘空间作为当前分区的大小。选择分区"类型83"作为根分区。

一旦分区工作结束,使用"写"功能来保存并应用当前的变化。这样创建的分区可以很容易的用于随后的全新的Linux安装。

要减少现存分区的大小,你需要使用另外的工具如免费工具Parted (你可以通过Linux搜索引擎www.rpmseek.com来找到该工具)或者使用其他的商业化的Windows程序。

在Windows下使用Linux文件

Linux用户常常需要访问并行安装的Windows分区及其文件,反过来也是如此。

借助于免费的基于Windows的工具Explore2FS ,Windows用户可以任意使用Linux ex2fs文件系统中的分区。Explore2Fs可以显示所有可用的硬盘,并且可以在不同的Windows浏览器中显示所有的Linux分区。

要访问Linux分区上数据,你可以利用拖放功能来实现。目前Explore2FS是免费的,并且该工具可以在Windows 95到Xp之间的所有系统上使用。Explore2Fs的安装工具可以在这里 找到。

在Linux中使用Windows数据

在Linux系统下面可以毫无障碍的读取到Windows分区。在安装Linux系统的过程中,操作系统自动可以识别出任何现存的Windows分区,并将它们合并到Linux目录结构中。

你可以通过文件管理器或者命令行的方式来访问这些分区上的数据和程序。由于目前发行的Linux版本都能够自动将Fat16以及Fat32分区挂载到系统上,而且甚至可能通过在桌面上创建一个图标使得这些分区可用,因此,在Linux系统和Windows系统之间(包括老版本的Windows,甚至是ME系统)的文件交换基本上不存在真正的障碍。

然而,当与NTFS分区(这种分区方式经常用于Windows NT/2000或者Windows XP中)进行数据交换时,问题仍然存在。Linux 以某一相配驱动程序的方式来为这种文件系统提供支持,但是这些驱动程序还是有一些缺点,因为,这些驱动程序在某些情况下会损坏文件系统。

正因为如此,如果你使用绑定的基于Linux内核的NTFS驱动程序时,最好使用只读模式。幸运的是,该驱动程序在缺省的情况下没有激活对NTFS分区的写权限。

Linux下的Windows

任何想要在Linux环境下使用Windows应用程序的用户都不可避免的遇到WINE。虽然人们认为它还不够成熟并且使用起来非常复杂,但是在本节我们将向你介绍Wine到底能干什么。

许多Linux爱好者将Windows仍然保留在硬盘上是希望他们能够继续使用某些特定的应用程序,但是有些人却根本不想要太大的操作系统。如今,在广为分布的Windows模拟器Wine的帮助下,你可以在Linux环境下直接运行许多Windows程序。它几乎可以模拟整个Windows环境下的应用程序编程接口。

另外,Wine几乎能够提供所有重要的操作系统功能,如同Windows系统本身在调用这些功能。从理论上来说,Windows应用程序几乎感觉不到它是在Linux环境下运行。该系统自己运行在一个虚拟的系统分区上。作为一种选择,你可以将真正的Windows库程序(DLLs)放在Wine提供的库程序旁边作为备份,万一Wine自身的库程序出错就可以使用这些备份程序。

在使用Wine的时候,你会发现可以安装许多常规的应用程序,而且你可能会直接在虚拟系统分区上安装一个简单的Windows程序。某些专家级用户已经对此非常熟悉,因此也就可以安装更为复杂的应用程序如Word 2000来完成某些工作。但是,这个过程是相当复杂的,而且稳定性也存在问题。

通常说来。要在Wine下运行一个Windows程序,只需要使用终端窗口并且输入一下命令:wine 『路径和程序的名字』。例如:wine /home//wine/C/Program/winword.exe。

Wine的各种不同版本

现在Wine的版本有很多,而且存在着各种不同的变种。当前的每个Linux版本中都包含有一个基本的Wine程序包,这个程序包可以用图形化的配置前端来定制。

然而,最新的Wine版本与此不同,并且需要通过命令行来实现全面的配置。另一个可作为选择的是商业化的产品WineX。在这个扩展版本的Wine上,可以使用最新的基于DirectX 的Windows程序。

Wine的局限性

从技术的角度上来说,使用Windows的模拟器是一种让人感兴趣的选择,但是到目前为止,它仍然无法替代在你的计算机上安装Windows系统。对于特定硬件的软件如驱动程序或者系统工具来说,在Linux环境下的Wine中是无法使用的。

通过模拟界面,你可以使用当前的大多数硬件,如打印机、操纵杆或者调制解调器,但是如果打印机需要特定的Windows驱动程序,并且在Linux中没有对应的驱动程序的话,那么它在Wine中将无法使用。依赖于Windows编码的多媒体应用程序在这里也会遇到问题,所以那些希望进行永久转变的windows用户应该密切注视当前Linux技术的发展。

在Linux环境下微软的Office

如果你非常希望在Linux环境下运行微软的Office的话,最好的选择是使用Crossover Office程序包。购买这个程序包的成本大约是40英镑,目前在SuSE Linux Office桌面环境以及Lindows系统中已经开始包含这个程序包了。Crossover是基于Wine的,通过使用这个程序包使得在Linux环境下安装Word、Excel以及Powerpoint等成为可能。

使用这种方法看起来没有什么问题,并且Crossover Office目前是稳定的。然而,在Linux环境下,想使用1.03版(仍在发行)的Crossover Office来安装微软的Access是不太可能的。新版本2.0.1支持Office 97,2000,XP以及Adobe Photoshop 7。

使用Crossover Office

设置好Crossover Office后,在Linux环境下配置Office的工作将变得非常简单。要安装Crossover Office 2的话,你需要相应的安装脚本文件。你可以从Code Weavers公司得到一个免费的测试版本。无论是测试版本还是完整版本,都需要花费59.95美元(大约38英镑),他们都可以在KDE或者Gnome环境下通过执行虚拟脚本进行安装。

在Linux环境下,你既可以使用超级用户也可以用标准用户模式来实现Crossover Office的安装。管理员模式安装的优点在于所有的系统用户都可以通过Crossover Office 来加载Windows应用程序。另一方面,如果Crossover Office是以标准用户的模式安装的话,则只允许该用户来加载Windows应用程序。

在调用了脚本文件后,Crossover Office图形化的安装程序就启动了。在全局选项中,输入安装该程序包的路径。如果接受预先设置的路径,也就是你自己的主目录,那么点击"开始安装"按钮开始进行安装。

安装完成之后,使用"现在开始配置"来配置应用程序。安装区域的主窗口包含有已经安装在系统中的所有应用程序的概述。

要配置更多的Windows程序,在"安装"按钮上点击一下就足够了。下面的工作就是从一个可支持的Windows程序列表中选择你想要安装的程序即可。

高亮显示想要安装的相应程序。并且点击"下一步"按钮。当然,你必须有原始的安装CD。如果你想要安装一个不在列表中的应用程序,勾选"安装未支持软件"选框并且指定安装数据所在的目录。

通常说来。通过在更多的对话框中点击"下一步"按钮就可以完成所有的安装过程。

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

 LINUX目录详解(转自:http://www.cnxhacker.com/article/show/774.html)

作者:未知 来源:CnXHacker.Net 加入时间:2004-12-15 阅读次数:42177

根文件系统一般应该比较小,因为包括严格的文件和一个小的不经常改变的文件系统不容易损坏。损坏的根文件系统一般意味着除非用特定的方法(例如从软盘)系统无法引导,所以不应该冒这个险。

根目录一般不含任何文件,除了可能的标准的系统引导映象,通常叫/vmlinuz 。所有其他文件在根文件系统的子目录中。

/bin

引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。

/sbin

类似/bin ,但不给普通用户使用,虽然如果必要且允许时可以使用。

/etc

特定机器的配置文件。

/root

root用户的家目录。

/lib

根文件系统上的程序所需的共享库。

/lib/modules

核心可加载模块,特别是那些恢复损坏系统时引导所需的(例如网络和文件系统驱动)。

/dev

设备文件。

/tmp

临时文件。引导启动后运行的程序应该使用/var/tmp ,而不是/tmp ,因为前者可能在一个拥有更多空间的磁盘上。

/boot

引导加载器(bootstrap loader)使用的文件,如LILO。核心映象也经常在这里,而不是在根目录。如果有许多核心映象,这个目录可能变得很大,这时可能使用单独的文件系统更好。另一个理由是要确保核心映象必须在IDE硬盘的前1024柱面内。

/mnt

系统管理员临时mount的安装点。程序并不自动支持安装到/mnt 。 /mnt 可以分为子目录(例如/mnt/dosa 可能是使用MSDOS文件系统的软驱,而/mnt/exta 可能是使用ext2文件系统的软驱)。

/proc , /usr , /var , /home

其他文件系统的安装点。

/etc 目录包含很多文件。下面说明其中的一些。其他的你应该知道它们属于哪个程序,并阅读该程序的man页。许多网络配置文件也在/etc 中,它们在《网络管理指南》中说明。

/etc/rc or /etc/rc.d or /etc/rc?.d

启动、或改变运行级时运行的scripts或scripts的目录,更详细的信息见关于init 的章。

/etc/passwd

用户数据库,其中的域给出了用户名、真实姓名、家目录、加密的口令和用户的其他信息。格式见passwd 的man页。

/etc/fdprm

软盘参数表。说明不同的软盘格式。用setfdprm 设置。更多的信息见setfdprm 的man页。

/etc/fstab

启动时mount -a命令(在/etc/rc 或等效的启动文件中)自动mount的文件系统列表。 Linux下,也包括用swapon -a启用的swap区的信息。见4.8.5节和mount 的man页。

/etc/group

类似/etc/passwd ,但说明的不是用户而是组。见group 的man页。

/etc/inittab

init 的配置文件。

/etc/issue

getty 在登录提示符前的输出信息。通常包括系统的一段短说明或欢迎信息。内容由系统管理员确定。

/etc/magic

file 的配置文件。包含不同文件格式的说明,file 基于它猜测文件类型。见magic 和file 的man页。

/etc/motd

Message Of The Day,成功登录后自动输出。内容由系统管理员确定。经常用于通告信息,如计划关机时间的警告。

/etc/mtab

当前安装的文件系统列表。由scripts初始化,并由mount 命令自动更新。需要一个当前安装的文件系统的列表时使用,例如df 命令。

/etc/shadow

在安装了影子口令软件的系统上的影子口令文件。影子口令文件将/etc/passwd 文件中的加密口令移动到/etc/shadow 中,而后者只对root可读。这使破译口令更困难。

/etc/login.defs

login 命令的配置文件。

/etc/printcap

类似/etc/termcap ,但针对打印机。语法不同。

/etc/profile , /etc/csh.login , /etc/csh.cshrc

登录或启动时Bourne或C shells执行的文件。这允许系统管理员为所有用户建立全局缺省环境。各shell见man页。

/etc/securetty

确认安全终端,即哪个终端允许root登录。一般只列出虚拟控制台,这样就不可能(至少很困难)通过modem或网络闯入系统并得到超级用户特权。

/etc/shells

列出可信任的shell。chsh 命令允许用户在本文件指定范围内改变登录shell。提供一台机器FTP服务的服务进程ftpd 检查用户shell是否列在 /etc/shells 文件中,如果不是将不允许该用户登录。

/etc/termcap

终端性能数据库。说明不同的终端用什么"转义序列"控制。写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从/etc/termcap 中查找要做的工作的正确序列。这样,多数的程序可以在多数终端上运行。见termcap 、 curs_termcap 和terminfo 的man页。

/dev目录

/dev 目录包括所有设备的设备文件。设备文件用特定的约定命名,这在设备列表中说明 (见[Anv])。设备文件在安装是产生,以后可以用 /dev/MAKEDEV 描述。 /dev/MAKEDEV.local 是系统管理员为本地设备文件(或连接)写的描述文稿 (即如一些非标准设备驱动不是标准MAKEDEV 的一部分)。

/usr 文件系统经常很大,因为所有程序安装在这里。 /usr 里的所有文件一般来自Linux distribution;本地安装的程序和其他东西在/usr/local 下。这样可能在升级新版系统或新distribution时无须重新安装全部程序。 /usr 的有些子目录在下面列出(一些不太重要的目录省略了,更多信息见FSSTND)。

/usr/X11R6

X Window系统的所有文件。为简化X的开发和安装,X的文件没有集成到系统中。 X自己在/usr/X11R6 下类似/usr 。

/usr/X386

类似/usr/X11R6 ,但是给X11 Release 5的。

/usr/bin

几乎所有用户命令。有些命令在/bin 或/usr/local/bin 中。

/usr/sbin

根文件系统不必要的系统管理命令,例如多数服务程序。

/usr/man , /usr/info , /usr/doc

手册页、GNU信息文档和各种其他文档文件。

/usr/include

C编程语言的头文件。为了一致性这实际上应该在/usr/lib 下,但传统上支持这个名字。

/usr/lib

程序或子系统的不变的数据文件,包括一些site-wide配置文件。名字lib来源于库(library); 编程的原始库存在/usr/lib 里。

/usr/local

本地安装的软件和其他文件放在这里。

/var/catman

当要求格式化时的man页的cache。man页的源文件一般存在/usr/man/man* 中;有些man页可能有预格式化的版本,存在/usr/man/cat* 中。而其他的man页在第一次看时需要格式化,格式化完的版本存在/var/man 中,这样其他人再看相同的页时就无须等待格式化了。 (/var/catman 经常被清除,就象清除临时目录一样。)

/var/lib

系统正常运行时要改变的文件。

/var/local

/usr/local 中安装的程序的可变数据(即系统管理员安装的程序)。注意,如果必要,即使本地安装的程序也会使用其他/var 目录,例如/var/lock 。

/var/lock

锁定文件。许多程序遵循在/var/lock 中产生一个锁定文件的约定,以支持他们正在使用某个特定的设备或文件。其他程序注意到这个锁定文件,将不试图使用这个设备或文件。

/var/log

各种程序的Log文件,特别是login (/var/log/wtmp log所有到系统的登录和注销) 和syslog (/var/log/messages 里存储所有核心和系统程序信息。 /var/log 里的文件经常不确定地增长,应该定期清除。

/var/run

保存到下次引导前有效的关于系统的信息文件。例如, /var/run/utmp 包含当前登录的用户的信息。

/var/spool

mail, news, 打印队列和其他队列工作的目录。每个不同的spool在/var/spool 下有自己的子目录,例如,用户的邮箱在/var/spool/mail 中。

/var/tmp

比/tmp 允许的大或需要存在较长时间的临时文件。 (虽然系统管理员可能不允许/var/tmp 有很旧的文件。)

/proc 文件系统是一个假的文件系统。它不存在在磁盘某个磁盘上。而是由核心在内存中产生。用于提供关于系统的信息(originally about processes, hence the name)。下面说明一些最重要的文件和目录。 /proc 文件系统在proc man页中有更详细的说明。

/proc/1

关于进程1的信息目录。每个进程在/proc 下有一个名为其进程号的目录。

/proc/cpuinfo

处理器信息,如类型、制造商、型号和性能。

/proc/devices

当前运行的核心配置的设备驱动的列表。

/proc/dma

显示当前使用的DMA通道。

/proc/filesystems

核心配置的文件系统。

/proc/interrupts

显示使用的中断,and how many of each there have been.

/proc/ioports

当前使用的I/O端口。

/proc/kcore

系统物理内存映象。与物理内存大小完全一样,但不实际占用这么多内存;it is generated on the fly as programs access it. (记住:除非你把它拷贝到什么地方,/proc 下没有任何东西占用任何磁盘空间。)

/proc/kmsg

核心输出的消息。也被送到syslog 。

/proc/ksyms

核心符号表。

/proc/loadavg

系统"平均负载";3个没有意义的指示器指出系统当前的工作量。

/proc/meminfo

存储器使用信息,包括物理内存和swap。

/proc/modules

当前加载了哪些核心模块。

/proc/net

网络协议状态信息。

/proc/self

到查看/proc 的程序的进程目录的符号连接。当2个进程查看/proc 时,是不同的连接。这主要便于程序得到它自己的进程目录。

/proc/stat

系统的不同状态,such as the number of page faults since the system was booted.

/proc/uptime

系统启动的时间长度。

/proc/version

核心版本。 转贴于 『中国X黑客小组』 WwW.CnXHacker.Net 作者:未知

绘制UML活动图的步骤和要点(转帖)

绘制UML活动图的步骤和要点,转自:http://www.yesky.com/427/1794427.shtml

UML 活动图记录了单个操作或方法的逻辑,单个用户案例,或者单个业务流程的逻辑。要创建一个 UML 活动图,您需要反复执行下列步骤。

  第一步,定义活动图的范围首先应该定义您要对什么建模。单个用户案例力?一个用户案例的一部分?一个包含多个用户案例的商务流程?一个类的单个方法?一旦您定义了您所作图的范围,您应该在其顶部,用一个标注添加标签,指明该图的标题和唯一的标示符。您有可能也想要包括该图的时间甚至作者名。

  第二步,添加起始和结束点每个活动图有一个起始点和结束点,因此您也要马上添加它们。在 《UML 精粹》(UML Distilled) (参见参考资料),Fowler 和 Scott 认为结束点是可选的。有时候一个活动只是一个简单的结束,如果是这种情况,指明其唯一的转变是到一个结束点也是无害的。这样,当其他人阅读您的图时,他或她知道您已经考虑了如何退出这些活动。

  第三步,添加活动如果您正对一个用户案例建模,对每个角色(actor)所发出的主要步骤引入一个活动(该活动可能包括起始步骤,加上对起始步骤系统响应的任何步骤)。如果您正对一个高层的商务流程建模,对每个主要流程引入一个活动,通常为一个用户案例或用户案例包。最后,如果您正对一个方法建模,那么对此引入一个活动是很常见的。

  第四步,添加活动间的转变我的风格总是应该退出一个活动,即使它是转变到一个结束点。一旦一个活动有多个转变时,您必需对每个转变加以相应标示。

  第五步,添加决策点有时候,您所建模的逻辑需要做出一个决策。有可能是需要检查某些事务或比较某些事务。要注意的是,使用决策点是可选的。

  第六步,找出可并行活动之处当两个活动间没有直接的联系,而且它们都必需在第三个活动开始前结束,那它们是可以并行运行的。

第三篇:呵护幼小生命的建议(1~13)

  这两天到乡下的时间很多,顺便把这本书也带了去,利用等公共汽车或空闲的时间还看了13条建议。

  这第三篇主要是有关身体健康的。主持人:朱美玲(医学博士后),语:高度重视家庭对儿童身体健康的全面呵护。

1、家庭小药箱:经常盘点一下小药箱

2、让孩子尽情感觉清晰的世界:如果孩子由于近视而变得经常呆在家里,不喜欢和小伙伴出去玩,那就应该给孩子配一副合适的眼镜

3、享受耳福:有的孩子对双氢链霉素过敏,只要注射几克就会造成耳聋,这种过敏特性一般是遗传的

4、在日常生活中,很多家长都是让流鼻血的孩子仰卧在床或让孩子的头向后仰,用棉球塞住鼻腔。医生和专家都认为这种作法欠妥当,因为这样虽然阻止血从鼻孔流出来,但血会鼻内经口咽入胃内,不仅观察不到出血量,还会使孩子因此吐出血块,或失血过多引起休克,加重病情。所以这种作法虽然司空见惯,却并不科学,切不可采用。

5、三岁以后就该刷牙了

6、如果家里有人得了感冒,一两岁的幼儿几乎100%会被传染

7、幼儿发烧需关怀:孩子发烧时,首要查明病因;对没有抽风现象,只要其精神尚好,体温不超过39度,不必服用阿司匹林等解热镇痛药,但一定要连续观察,也可服用一些中成药退烧,如小儿牛黄散;用酒精降温不可取,因为幼儿皮肤薄,酒精可通过皮肤吸收

8、呕吐分为疾病性和神经性的

9、驱除蛔虫时禁食油腻

10、贫血孩子多吃蔬菜和用铁锅炒菜

11、为了减轻肺炎引起的肺部瘀血和肺泡渗出液,要经常给孩子翻身

12、维D大部分来自经紫外线照射的人体皮肤,还有少部分来自食物

13、缺乏粗粮、含纤维素的食物、蔬菜水果,也会造成排便困难

  

痴迷于玩水的女儿

  女儿对于玩水,现在几乎到了痴迷的地步。用她婆婆的话来说:看到水就像拼命一样。

  总结一下,女儿玩水有3种形式:

  把水从一个容器里和另一个容器之间倒来倒去;

  喝水再吐出来;

  把玩具丢到水里面洗;

  现在天气还冷,这样玩往往把衣裳打湿,成了她感冒的一个因素。

  前两天,她在幼儿园里玩洗手盆里的水,把水打倒了,一天把自己的袖子打湿了,一天把自己的裤子打湿了。她回来说老师还“打”了她的。

  我不知道孩子怎么对玩水这么感兴趣?

关于用ArgoUML和AndroMDA协作工作的问题及答案(转)

(问题,转自:argouml用户邮件列表)

Date: Wed, 15 Mar 2006 15:58:51 +0530

From: ashikali.abdulkhader@wipro.com  Add to Address Book  Add Mobile Alert 

To: users@argouml.tigris.org

Subject: RE: [argouml-users] How to assign an activity diagram to a controller class.

   

Yeah. It works fine now. !!!

Thank you all.

-Ashik

-----Original Message-----

From: Ludovic Maitre [mailto:ludovic.maitre@free.fr]

Sent: Wednesday, March 15, 2006 1:36 AM

To: users@argouml.tigris.org

Subject: Re: [argouml-users] How to assign an activity diagram to a

controller class.

Hi Dashing and Abdulkhader,

See issue http://argouml.tigris.org/issues/show_bug.cgi?id=4005 for

assigning the context of an activity diagram. Should this issue answer

to your question ?

Dashing Meng wrote:

> He,

> A interesting question,I am happy to hear any reply for it too.

>

> Dashing

>

> */ashikali.abdulkhader@wipro.com/* wrote:

>

>     Hi All,

>    

>     I am currently facing the following problem while building the

>     Online-Store application that comes with AndroMDA.

>    

>     My model is developed using ArgoUML. Currently I face two

>     inter-related problems in building the Online-Store model using

>     the Maven plug-in.

>

>     1) Initially I've created the Activity-Graph in the Use-case's

>     namespace. But there is no way in ArgoUML by which I can assign

>     the activity graph to a controller class (As it is there in

>     Magicdraw) for calling deferrable call events in action states.

>     Hence this resulted in Validation Error during model validation

>     process.

>

>     2) The solution provided is to create the activity graph in the

>     namespace of a Class. Hence I created the activity graph in the

>     controller class's namespace and now am getting the validation

>     error that says "A use case should have one and only one activity

>     graph associated with it".

>

>     Kindly help me how I should design my model in ArgoUML (Associate

>     an Activity Graph with a Controller Class as expected by

AndroMDA)

>     so that I would be able to integrate the model with AndroMDA for

>     code generation.

>    

>     -Ashik

>

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

>     *From:* Dashing Meng [mailto:learndiary_dashing@yahoo.com]

>     *Sent:* Monday, March 13, 2006 4:51 PM

>     *To:* users@argouml.tigris.org

>     *Subject:* RE: [argouml-users] How to assign an activity diagram

>     to a controller class.

>

>     I think an activity graph can be in the namespace of a operation

>     of the class or a usecase's namespace.can't be in the namespace

of

>     a class.

>    

>     Dashing

>

>     */ashikali.abdulkhader@wipro.com/* wrote:

>

>         Dashing,

>        

>         Thanks for your information..

>        

>         In my case the activity graph is already in a use-case's

>         namespace.

>        

>         Now how do I map it to a class's namespace..Wouldn't it be

>         redundant.

>        

>         If my understanding is right the behavior is for a usecase

and

>         not for a class right?

>        

>         Pls corr ect me if I am wrong.

>        

>         Regards,

>         Ashik

>

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

>         *From:* Dashing Meng [mailto:learndiary_dashing@yahoo.com]

>         *Sent:* Monday, March 13, 2006 4:32 PM

>         *To:* users@argouml.tigris.org

>         *Subject:* Re: [argouml-users] How to assign an activity

>         diagram to a controller class.

>

>         Draw the state graph under class's namespace. It is: click a

>         class at left side of window, then choose "create-> new

>         statechart diagram" on the menu.

>         It seems an operation can't be synchronized between the class

>         diagram and the statechart diagram in both two directions?I

>         don't know it very clear.

>        

>         Dashing

>

>         */ashikali.abdulkhader@wipro.com/* wrote:

>

>             Hi all,

>             Does ArgoUML has the feature of assigning a

state/activity

>             graph to a class so that action states can defer

>             operations to the class?< /DIV>

>             This is required for running my model built in AndroMDA.

>             Regards,

>             Ashik

答案:转自argouml问题跟踪系统:http://argouml.tigris.org/issues/long_list.cgi?issuelist=4005

Make activity graph context assignment easier

Issue #: 4005  Component: argouml  Version: 0.20  Platform: PC 

OS/Version: Windows XP  Status: STARTED  Issue type: ENHANCEMENT  Priority: P3 

Resolution:  Assigned to: rastaman  Reporter: waiyung 

Subcomponent: Diagrams  Target milestone:---     

URL:  

Summary: Make activity graph context assignment easier 

Status whiteboard:

Description: 

I am using the Argouml with Andromda extension.

One thing required by Andromda is to assign a controller class as the context of

an activity graph by adding a tag like these, as quote from Andromda's guide:

-----------

 Add a tagged value to the controller, pointing to the use-case, like this:

@andromda.presentation.controller.usecase=My UseCase  (the value is the name of

the use-case).

-----------

I noticed with or without setting this tag, the exported xmi file from argouml

has the following tag within the activity tag:

-----------

   <UML:StateMachine.context>

                    <UML:UseCase xmi.idref = '.:0000000000000EB9'/>

   </UML:StateMachine.context>

--------

where it references the Use Case.

Is there a way to change the context to point to the controller class?

Thanks,

wai yung------- Additional comments from Ludovic Maître Mon Feb 27 10:38:51 -0800 2006 -------

Hi Wai,

To assign an object as the context of an activty diagram i usually do the

following :

- create an use case

- create a class

- create an activity diagram for the use case

- select the activty GRAPH,

- in the property panel use the dropdown list named "Represented Modelelement"

to assign the context of the graph.

Is it what you want to do ?

 ------- Additional comments from Bob Tarling Mon Feb 27 12:11:28 -0800 2006 -------

Is it worth adding context menus to help with this?

Right click on diagram background or explorer element?------- Additional comments from wai yung Tue Feb 28 07:54:39 -0800 2006 -------

Yes. This is exactly what I want.

Thanks------- Additional comments from Ludovic Maître Tue Mar 14 14:07:23 -0800 2006 -------

*** Issue 4090 has been marked as a duplicate of this issue. ***

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

AndroMDA 3.0 M3--开源的MDA方案即将可用(转帖)

现在的AndroMDA已经出到3.2了,这篇3.0 M3的作为收藏。

 

AndroMDA 3.0 M3--开源的MDA方案即将可用  (转自:http://www.chinaitpower.com/A/2005-03-01/148795.html)

 

作者:未知 时间:2005-03-01 12:12 出处:Blog 责编:chinaitpower 

 

              摘要:暂无

 

 

因为有些IDE不支持,一直没有完整留意UML的扩展机制,所以也就以为UML不很适合做MDA。比如生成Hibernate的hbm文件,一些属性的辅助属性比如lazy-load,应该放在Class图的哪里呢? 最近AndroMDA在TSS上发广告,介绍说AndroMDA 3.0 M3作为正式版前的最后一个MileStone已经推出。就连过去看了一下。原来除了StereoType,UML另有Tagged Value的机制,可以把一些属性附在类的方法和属性上。 AndroMDA的结构应该说比较开放和实际的 1.AndroMDA使用过程 1.程序员通过Poseidon or MagicDraw 绘制UML图并导出XMI 或者使用 Schema2XMI工具从数据库生成XMI 在绘制的过程中需要加入AndroMDA所需的StereoType和Table tag,column Tag等。 MagicDraw似乎比较难看,而Poseidon还提供AndroMDA的plug-in,什么功能还没细看。 2.用户通过Ant运行AndroMDA Ant脚本除了指明xmi文件外,另一个很重要的节点就是节点,指明了Hibernate,Spring所需的一切项目级资料比如生成目录,数据源名称等。 3.AndromMDA解释XMI为相对高层的概念,然后调用Cartridge的Velocity语法模板的生成目标代码文件。 目前提供EJB,Hibernate,Spring等几个Cartridge。 如果要扩展Cartridge,只需要按照文档所教的方法,从内到外进行各种层次的增加,修改和替换。 2.五个核心部件核心部件的设计代表了AndroMDA扩展的野心 1.Template Engines 目前使用Velocity作为模板语言,支持向其他语言的扩展。 2.MetaFascade 提供一个高层的Meta-Data访问API, 支持UML1.3、1.4、2.0等等语法的MOF model并可自行扩展。 3 Repositories 支持从XMI文件中读取MOF model,支持其他格式的扩展。 4.Cartridge 通过MetaFascade读取元模型,通过模板生成代码的核心。AndroMDA自带了Spring,Hibernate等Cartridge,也可自行扩展。 5.Translation-Libraries 把平台无关代码翻译成平台相关代码。比如Hibernate的getXXX()方法的HSQL语句,用者可以选择用Tagged Value写在模型里,也可以选择写成平台无关的OCL查询语言,然后用Query-Translation把它翻译成Hibernate HSQL,日后也可次翻译成EJB的EQL。 目前有Query和Valiations两个Library,亦可自行扩展。 3.AndroMDA的意义 AndroMDA带出的最重要的信息是,相对标准的,开源的MDA方案开始可用了,无数程序员不懈的代码自动生成的分散努力,有望纳入一个比较统一的框架内进行。 对比自己的简易版MDA方案: 1.模型的编写与维护 好处第一是, 以前的模型是自己制定的XML标准,现在是标准的UML语言,谁不想自己的东西标准化一点,谁不想被招安阿。 第二是模型可以使用图形化的工具维护模型了。 坏处也是,只能使用图形化工具维护模型了,没有了以前XML文件的文本级的简单。 2.代码的生成 大家暂时都是使用Velocity,只不过它有现成的Cartridge,估计还会不断增加,众人拾柴,比自己孤军奋战,一些大点的模板根本没法写(从经济学角度)好多了。 坏处就是以后修改扩展模板都要循规蹈矩,依足手续,比原来的随意扩展麻烦好多。 等他的正式版出来, 正好也是我们项目结束, 整理代码以作重用的好日子吧. 

 

什么是AndroMDA?(翻译稿v1.0)

版权声明:

原文摘自:http://www.andromda.org/index.php?option=com_content&task=blogcategory&id=0&Itemid=42

本译文为“123行动”网站(http://www.123go.org.cn )版权所有,以<a href="http://creativecommons.org/licenses/by/2.0/">Creative Commons License</a>方式授权。欢迎转载,但请注明译文原始出处(http://www.123go.org.cn/disDiaryContentAction.do?searchDiaryID=1778&goalID=1778&naviStr=a10 )

另外,由于译者水平相当有限,错漏之处敬请指正,联系信箱:mdx-xx@tom.com,或在上述译文原始出处回复。 最新译文也会在

上述译文原始出处随时更新。

×××××××××××××××××××××××××××××××××××××××××××××××××××××××

什么是AndroMDA?

  AndroMDA(发音:Andromeda)是一个依附于模型驱动架构范例(MDA)的可扩展的生成器框架。来自UML工具的模型能被转换成你喜欢的平台(J2EE, Spring, .NET)的可布署的组件。不像其它MDA工具包,AndroMDA带来许多已经做好的盒子,这些盒子征对现在的Axis, jBPM, Struts, JSF, Spring 和 Hibernate之类的开发工具包。AndroMDA也包含一个工具包来制造你自己的盒子或定制元盒子(已经存在的东西)。使用它,你可以用你喜欢的UML工具制造一个定制的代码生成器。

核心特性

AndroMDA当前带来下列特性:

模块设计:AndroMDA所有主要的构成块是可插接的,可以被改变来满足你的需要

支持主要的UML工具,像:MagicDraw, Poseidon, Enterprise Architect 和其它的UML工具

带来完全的UML1.4元模型(当前正在开发对UML2.0的支持)-你也有另外的选择,你可以带来你自己的元模型在MOF XMI里,并从基于它的模型产生代码

使用联系到元模型类的OCL 限制来验证输入的模型。预先配置的限制也保护你不犯大多数普通的建模错误,即添加你自己项目专用的限制

模型到模型的转换帮助你提高抽象水平,现在在java里你可以写你自己的转换,在AndroMDA的下一个主版本里,你也可以在其它的转换语言里写这种转换,例如在 QVT里-一种像 Atlas Transformation Language (ATL)的转换语言

能够使用模版产生任何种类的文本输出(像:源代码,数据库脚本,网页,O/R映射配置文件等等)-你教AndroMDA,它就能做!

模版是基于著名的模版引擎。  现在支持Velocity 和 FreeMarker

现存可用的征对普通企业架构(EJB, Spring, Hibernate, Struts, JSF, Axis, jBPM)的盒子

来自世界各地的队伍成员的全天候的支持:测量在forum.andromda.org的问题响应时间你会非常吃惊!论坛已经包含超过10,000篇文章。

 

盒子

  非常像Eclipse,AndroMDA以插件架构为特色。AndroMDA本身基本上是一个转换引擎。为了支持任意的目标架构,你可以插入定制的转换。这些转换被打包成所谓的盒子。

  

  AndroMDA 带来许多现存可用的盒子,比如:

Spring

EJB 2 / 3

Webservices

Hibernate

Struts

JSF

Java

XSD

 你也可以写你自己的盒子来支持你自己的架构或框架。AndroMDA能够为任何你能够想像得到的架构和计算机语言产生输出。写作盒子的课程可以在AndroMDA.com上找到。  

                                             -littlebat

                                                                              2006.3.15

the error of "a interesting" (3 articles refering)

"a interesting" ->should be "an interesting"

[intristin]

"an university"->should be "a university"

[ju:nu've:siti]

1, come from:http://www.sinoya.com/test.asp?DB_id=364&search_word=a&Topage=1

 a, an 不定冠词(1)

 

a 用于一辅音音素开头的单词前;an 用于以元音音素开头的单词前。例如:

    a worker, an underground worker

注意这里说的是音素,而不是字母,如 hour 的开首字母的“h”不发音,这个单词是以元音音素开头的,所以应用“an hour”。

再如 university 是以辅音音素开头的,所以应为“a university

 

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

2, from:http://www.sinoexam.cn/quanneng/2006-02-19/6880.html

1. a/an(不定冠词)

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

 

WWW.SINOEXAM.CN 2006-02-19 

 

a用在以辅音字母开头,或以读做辅音的元音字母开头的单词前面:

a man一个男人

a university一所大学

a hat一顶帽子

a European一个欧洲人

a one-way street一条单行马路

an用在以元音字母(a,e,i,o,u)开头,或以不发音的h字母开头的单词前面:

an apple一个苹果

an island一个岛

an uncle一位大叔

an onion一个洋葱

an egg一个鸡蛋

an hour一小时

an还用在发音以元音开头的单个字母前面:

an L-plate一块“实习驾驶”车牌

an MP一个国会议员

an SOS一个呼救信号

an‘x’一个x字母、X形的东西或未知数

a/an没有性的变化:

a man一个男人

a woman一个女人

an actor一个男演员

an actress一个女演员

a table一张桌子

 

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

3, from:http://blog.hjenglish.com/tomatotree/articles/13347.html

『开心学语法1』冠词---;a;与;an的区别,你都会了吗?

Easy Grammar 

参与奖励20沪元

灌水者扣除40沪元

 看看这句话错在哪里?

Have you ever read the book of Daddy Long-legs?

It is really a interesting story.

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

以下为回复可见内容

[语音版]

 

(试运行,不好之处,请各位多多包涵了!)

这个练习主要是考考大家对冠词的基础用法掌握的如何!

我们都知道,英语里头的冠词可分为定冠词,即the(在

元音音标前变音读the),和不定冠词,a/an;今天主要

来说说a与an的区别。

在辅音音标前用不定冠词的话,我们应该用a, 比如:

a car, a girl, a table 等; 而在元音音标前,

则要用an, 例如: an orange, an old man等等。

以上的句子里头“interesting”是以元音音标[i]开头的,

所以,不定冠词a应该改为an才对!

It is really an interesting story.

说到a与an的用法,大家还要注意区分元音字母与元音

音标的不同;有些单词是以元音字母开头,但音标是以

辅音音标开始的,这种情况下,我们不能用an , 而要

用 a; 大家来看看以下练习,用 a / an 填空,答案

在下期公布,敬请留意!

________ university ; _________ umbrella

_______ useful book; _________ hour

_______ honest boy; _________ answer

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

 

[此贴子已经被作者于2004-12-15 23:46:50编辑过]

论坛帖子:http://www.hjbbs.com/dispbbs.asp?boardID=2&ID=195074

posted on 2005-02-08 18:22 tomatotree 阅读(193) 评论(1)  编辑 收藏

FeedBack:

# re: 『开心学语法1』冠词---;a;与;an的区别,你都会了吗?2005-12-20 08:40 | anonymity

very good