写在六一儿童节前的孩子近况总结

有好多天没有写育儿日记了。一眨眼孩子就4岁了。

后天就是六一儿童节,今天孩子的幼儿园还开了庆祝会。听她妈妈和外婆说,孩子跳舞跳得不错。

这几周来,由于家里其他人有事,而孩子的幼儿园离我们单位比较近,所以孩子基本上由我送和接。接到单位,等下班了再一起回家。

从孩子到我们单位来玩来看,孩子胆子还是比较大的,乐于于人沟通,比较有礼貌,能分享自己的零食。

孩子的零食成了每天的必需品。她外婆说得对,这么小的孩子,一个泡泡糖就哄住了。我也觉得应该对孩子宽容些。原来定的每天只买一次东西的“规矩”也好多时候没有贯彻了。

孩子进入夏天后不喜欢睡午觉,下周他们班上集体在幼儿园午餐和午休,看看群体的力量能不能影响她养成好的作息习惯。

赵老师反映我们孩子年龄偏小,说、写、认字的能力较差;我觉得,在孩子愿意学这些的前提下,可以让她学,她不愿意就算了。我不会强迫她认多少字写多少字的。唐老师反映孩子有点懒,不过,我发现,她感兴趣的事还是很勤快的,比如:洗东西。她喜欢玩水。

原来送孩子进教室,老师来了她总是高兴的上前去喊老师;可最近老师来了孩子好像不大积极,别的孩子都拥上前去喊老师了,她一般站在后面看着。好像现在成了要老师来主动给她打招呼了:)孩子的心里可能是希望得到老师的关注。我们慢慢引导她,老师是爱她的,但是老师不可能只爱她一个人,有那么多的小朋友,老师都要爱。我们再观察和引导一下,估计是这个原因。

在接送孩子的过程中,我留意了一下幼儿园周围哪样生意比较火。一是麻将馆,因为有不少孩子的爷爷奶奶送了孩子就可以在那里打麻将,等到孩子放学去接。我发现接送孩子的爷爷奶奶占多数,爸爸妈妈占少数。麻将馆主们常在上学的时间,背着一个挎包站在校门口拉生意;二是孩子们的零食和小玩具,现在的的孩子,基本上每天都要有点这类消费,所以他们的生意也是比较火的。

孩子的性格依然比较倔强,认定了一个事儿头脑里不容易转过弯来(像我吧)。希望她以后的性格能缓和一下,不要这么倔强,对自己不好。

孩子马上就4岁了,后天又是六一儿童节。希望孩子能健康快乐的成长,也希望所有的孩子都能健康快乐的成长。

(20070530)先从网上搜些相关资料看看

1、由于还得一段时间单位才配笔记本,(约半个多月),因此我暂无法上机。

2、我刚到北京一周,JAVA基础的书未带,需要过一段时间回家去拿(坐8个小时车回家,再坐8个小时回来)。

因此目前情况,我先从网上找些相关的资料看看。

flying之JAVA学习档案

本学习档案的用于记录针对flying的JAVA学习目标的咨询进度。我将在本档案的后续评论中添加阶段性的咨询进度和方案调整。

flying,善于学习,无任何JAVA基础,只有BASIC基础,97年通过全国计算机等级考试二级——Basic语言。。(亦无C、VB基础),稍了解一些VBSCRIPT。

JAVA学习目标暂定为第一步:通过全国计算机等级考试二级——JAVA语言

本站提供JAVA学习方案建议(摘自邮件):


我会尽自己的力量帮您实现 :通过全国计算机等级考试二级——JAVA语言的目标的。

建议:

1、这个目标的驱动力是通过考试。那么书上阶段性的测试题就是您的一个个里程碑。

2、为对JAVA增加感觉和兴趣,第一步完成“Hello, world!”程序。完成了这个程序,您对JAVA的环境设置和运行原理应该有基本的认识。

3、按照您的书本学习,其中可能要补一些类c的知识,补一些oop的观念。

4、我也不知道您这个考试的大纲,而且你是一个善于学习的人,该学些什么您应该比较清楚。

5、有什么心得,疑问,建议您在本站的目标下记成学习日记,我好跟踪您的学习情况,为您提出相应的建议。

6、建议用记事本之类的文本编辑器写程序,用java相关命令行编译执行程序。理由见我的咨询相关材料:JAVA学习入门之我见。

good luck!

                                            JAVA学习日记     孟大兴(littlebat, admin) 

通过计算机国计算机等级考试二级——JAVA

我希望这样:

第一步:通过计算机国计算机等级考试二级——JAVA

第二步:深入学习。

第三步:学习STRUTS、HIBERNATE等。

目前,我希望开始从第一步学习。

备注:本人JAVA基础为0,尚不会HELLO JAVA程序,需要开始学。

但有BASIC基础(97年通过全国计算机等级考试二级BASIC)。

关于JAVA学习入门咨询方法-兴趣点拓展法的一点想法

所谓的“兴趣点拓展法”就是:基于知识都是相通的原理,以当前被咨询者最愿意解决的问题为出发点构建知识体系。兴趣是学习的良好动力。

我有一个叔叔,五十多岁,当年初中没有毕业,前段时间开始学电脑,他的目的是用电脑刻录光盘。所以,他对刻录软件非常有兴趣,他现在连字也不会打,但却把我给他安装的Nero刻录软件的文档看了一个遍,还有windows media player里面的刻录功能也点出来看,并提出一个我也不知道的问题。我答应帮助他学会电脑,于是,我从打字的基础、操作系统等传统的学习路线出发教他,他却因背不了字根表而中断了打字的学习(他的拼音也不会)。我想,对这位叔叔,我不能以一般的路线教他学电脑,他对刻录感兴趣,我可以以此为拓展点构建整个电脑操作的知识体系。这样,他学起来比较有兴趣。

还有,我的老婆对电脑也没有兴趣,但她认为自己应该掌握电脑技能,但对一步一步的照书本学习觉得烦,用她的话说就是“从你那里学现成的就比看书快多了”。不过,老婆现在喜欢聊天,我如果从聊天软件出发引导她自觉的构建整个电脑基础知识系统,应该是比较有效的。

一位老师在邮件中说:


我们如果能将知识的讲授变成"能让他立刻变成一个小小产品",就可以增强知识的吸引力,增加"成就感"。

这个成就,一般要让学习者自己能够做出来个什么东西,而且不能时间太长,否则他会在"挫折"的面前失去信心和兴趣。你首先让大家看到的是"出错信息"(littlebat注,这位老师说的是我在借如何编译learndiaryV0.9源码说说javac命令的基本用法的写作上的问题),这个方法从《The Secret》(littlebat注:这位老师说的是大秘密:成功一定要“艰苦努力”吗?还是另有蹊径?前所未有的影片)来说,是"负面取向",呵呵。

我觉得这位老师说得很有道理。要让学习者保持JAVA学习的信心和兴趣,这是第一重要的咨询技巧。我将在以后的咨询实践中贯彻这个道理。

总之,总是以被咨询者当前最有兴趣、最迫切希望解决和学习的知识点出发来构建他的知识体系。

这个兴趣点就是他这门知识入门的切入点和契机。

借如何编译learndiaryV0.9源码说说javac命令的基本用法

前两天,一位朋友在QQ上向我问一个问题,他说他下载了一个人力资源管理系统,可是不知道怎么编译它?

我答:一般的源码都有Readme文件或ant脚本,可以照此编译。。。

他回复说:里面的说明只有3行:数据库文件在data中,用户名**,密码**;其余什么都没有?

我答:您看它是用什么IDE开发的,最简单的方法是导入开发它的IDE环境中,如果没有,那就只有用javac命令手工编译了。。。

看到这,我给这个人力资源系统下了一个大概的结论,没有详细的文档,没有自动编译脚本,初学者难以把它编译成功。

恰好,我的"学习日记V0.9"也是这样一个“初学都难以编译成功”的程序。它是我初学JAVA完成的第一个成形的程序,可以运行,但是正由于是初学的实习之作。毛病不少。其中一个毛病就是源代码组织不合理,没有详细的文档,没有自动编译脚本。

于是,我们就只有用javac命令来手工编译这些程序了,关于javac命令,您用javac -help在线帮助可以看到全部的用法,只不过初学者可能对其中的含义不是很明白。我也是一个入门级的水平,对其中的全部用法也不是都用过和明白。所以,与其说我开展的是JAVA学习日记网站免费提供JAVA学习入门咨询服务,还不如说是借此机会和大家聊聊JAVA学习,共同交流、共同进步。下面我就借怎样编译成功learndiaryV0.9源码说说javac命令的基本用法,包括:-classpath -cp -sourcepath -d 各个选项。也算是对那位朋友的一个详细的解答。

1、您下载了learndiaryV0.9.rar并解开后,会看到以下文件清单:

  learndairydbV0.9.sql,数据库文件;learndiaryV0.9.war,编译好的程序文件;src,源代码文件目录;readme.html,使用说明。

  您按照里面readme.html文件的步骤应该能把这个程序运行起来(如果您不知道怎样导入数据库,请参考一下这篇日记:mysql数据库的导出和导入)。但是,初学者想修改src里面的源文件并编译运行只能用javac命令手工编译。而且,因为这个程序是用ultraedit手工写的,您想把它导入一个集成开发环境也不太容易。所以,我就用编译src里面的源码为例说说javac命令的基本用法;

2、我们把编译好的类文件放在哪里呢?

跟源文件放在一起肯定不是一个好办法,那么,在解开的目录中建一个名为build的文件夹,与src文件夹在同一目录下。build文件夹用于保存编译好的class文件;

3、让我们来初步试一试编译src里的源文件吧。(我用的是ubuntu 6.06 linux平台+jdk1.5,在windows平台下的路径表示有所不同,您需要改一下

learndiaryV0.9源码没有按包结构存放,如:src文件夹下面包含4个文件夹:action  actionform  dao  model  util,其中的一个类文件:LearnDiaryDB.java就直接放在dao文件夹下面,而LearnDiaryDB.java中的包结构是: package com.learndiary.website.dao;

标准的存放位置是./src/com/learndiary/website/dao。但是,这不妨害我们把源文件编译成类文件。

进入src文件夹所在的目录:


mdx@ubuntu:~/mdxhome/learndiaryV0.9.rar_FILES$ dir

build  learndiarydbV0.9.sql  learndiaryV0.9.war  readme.html  src

用javac命令编译src文件夹下的源文件到build文件夹下面:


mdx@ubuntu:~/mdxhome/learndiaryV0.9.rar_FILES$ javac -d ./build ./src/*/*.java ./src/*/*/*.java

结果如何呢?

长长的报错和警告,片断如下:


...(略)

./src/dao/LearnDiaryDB.java:290: 警告:编码 UTF8 的不可映射字符

      userInfo.setUserName("�ο�");

                            ^

...(略)

./src/actionform/ForbidForm.java:7: 软件包 org.apache.struts.action 不存在

import org.apache.struts.action.ActionErrors;

                                ^

./src/actionform/ForbidForm.java:23: 找不到符号

符号: 类 ActionForm

public class ForbidForm extends ActionForm {

                                ^

...(略)

./src/action/account/LoginAction.java:42: 找不到符号

符号: 类 ServletException

位置: 类 com.learndiary.website.action.account.LoginAction

                throws IOException, ServletException {

                                    ^

./src/action/account/LogoutAction.java:5: 软件包 javax.servlet 不存在

import javax.servlet.ServletException;

                     ^

...(略)

“警告:编码 UTF8 的不可映射字符”是怎么一回事呢?

原来learndiaryV0.9源程序里面有硬编码的中文字符,我用的是gb2312编码,而我现在的编译环境(ubuntu 6.06 linux)的默认编码是utf8,于是,需要指定encoding选项为: -encoding gb2312

而后面那些“找不到符号”、“软件包***不存在”的提示就是没有指定源码中引用到的其它类的路径了,这需要在classpath选项中指定,根据出错信息,我们为了方便,我们在当前目录下建一个名为compilelib的文件夹,把编译需要的库文件拷贝到这个文件夹下面,compilelib与src目录是同级的。确认编译需要的库文件可能不是一次尝试就能全部找出的,有时您需要根据出错信息从网上搜索,以判断是需要哪个库文件,一般来说,这些库文件在我下面说的两个地方都应该找得到,即:程序的WEB-INF/lib目录下面和web程序容器的通用库目录(如tomcat5.0是common/lib)下面。

到哪里去找哪些需要的库文件呢?

1)、用解压软件解开当前目录下面那个learndiaryV0.9.war文件,进入里面的那个WEB-INF/lib目录,把里面的activation.jar, mail.jar, struts.jar库文件拷贝到compilelib目录中;

2)、把您使用的tomcat(我用的是5.0版)安装目录下面common/lib下面的servlet-api.jar也拷贝到compilelib目录中;

于是,compilelib目录下面有如下库文件:


mdx@ubuntu:~/mdxhome/learndiaryV0.9.rar_FILES/compilelib$ dir

activation.jar  mail.jar  servlet-api.jar  struts.jar

然后,执行:


mdx@ubuntu:~/mdxhome/learndiaryV0.9.rar_FILES$ javac -classpath ./compilelib/struts.jar:./compilelib/servlet-api.jar:./compilelib/mail.jar:./compilelib/activation.jar -d ./build -encoding gb2312 ./src/*/*.java ./src/*/*/*.java

(windows下面的classpath分隔符是分号; ,而不是这里linux下面的冒号: )

再解释一下"./src/*/*.java"通配符,它表示编译src目录下面第一层所有目录中的所有java文件,而“./src/*/*/*.java”则表示编译src目录下面第二层所有目录中的所有java文件,learndiaryV0.9的源码只有两层深,如果碰到有的程序的源码有多层深,那您就多添几层了,我还没有找到手工用javac命令把一个目录下面所有目录层次的java文件在一句里面指定好一次全部编译的方法,有谁知道提示一下,谢谢:)

于是,按package组织好的类文件就被编译好放在build目录了,它的组织结构是这样的: ./build/com/learndiary/website/action/...

然后,您就可以把这些编译好的类拷贝到程序的WEB-INF/classes目录下面了。

按理说,我们已经成功的编译了learndiaryV0.9,那还需要我们做什么呢?

我们这里的目的是借编译learndiaryV0.9说说javac命令的用法,所以,我还得继续把字打下去:)

4、您会发现上面的-classpath的选项里没有当前目录. (点号),难道不需要当前目录吗?在javac命令里的-sourcepath选项与-classpath选项有什么区别呢?这两个问题我们以只编译./src/action/disgoal/DisGoalContentAction.java这个文件来说明。

首先,我们把整个源码根据包结构重新组织好,即在src目录下面建一个./src/com/learndiary/website/的目录结构(据个人经验,这样才能单独编译成功DisGoalContentAction.java),再把原来src目录下的那些文件夹移到website文件夹下面去,这样DisGoalContentAction.java的路径就是:./src/com/learndiary/website/action/disgoal/DisGoalContentAction.java

然后,我们回到src目录的上层目录,执行javac命令如下:


mdx@ubuntu:~/mdxhome/learndiaryV0.9.rar_FILES$ javac -classpath ./compilelib/struts.jar:./compilelib/servlet-api.jar:./compilelib/mail.jar:./compilelib/activation.jar -d ./build -encoding gb2312 ./src/com/learndiary/website/action/disgoal/DisGoalContentAction.java

但是,您会发现报错如下:


...(略)

./src/com/learndiary/website/action/disgoal/DisGoalContentAction.java:4: 软件包 com.learndiary.website.dao 不存在

import com.learndiary.website.dao.LearnDiaryDB;

                                  ^

./src/com/learndiary/website/action/disgoal/DisGoalContentAction.java:47: 找不到符号

符号: 类 LearnDiaryDB

...(略)

这是因为DisGoalContentAction.java中引用的用户源文件找不到,这时,我们的-sourcepath选项出场了,添加这个选项的命令如下:


mdx@ubuntu:~/mdxhome/learndiaryV0.9.rar_FILES$ javac -classpath ./compilelib/struts.jar:./compilelib/servlet-api.jar:./compilelib/mail.jar:./compilelib/activation.jar -sourcepath ./src -d ./build -encoding gb2312 ./src/com/learndiary/website/action/disgoal/DisGoalContentAction.java

一切OK了,并且,DisGoalContentAction.java引用到的几个源文件同时被编译进build目录了。

其中,“-sourcepath ./src”的作用是告诉javac到这个目录下面去找它要的东西。

实际上,-sourcepath这个选项完全可以被-classpath代替,只不过classpath除了可以找源文件,还可以找类文件,而sourcepath却只可以找源文件。也就是说,下面这个命令与上面的命令是等效的:


mdx@ubuntu:~/mdxhome/learndiaryV0.9.rar_FILES$ javac -classpath ./compilelib/struts.jar:./compilelib/servlet-api.jar:./compilelib/mail.jar:./compilelib/activation.jar:./src -d ./build -encoding gb2312 ./src/com/learndiary/website/action/disgoal/DisGoalContentAction.java

但是,反过来,用-sourcepath代替-classpath却不行,如下面的命令是不会执行成功的:


mdx@ubuntu:~/mdxhome/learndiaryV0.9.rar_FILES$ javac -sourcepath ./compilelib/struts.jar:./compilelib/servlet-api.jar:./compilelib/mail.jar:./compilelib/activation.jar:./src -d ./build -encoding gb2312 ./src/com/learndiary/website/action/disgoal/DisGoalContentAction.java

于是,我们再来说说classpath中当前路径 .  的作用。

假如您在当前目录下建了一个目录mypackage,再在mypackage下面写了一个Hello.java文件,并以mypackage为包,即它的头部有一句 package mypackage;

然后,您在当前目录(mypackage的父目录)下执行 javac ./mypackage/Hello.java,编译成功。在mypackage目录生成类文件Hello.class,然后,您在当前目录下执行:java -classpath test mypackage.Hello ,其中test是一个不存在的目录,目的是屏蔽系统的classpath中环境变量中定义的当前路径。您会发现类似下面的报错:


mdx@ubuntu:~$ java -classpath test mypackage.Hello

Exception in thread "main" java.lang.NoClassDefFoundError: mypackage/Hello

改过来,使当前路径生效:java -classpath . mypackage.Hello

执行结果就正常了。

所以,classpath当前路径 . 的作用就是告诉java从当前路径开始找它要的东西。

另外,javac中选项 -cp是选项-classpath的缩写,是完全等效的。

以上用编译learndiaryV0.9来说了javac命令的基本用法包括:-classpath -cp -sourcepath -d 各个选项。javac命令还有其它的选项,您用javac -help在线帮助可以看到,不过不常用,我也没有用过,就不写了。

5、一个疑问:

在我们编译DisGoalContentAction.java这一个java源文件的时候为什么必须要告诉它引用的其它源文件的搜索路径(用选项 -sourcepath ./src 告知),而前面编译learndiaryV0.9中src目录中全部源文件时却不用告诉它们彼此引用的其它源文件的搜索路径呢?而且,上面编译全部源文件时还并没有按包的结构组织源代码。大家可以探讨一下这是为什么?

今天就写到这里了。如您要转载本文请注明原始出处为:借如何编译learndiaryV0.9源码说说javac命令的基本用法: http://java.learndiary.com/diaries/3262.jsp 和作者信息: littlebat。我会在本文的原始出处随时对本文进行修定或补充。由于本人水平有限,错漏之处在所难免,欢迎您的批评指正和交流。谢谢。

                   JAVA学习日记  孟大兴

                                        

                                                         2007年5月28日早上初稿

JAVA学习日记网站怎样进行JAVA学习入门咨询服务?

所谓“咨询服务”,不过是先走一步者告诉后来一步者,哪儿有陷阱,别走弯路。

据我的观点,有两种“咨询服务”:

一种是问题驱动的,碰到一个问题向人提问,得到一个解决问题的答案,短平快,结束;

一种是全面系统的、从多方面的学习潜能的开发出发,针对个人的基础和学习习惯,个性化的跟踪咨询者的学习状态和提供相关建议的咨询,这个咨询服务是不能立马看到效果的,但是对咨询者的长远学习能力的培养有利。JAVA学习日记着重于后面这种咨询服务,当然,也不完全排除对当前问题的解答,但解答的出发点和方式还是诱导出您长远的、良好的解决问题的素质。

那么,我们怎么开展JAVA学习入门咨询服务呢?

1、首先,您要有自己的JAVA学习目标。

您需要问自己为什么学JAVA?学到哪个程度?是做网站?做手机程序?做桌面程序?做游戏?或者您是学软件工程的,学JAVA的目的是为软件工程作辅助的?还是仅仅是为增加知识面的泛泛了解?还有,您准备用多少时间来达到这个目标?您一天能用多少时间来学JAVA?

2、评估您的现有知识结构。

您学过程序吗?您学过C语言吗?您知道OOP吗?您学过数据库吗?您对网页制作和网站建设了解多少?做JAVA游戏您有没有丰富的想像力以构建故事情节?。。。

3、向我们提出您参加JAVA学习入门咨询的意愿。

经过您的上面两个方面的自我评估,您需要用我们给出的联系方式(见:JAVA学习日记网站免费提供JAVA学习入门咨询服务

)提交您的意愿。我们会为您建立学习档案(为了大家交流,如果您没有反对,您的学习档案将被公开),并提交您对上面两个方面的自我评估。我们根据您的评估为您制定学习策略和建议学习路线。

4、您需要在本站注册,写下您的JAVA学习目标或加入别人已经建立的JAVA学习目标。

我们要求您在本站注册,像本站已有的用户那样。写下您自己的JAVA学习目标或加入别人已经建立的JAVA学习目标。在平时的学习过程中,您可以记下自己的学习日记。这样,一方面方便大家的交流,另一方面我们可以更好的跟踪您的学习进度,为您随时调整学习路线提出建议。

5、您需要每周都与我们进行沟通。

沟通的方式包括:在本站记下您的学习日记、用本站提供的联系方式(见:JAVA学习日记网站免费提供JAVA学习入门咨询服务)与我们联系。我们需要及时跟踪咨询效果,并为您调整学习策略的建议。如果,您没有事先的告知,中断与本站的咨询联系一周。本站视您为自动放弃咨询资格。并将把您的咨询资格留给别人。(本站咨询人数限3人)

6、本站咨询服务完全免费。

                   JAVA学习日记  孟大兴

                                  2007年5月25日上午

JAVA学习入门标准之我见

在我建立的JAVA学习日记网站提供JAVA学习入门咨询服务的目标中(我把拥有帮助别人JAVA学习入门的能力作为了一个自己的目标),我提到的咨询服务的最终效果是“入门为止”,那么,什么是我心里的“JAVA学习入门”呢?

说老实话,我学习JAVA至今5年了,由于自己没有进一步提高的需要,我的JAVA水平也仅是我想像中的“入门”而已。

所谓“入门”,有一句中国的古话“师傅领进门,修行在个人。”,也就是说,入门之后,您已经具备根据自己的需要,能进一步的自主的有效的学习并拥有技能。再打个比方,就像卫星已经被火箭送入了太空,可以自由的遨游了。这里,学习的技能将让您能够如您所愿的达成您的学习目标,您已经得到了“点金之术”,而不仅仅是金子。

下面把这个“入门”的概念运用在“JAVA学习”上,来聊一下“JAVA学习入门”的标准。这也是JAVA学习日记网站承诺的JAVA学习入门咨询的最终咨询效果的标准。

1、您对JAVA的整个家族成员有了一个全局性的了解。

您已经来到JAVA海洋的岸边,您能够看见海洋中的一座座闪着金光(您可以把它当成是金子的光,也可以当作是知识的光。。。)的岛屿,它们是JAVA的各个运用领域,如:J2EE, JAVA桌面程序,JAVA手机程序,JAVA游戏,JAVA图形,等等。您知道它们大概是什么样子,您也知道怎样才能到达那些岛屿。

2、您对怎样达到您的JAVA学习目标了然于胸。

您知道怎样解决日常工作中的问题,您知道到哪儿去找答案,您知道要达到您的学习需要去读哪些书,需要去哪些网站。您知道为了达到您的学习目标,哪些知识是重点要掌握的,哪些是需要了解的。也就是说,您能分清主次。

3、您能知道如何正确的与人交流JAVA学习问题。

您能知道什么时候向人提问,怎样提问,您能知道怎么样与人共享学习目标和学习经验,从而达到共同进步目的。您不会吝惜自己回答别人以正确的方式和正确的态度向您提的问题,因为能够提出好问题的人就是值得您交往的学友和老师,毫无疑问,您最终将从回答别人的问题中获益。

4、您对JAVA周边技术都有恰当的掌握。

JAVA不是孤立的,它与数据库,应用服务器,操作系统,数据结构,网页设计,您的想像力。。。等等,都是互相联系的。只掌握JAVA语法,您是永远作不出一个完整的程序的;所以,您根据自己的侧重点,对JAVA的周边技术都有主次分明的、恰当的掌握。

以上说的都是JAVA学习入门后必须具备的基本素质。下面谈谈我认为JAVA学习入门后需要掌握的JAVA技能与知识。相对于以上几点,我反而认为这些技能和知识是次要的。而我们JAVA学习日记网站JAVA学习入门咨询服务的重点也在上面几点素质的诱导和启发--这些素质您本来就有的,我们的咨询服务只不过是把您的这些未被开发的素质显现出来,从而为您进一步的JAVA技能的获取和人生各种技能的获取打下基础。

5、您能够根据自己的需要作出一个完整的可运行的程序或小系统。

您能根据自己的需要,自己设计,编码,调试运行成功一个程序。在完成这个小程序的过程中,您可以模仿和借鉴别人的系统和代码,但绝不是照抄,您能读懂自己代码和设计的含义,您能够根据出现的问题,去用多种途径解决问题:捕捉出错信息;看文档,如必备的J2SE文档;上网用搜索引擎查答案;上论坛或向周围的人提问请教。。。您在自己完成的系统中,有自己的思想,有自己的代码,您能知道您的代码中的绝大部分代码的含义,对暂时不甚了了的部分您也能圈定问题的影响范围和评估其重要性,以确定解决它的紧迫性--要知道,不是您碰到的任何一个问题都需要挖根问底的,您要根据自己的目的把时间花在最关键的地方。而在完成这个小系统的过程中,尽量不要使用Eclipse, JBuilder, Netbean等集成IDE环境,虽然它们有利于已入门者提高生产效率,但却不利于初学者练习和掌握基础知识;也不要求您用UML来设计,但您最好能用自己的方式作一个简单的设计,如:把需求列出来,把页面布局用草图画出来。。。,而且,作为周边知识的掌握,您最好是能看懂UML设计图;初学者作的系统,我觉得没有必要要求您有良好的面向对象设计,对系统有恰当的分层--我觉得这些是入门以后要做的事,您要做好这些事,设计模式之类的东西肯定是要学的。再强调一点,我不认为未入门者看设计模式是恰当的。

这个问题写多了,但要说完整不容易,也许后面为有专门的日记来写这个问题。

6、您已经比较完整和认真的精读过一本JAVA基础知识的书了,对JAVA基础有比较完整和重点突出的掌握。您有良好的面向对象的概念--虽然您还不能自如的运用它。

关于JAVA基础知识的书,我首推《JAVA编程思想》,英文书名:Thinking in Java。对这类书,您不能泛泛的读,要精读,对上面的例子和习题都要尽量认真的去做完。学这些书的时候,建议只用记事本,或UltraEdit之类的文本编辑器+Jdk,或者再加上一个mysql数据库和Tomcat服务器就行了。根据您的需要,如您暂时不打算做JAVA桌面程序,那么关于AWT(Abstract Window Toolkit)和Swing之类的东西可以大概看一下,知道是怎么一回事。但是,作为JAVA的基础,那些基础的包的东西一定要掌握,如lang的包,util的包等等,其中,J2SE中的容器类(Collections)必须要掌握,因为它们能够帮您省很多事,您需要知道什么时候用List,Set 或 Map?什么时候用ArrayList, LinkedList?您能正确的、熟练的使用如:Comparator,Iterator等重要的辅助性质的类。。。

良好的面向对象概念非常重要,您需要知道什么是面向对象,什么是封装、继承、多态?什么是包?并在编程中能有意识的运用这些概念。

7、您已经拥有良好的编码习惯和规范。

如JAVA的各个元素的命名规范,代码的缩进写作,甚至数组的排列等等。良好的写作规范是一个很重要的基本功。对代码的可读性和可维护性都很重要。

JAVA学习入门的标准是一个见仁见智的问题,可能每个人都有自己的JAVA学习入门标准。而上面仅是我的一人之见,自己也是一个入门者而已,偏颇和错漏之处还望批评和指正。谢谢。

今天就写到这里了。如您要转载本文请注明原始出处为:JAVA学习入门标准之我见: http://java.learndiary.com/diaries/3256.jsp 和作者信息: littlebat。我会在本文的原始出处随时对本文进行修定或补充。并欢迎您的留言反馈和交流。谢谢。

                   JAVA学习日记  孟大兴

                                        

                                                         2007年5月24日上午初稿

Novell Ubuntu Linux命令大全使用方法

转自:Novell Ubuntu Linux命令大全使用方法: http://www.lslnet.com/linux/docs/linux-7400.htm

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

Novell Ubuntu Linux命令大全使用方法

蓝森林 http://www.lslnet.com 2007年4月28日 20:01

  1 文件管理 # ls ls -a 列出当前目录下的所有文件,包括以.头的隐含文件

文件管理 # ls ls -l或ll 列出当前目录下文件的详细信息

文件管理 # pwd pwd 查看当前所在目录的绝对路经

文件管理 # cd cd .. 回当前目录的上一级目录

文件管理 # cd cd - 回上一次所在的目录

文件管理 # cd cd ~ 或 cd 回当前用户的宿主目录

文件管理 # cd cd ~用户名 回指定用户的宿主目录

2 文件管理 # mkdir mkdir 目录名 创建一个目录

文件管理 # mkdir mkdir –p 递归式去创建一些嵌套目录

文件管理 # rmdir Rmdir 空目录名 删除一个空目录

3 文件管理 # rm rm 文件名 文件名 删除一个文件或多个文件

文件管理 # rm rm -rf 非空目录名 递归删除一个非空目录下的一切,不让提式-f

4 文件管理 # cat cat文件名 一屏查看文件内容

5 文件管理 # more more文件名 分页查看文件内容

6 文件管理 # less less 文件名 可控分页查看文件内容

7 文件管理 # grep grep字符 文件名 根据字符匹配来查看文件部分内容

8 文件管理 # mv mv 路经/文件 /经/文件 移动相对路经下的文件到绝对路经下

文件管理 # mv mv 文件名 新名称 在当前目录下改名

9 文件管理 # cp cp /路经/文件 ./ 移动绝对路经下的文件到当前目录下

10 文件管理 # find find 路经 -name “字符串” 查找路经所在范围内满足字符串匹配的文件和目录

11 文件管理 # ln ln 源文件 链接名 创建当前目录源文件的硬链接

ln /home/test /usr/test1 在/usr下建立/home/test的硬链接

12 文件管理 # ln Ln -s a b 创建当前目录下a的符号链接b

13 文件管理 # touch touch file1 file2 创建两个空文件

14 磁盘管理 # df df 用于报告文件系统的总容量,使用量,剩余容量。

15 磁盘管理 # du du -b /home 查看目前/HOME目录的容量(k)及子目录的容量(k)。

16 磁盘管理 # fdisk fdisk -l 查看系统分区信息

17 磁盘管理 # fdisk fdisk /dev/sdb 为一块新的SCSI硬盘进行分区

18 磁盘管理 # mkfs.ext3 Mkfs.ext3 /dev/sdb1

为第一块SCSI硬盘的第一主分区格式化成

ext3的文件系统

mkfs.ext2 Mkfs.ext2/dev/sdb2 格式化成ext2文件系统

19 磁盘管理 # mount mount -t 文件系统类型 设备路经 访问路经 磁盘管理 # 文件系统类型

ISO9660 光驱文件系统

vfat Fat文件系统(windows)

挂载光驱 # mount –t iso9660 /dev/cdrom /mnt/cdrom

挂载FAT # mount –t vfat /dev/hda5 /mnt/cdrom 挂第一个ide的第五个逻辑分区

17 磁盘管理 # Umount /mnt/cdrom 卸载/mnt/cdrom为空

18 文件权限 # chmod chmod u+s file 为file的属主加上特殊权限

chmod g+r file 为file的属组加上读权限

chmod o+w file 为file的其它用户加上写权限

chmod a-x file 为file的所有用户减去执行权限

chmod 765 file 为file的属主设为完全权限,属组设成读写权,其它用户具有读和执心权限

19 文件权限 # chown chown root /home 把/home的属主改成root用户

20 文件权限 # chgrp chgrp root /home 把/home的属组改成root组

21 打印管理 # redhat-config-printer-tui 进入安装打印机界面

22 打印管理 # lp lp –d hptr file 打印file到hptr的打印机上

23 打印管理 # lpq Lpq –P 打印机名 查看打印机的状态

24 打印管理 # lprm Lprm –P 打印机名 a 删除打印机内的打印作业

25 打印管理 # disable Disable –r “changing paper” HPtr 禁用打印机并提示原因

26 打印管理 # enable Enable HPtr 重新启用被禁用的

27 用户管理 # useradd Useradd 创建一个新的用户

28 用户管理 # groupadd Groupadd 组名 创建一个新的组

29 用户管理 # passwd Passwd 用户名 为用户创建密码

30 用户管理 # Passwd -d Passwd -d用户名 删除用户密码也能登陆

31 用户管理 # Passwd -l Passwd -l用户名 锁定账号密码

32 用户管理 # Passwd -u Passwd -u用户名 解锁账号密码

33 用户管理 # Passwd -S Passwd -S用户名 查询账号密码

34 用户管理 # Usermod -l Usermod -l 新用户名 老用户名 为用户改名

35 用户管理 # Usermod -L Usermod -L 要锁定用户名 锁定用户登陆

36 用户管理 # Usermod -U Usermod –U解锁用户名 解锁用户登陆

37 用户管理 # Usermod -u Usermod –u 501用户名 改变用户UID

38 用户管理 # Userdel Userdel–r 用户名 删除用户一切

39 用户管理 # Groupmod -n Groupmod –n新用户名 老用户名 为组改名

40 用户管理 # Groupmod -g Groupmod –g 501 组名 改变组GID

41 用户管理 # groupdel Groupdel组名 先应删它的用户 删除组

42 用户管理 # gpasswd -a gpasswd -a 用户名 组名 增加用户到组

43 用户管理 # Id id 用户名 查用户信息

44 软件管理 # rpm -qa rpm –qa | less 查询已安装RPM

45 软件管理 # rpm –qa | grep ftp 查询指定RPM

46 软件管理 # rpm -q rpm -q 已安装的RPM包 查是否安装

47 软件管理 # rpm -q telnet-server 查看telnet服务器包

48 软件管理 # rpm -qi rpm –qi 软件包名称 查看软件的描述信息

49 软件管理 # rpm -ql rpm –ql软件包名称 查询软件包的文件列表

50 软件管理 # rpm -qf rpm –qf软件包名称 查询某个文件所属的软件包

51 软件管理 # rpm -qp rpm –qp软件包全名 查询未安装的软件包信息

52 软件管理 # rpm -e rpm –e 软件包名称 删除具体的软件包

53 软件管理 # rpm -U rpm –Uvh软件包全名 升级软件包并显示过程

54 软件管理 # rpm -ivh rpm –ivh 软件包全名 安装软件包并显示过程

55 软件管理 # rpm -V rpm –V软件包名称 验证软件包的大小,类型等

56 软件管理 # tar -c 创建包 –x 释放包 -v 显示命令过程 –z 代表压缩包

57 软件管理 # tar -cf tar –cvf benet.tar /home/benet 把/home/benet目录打包

58 软件管理 # tar -czf tar –zcvf benet.tar.gz /mnt 把目录打包并压缩

59 软件管理 # tar –tf tar –tf benet.tar 看非压缩包的文件列表

60 软件管理 # tar –tzf tar –tf benet.tar.gz 看压缩包的文件列表

61 软件管理 # tar –xf tar –xf benet.tar 非压缩包的文件恢复

62 软件管理 # tar –zxvf tar –zxvf benet.tar.gz 压缩包的文件解压恢复

63 软件管理 # tar -jxvf tar –jxvf benet.tar.bz2

64 软件管理 # diff diff file1 file2 > 补丁名.patch 为新旧文件生成补丁文件

65 软件管理 # diff diff file1 file2 比较两个文件的区别

66 软件管理 # Patch Patch file补丁名.patch 打补丁

67 软件管理 # ./configure --prefix=/usr/local/ 编译前配置

68 软件管理 # make 编译

69 软件管理 # make install 安装编译好的源码包

70 启动管理 # reboot Init 6 重启LINUX系统

71 启动管理 # Halt Init 0 Shutdown –h now 关闭LINUX系统

72 启动管理 # runlevel 显示系统运行级

73 启动管理 # Init [0123456] 改变系统运行级,7种

74 启动管理 # Chkconfig –-list [服务名称] 查看服务的状态

75 启动管理 # Chkconfig –-level <运行级> <服务名> on|off|set 设置服务的启动状态

76 启动管理 # Chkconfig <服务名> on|off|set 设置非独立服务启状态

77 进程管理 # Top动态 Ps-aux静态 进程树pstree 查看系统进程

78 进程管理 # 程序名 & 后台运行程序

79 进程管理 # fg 把后台运行的进程调回前台

80 进程管理 # bg 把前台运行进程调到后台

81 进程管理 # renice Renice +1 180 把180号进程的优先级加1

82 进程管理 # kill Kill PID 终止某个PID进程

83 进程管理 # at at 5pm + 3 days /bin/ls 指定三天后下午5:00执行/bin/ls

84 进程管理 # crontab Crontab -e 用VI的形式来编辑自动周期性任务

85 进程管理 # crontab Crontab -l 查看自动周期性任务

86 进程管理 # crontab Crontab -r 删除自动周期性任务

87 进程管理 # crond Service crond 马上启动自动周期性服务 Service crond <启动|停止|重启|状态>

实现磁盘配额 (注安装LINUX时建立/home分区)

目标:对用户zhao在/home目录上实现soft limit为5k,hard limit 为10k的磁盘配额

实现步骤:

1. 修改包含/home的行, #vi /etc/fstab, 改为:defaults,usrquota。也就是增加usrquota项。然后保存退出。

2、卸载/home目录 #umount /home

3. 挂接/home目录 #mount /home

4、增加用户zhao #useradd zhao

5、修改密码 #passwd zhao

6、生成关于/home目录的quota信息 # quotacheck -cmug /home

#quotacheck -vu /home

7、查看所有用户的信息 #repquota -au

8、设置配额 #edquota -u zhao

将soft 和hard 分别改为5和10

9、保存并退出 #wq!

10、修改时间 #edquota -t

11、 #wq!

12.开启/home上的磁盘配额功能 #quotaon /home

13.查询配额 #quota -u zhao

14.验证配额 #su - zhao

$touch myfile

Ubuntu一些很必要的命令

安装

查看软件xxx安装内容

dpkg -L xxx

查找软件

apt-cache search 正则表达式

查找文件属于哪个包

dpkg -S filename

apt-file search filename

查询软件xxx依赖哪些包

apt-cache depends xxx

查询软件xxx被哪些包依赖

apt-cache rdepends xxx

增加一个光盘源

sudo apt-cdrom add

系统升级

sudo apt-get update

sudo apt-get upgrade

sudo apt-get dist-upgrade

清除所以删除包的残余配置文件

dpkg -l |grep ^rc|awk '{print $2}' |tr ["/n"] [" "]|sudo xargs dpkg -P -

编译时缺少h文件的自动处理

sudo auto-apt run ./configure

查看安装软件时下载包的临时存放目录

ls /var/cache/apt/archives

备份当前系统安装的所有包的列表

dpkg --get-selections | grep -v deinstall > ~/somefile

从上面备份的安装包的列表文件恢复所有包

dpkg --set-selections < ~/somefile

sudo dselect

清理旧版本的软件缓存

sudo apt-get autoclean

清理所有软件缓存

sudo apt-get clean

删除系统不再使用的孤立软件

sudo apt-get autoremove

系统

查看内核

uname -a

查看Ubuntu版本

cat /etc/issue

查看内核加载的模块

lsmod

查看PCI设备

lspci

查看USB设备

lsusb

查看网卡状态

sudo ethtool eth0

查看CPU信息

cat /proc/cpuinfo

显示当前硬件信息

lshw

硬盘

查看硬盘的分区

sudo fdisk -l

查看IDE硬盘信息

sudo hdparm -i /dev/hda

查看STAT硬盘信息

sudo hdparm -I /dev/sda

sudo apt-get install blktool

sudo blktool /dev/sda id

查看硬盘剩余空间

df -h

df -H

查看目录占用空间

du -hs 目录名

优盘没法卸载

sync

fuser -km /media/usbdisk

内存

查看当前的内存使用情况

free -m

进程

查看当前有哪些进程

ps -A

中止一个进程

kill 进程号(就是ps -A中的第一列的数字)

或者 killall 进程名

强制中止一个进程(在上面进程中止不成功的时候使用)

kill -9 进程号

或者 killall -9 进程名

图形方式中止一个程序

xkill 出现骷髅标志的鼠标,点击需要中止的程序即可

查看当前进程的实时状况

top

查看进程打开的文件

lsof -p

ADSL

配置 ADSL

sudo pppoeconf

ADSL手工拨号

sudo pon dsl-provider

激活 ADSL

sudo /etc/ppp/pppoe_on_boot

断开 ADSL

sudo poff

查看拨号日志

sudo plog

网络

根据IP查网卡地址

arping IP地址

查看当前IP地址

ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'

查看当前外网的IP地址

w3m -no-cookie -dump www.ip138.com|grep -o '[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}'

w3m -no-cookie -dump ip.loveroot.com|grep -o '[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}/.[0-9]/{1,3/}'

查看当前监听80端口的程序

lsof -i :80

查看当前网卡的物理地址

arp -a | awk '{print $4}'

ifconfig eth0 | head -1 | awk '{print $5}'

立即让网络支持nat

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

sudo iptables -t nat -I POSTROUTING -j MASQUERADE

查看路由信息

netstat -rn

sudo route -n

手工增加删除一条路由

sudo route add -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1

sudo route del -net 192.168.0.0 netmask 255.255.255.0 gw 172.16.0.1

修改网卡MAC地址的方法

sudo ifconfig eth0 down #关闭网卡

sudo ifconfig eth0 hw ether 00:AA:BB:CCD:EE #然后改地址

sudo ifconfig eth0 up #然后启动网卡

统计当前IP连接的个数

netstat -na|grep ESTABLISHED|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n

netstat -na|grep SYN|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -r -n

统计当前20000个IP包中大于100个IP包的IP地址

tcpdump -tnn -c 20000 -i eth0 | awk -F "." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr | awk ' $1 > 100 '

屏蔽IPV6

echo "blacklist ipv6" | sudo tee /etc/modprobe.d/blacklist-ipv6

服务

添加一个服务

sudo update-rc.d 服务名 defaults 99

删除一个服务

sudo update-rc.d 服务名 remove

临时重启一个服务

/etc/init.d/服务名 restart

临时关闭一个服务

/etc/init.d/服务名 stop

临时启动一个服务

/etc/init.d/服务名 start

设置

配置默认Java使用哪个

sudo update-alternatives --config java

修改用户资料

sudo chfn userid

给apt设置代理

export http_proxy=http://xx.xx.xx.xx:xxx

修改系统登录信息

sudo vim /etc/motd

中文

转换文件名由GBK为UTF8

sudo apt-get install convmv

convmv -r -f cp936 -t utf8 --notest --nosmart *

转换文件内容由GBK为UTF8

iconv -f gbk -t utf8 $i > newfile

转换 mp3 标签编码

sudo apt-get install python-mutagen

find . -iname “*.mp3” -execdir mid3iconv -e GBK {} /;

控制台下显示中文

sudo apt-get install zhcon

使用时,输入zhcon即可

文件

快速查找某个文件

whereis filenamefind 目录 -name 文件名

查看文件类型

file filename

显示xxx文件倒数6行的内容

tail -n 6 xxx

让tail不停地读地最新的内容

tail -n 10 -f /var/log/apache2/access.log

查看文件中间的第五行(含)到第10行(含)的内容

sed -n '5,10p' /var/log/apache2/access.log

查找包含xxx字符串的文件

grep -l -r xxx .

查找关于xxx的命令

apropos xxx

man -k xxx

通过ssh传输文件

scp -rp /path/filename username@remoteIP:/path #将本地文件拷贝到服务器上

scp -rp username@remoteIP:/path/filename /path #将远程文件从服务器下载到本地

查看某个文件被哪些应用程序读写

lsof 文件名

把所有文件的后辍由rm改为rmvb

rename 's/.rm$/.rmvb/' *

把所有文件名中的大写改为小写

rename 'tr/A-Z/a-z/' *

删除特殊文件名的文件,如文件名:--help.txt

rm -- --help.txt 或者 rm ./--help.txt

查看当前目录的子目录

ls -d */. 或 echo */.

将当前目录下最近30天访问过的文件移动到上级back目录

find . -type f -atime -30 -exec mv {} ../back /;

将当前目录下最近2小时到8小时之内的文件显示出来

find . -mmin +120 -mmin -480 -exec more {} /;

删除修改时间在30天之前的所有文件

find . -type f -mtime +30 -mtime -3600 -exec rm {} /;

查找guest用户的以avi或者rm结尾的文件并删除掉

find . -name '*.avi' -o -name '*.rm' -user 'guest' -exec rm {} /;

查找的不以java和xml结尾,并7天没有使用的文件删除掉

find . ! -name *.java ! -name ‘*.xml’ -atime +7 -exec rm {} /;

统计当前文件个数

ls /usr/bin|wc -w

显示当前目录下2006-01-01的文件名

ls -l |grep 2006-01-01 |awk '{print $8}'

压缩

解压缩 xxx.tar.gz

tar -zxvf xxx.tar.gz

解压缩 xxx.tar.bz2

tar -jxvf xxx.tar.bz2

压缩aaa bbb目录为xxx.tar.gz

tar -zcvf xxx.tar.gz aaa bbb

压缩aaa bbb目录为xxx.tar.bz2

tar -jcvf xxx.tar.bz2 aaa bbb

Nautilus

显示隐藏文件

Ctrl+h

显示地址栏

Ctrl+l

特殊 URI 地址

* computer:/// - 全部挂载的设备和网络

* network:/// - 浏览可用的网络

* burn:/// - 一个刻录 CDs/DVDs 的数据虚拟目录

* smb:/// - 可用的 windows/samba 网络资源

* x-nautilus-desktop:/// - 桌面项目和图标

* file:/// - 本地文件

* trash:/// - 本地回收站目录

* ftp:// - FTP 文件夹

* ssh:// - SSH 文件夹

* fonts:/// - 字体文件夹,可将字体文件拖到此处以完成安装

* themes:/// - 系统主题文件夹

查看已安装字体

在nautilus的地址栏里输入”fonts:///“,就可以查看本机所有的fonts

程序

详细显示程序的运行信息

strace -f -F -o outfile

日期和时间

设置日期

#date -s mm/dd/yy

设置时间

#date -s HH:MM

将时间写入CMOS

hwclock --systohc

读取CMOS时间

hwclock --hctosys

控制台

不同控制台间切换

Ctrl + ALT + ←

Ctrl + ALT + →

指定控制台切换

Ctrl + ALT + Fn(n:1~7)

控制台下滚屏

SHIFT + pageUp/pageDown

控制台抓图

setterm -dump n(n:1~7)

数据库

mysql的数据库存放在地方

/var/lib/mysql

从mysql中导出和导入数据

mysqldump 数据库名 > 文件名 #导出数据库

mysqladmin create 数据库名 #建立数据库

mysql 数据库名 < 文件名 #导入数据库

忘了mysql的root口令怎么办

sudo /etc/init.d/mysql stop

sudo mysqld_safe --skip-grant-tables &

sudo mysqladmin -u user password 'newpassword''

sudo mysqladmin flush-privileges

修改mysql的root口令

sudo mysqladmin -uroot -p password '你的新密码'

其它

下载网站文档

wget -r -p -np -k http://www.21cn.com

· -r:在本机建立服务器端目录结构;

· -p: 下载显示HTML文件的所有图片;

· -np:只下载目标站点指定目录及其子目录的内容;

· -k: 转换非相对链接为相对链接。

如何删除Totem电影播放机的播放历史记录

rm ~/.recently-used

如何更换gnome程序的快捷键

点击菜单,鼠标停留在某条菜单上,键盘输入任意你所需要的键,可以是组合键,会立即生效;

如果要清除该快捷键,请使用backspace.

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

                                      转帖完毕

安装Ubuntu

本来,对于linux操作系统,我是不大追求新的,一方面是自己的机器太老了,一方面是没有需要。所以,我家里的redhat linux9.0可能用了都有1年了也没有去动过。但是,这几天,我把redhat linux9.0去掉了,用硬盘iso文件(ubuntu-6.06-alternate-i386.iso)安装ubuntu的方法安装了Ubuntu6.06桌面版。

我为什么去掉redhat linux9.0呢?套用一位linuxsir.org上的朋友的话是“现在谁还用这”。

当我编译安装一个新的软件时,总是告诉我这样那样的库过时,要升级;还有前一段时间在linux下用得好好的MilyQQ和LumaQQ不知是安装了(或升级了)什么东西的缘故,突然一齐罢工都不能用了,我又畏惧去找原因,生怕又有一大堆东西要掌握,而我现在的重点不在于此;然后就是我安装了firefox的flash 9.0插件后,firefox只要一浏览有flash的网页往往就会崩溃。于是,我终于要下决心离开redhat linux9.0了。本来想找它的后续桌面版Fedora,但是Fedora的光盘有六张(我不知道到底需要几张光盘才能安装它?也不知道Fedora能不能进行硬盘安装?),我自己原来下过Ubuntu的硬盘iso安装文件,也在单位的P4 1.7G + 256M的机器上用过几天Ubuntu(因为我嫌它运行慢了和有点不适应它的“大包大揽”的自动化安装方式和它的默认UTF-8的locale编码,后来就没有用了),只有约700M大小,所以我就用Ubuntu了。

下面分享一下我用硬盘iso文件安装Ubuntu的经验。具体步骤在上面提到的那篇日记中有:用硬盘iso文件(ubuntu-6.06-alternate-i386.iso)安装ubuntu的方法

其中要注意的是:

1)、要选英文安装语言,以后安好了在安装中文包;我选中文安装语言时,出现了安装不能继续前进的问题,也不知道是不是语言问题引起的,反正是第二次选择英文安装语言后没有出现这个问题了;

2)、原来的/home(用户数据)和/usr/local(用户程序)分区,在安装程序分区时直接挂载到相应的挂载点,并选择“keep data existed”(大概是这样,意思是保持原来的数据不变)就行了;

3)、如果安装grub不成功时,重复安装一次“基本系统”(英文大概是“base system”吧)就成了(我试过两次都是这样);

4)、grub命令中的root (hd1,0)是要确定vmlinuz和initrd.gz(或initrd.img之类)文件所在的分区,一般来说是boot分区,如果没有划分boot分区(听说这样不科学,不过我就是这样的:))那就是根分区(/)(例如:在根分区下作了/boot目录下的vmlinuz和initrd.img文件的链接为/vmlinuz和/initrd.img);我的认识就是这样的,如果哪位大侠发现有什么错漏之处还望指点一二,谢谢。

5)、下面这个问题害得我刚装好Ubuntu一天又在今天中午重新安装Ubuntu了。

我下载了一个zhcon0.2.6的deb包安装(Ubuntu仓库里的zhcon0.2.3过时了,而且在我的系统上不能工作),报告说libc6版本低了,我又下载一个最新的libc6的deb包准备安装,却又报告缺哪个包。。。,又缺哪个包。。。

然后我准备用Ubuntu的新得立包管理系统更新libc6,报告3 broken,不能更新,而且快捷菜单里只有卸载的选项,一选择卸载又有许多与libc6有关的东西要更改。。。弄来弄去,就是不能继续更新libc6了。我知道如果我花时间去找解决方法也找得快。但是,我感觉不如重新装来得快:)

我感觉这是我不能适应Ubuntu安装方式的原因,牵涉面太宽了,而且这种自动化的方式使我手动控制变得有点不太方便。也许是没有深入Ubuntu的原因吧?

不过,从这个事件我得到一个教训,在Ubuntu下,用新得立自动包管理方式不能安装的东西,不要尝试用deb包去安装,如果deb包的东西打破了新得立系统的统一管理方式可能会有麻烦(像我碰到的那样)。这时,我觉得,最好的方式还是从源码编译手动安装的好(我还没有试着在ubuntu下编译安装zhcon0.2.6,但在redhat linux9.0下成功的)。

6)、我感觉AMD Duron 700 + 384M的机器比原来单位上的P4 1.7G + 256M的机器跑Ubuntu桌面版还要快点,可能是前者的内存多点吧?

7)、每个系统都有它自己的脾气,如果我们摸准了它的脾气,它就会乖乖听话,给我们卖力工作的:)

Windows XP操作系统现在在搞正版认证,如果你在自动更新中下载了正版认证的更新,如果你是盗版的Windows XP,那么,你的系统就会被盖上一个戳,标记为盗版,告诉你是盗版软件的受害者。还有,如果你到Microsoft的网站去下载新版的IE7,就会要求你先进行正版认证。我想,我坚持把linux作为自己的工作系统是应该不会错的,不为别的,清静,省心,省钱,还是正版:)