http://www.cppblog.com/megax/archive/2008/08/08/58335.html(一个另类观点(只有分析不同观点,才能得到自己的见解))
http://topic.csdn.net/u/20090329/17/13a2e64e-1813-429d-acbe-25fb152f35f6.html(另一个观点)
Linux学习的路线图:
1.掌握至少50个以上的常用命令;
2.熟悉Gnome/KDE等X-windows桌面环境操作;
3.掌握.tgz、.rpm等软件包的常用安装方法;
4.学习添加外设,安装设备驱动程序(比如网卡);
5.熟悉Grub/Lilo引导器及简单的修复操作……
10条建议
1. 不要当“传教士”
很多人在讨论区不断的引起 "Linux vs. Windows" 之类的讨论,甚至争的面红耳赤,这是没有必要的。
这种争论是浪费时间而没有任何用处的。对,你花了一下午,用许多事实“捍卫”了 “Linux 比 Windows 好” 这个说法。但是 Windows 的支持者并不会喜欢上 Linux,他们只是稍微退缩一下,然后找一些新的证据来跟你辩论。
世界上的人们都在利用 Linux 研究最前沿的科学,我们还在这里讨论 “要不要用 Linux” 这种无聊的问题,什么时候才能赶上时代前进的步伐?
什么叫做“Windows 支持者”,什么叫做“Linux 支持者”?我们为什么要支持某一个而反对另外一个?你不需要为 Linux “护法”,不需要成为“Linux 支持者”或者“GNU传教士”,GNU/Linux 已经用事实向世界证明了它们的威力,已经被大多数人接受。你只需要安安静静享受 GNU/Linux 给你的乐趣和自由。
你需要关心的不是你的工具是什么,而是你用它做了什么。精通 Linux 并不说明任何问题,因为它只是一个工具而已。如果你用 Windows 能很好的完成你的任务,那你就没有必要费时间去熟悉 Linux。直到有一天你发现一项任务只有 Linux 才能完成的时候再换也不迟,因为你身边的 Linux 的爱好者一定会很乐意的帮助你。
工具不是人,不应该对工具有感情。这是你在进行任何对工具的讨论前需要提醒自己的事情。面对一些容易引起争论的东西:Word 和 TeX;Emacs 和 VIM;MAXIMA,Mathematica 和 Maple;Gnome, FVWM 和 KDE;Mutt 和 Pine …… 一定要冷静的对自己说:“我不站在它们任何一边,因为它们不是人。”
各人的需要不同,生活的环境不同。对你来说好的东西,对别人来说不一定好,我们需要尊重别人的选择。如果你当面说别人正在用的程序不好,没有人会乐意接受你的意见。我从来没有建议过我爸爸不用 Windows + WPS,而用 Linux + LaTeX 来处理他的英语试卷。因为 WPS 是我爸爸的选择,他能用 WPS 编辑出很好的试题去测试他的学生,那就足够了。
我曾经帮我爸爸做了一个 perl 程序,能够自动从一种我自己设计的 markup 语言转化成 LaTeX 格式的英语试卷。可以自动对试题编号,乱序排版选择题的选项,自动生成答案表,生成老师用的显示答案的版本,自动对短文改错题进行优化分段,自动拼写检查,图形化的配置方式…… 我爸爸高兴的用了一段时间,可是后来他想用 WPS 里的一种标题样式,而我不在家,无法为他修改程序。所以他又换回了 WPS。这就像有人送爱因斯坦一罐剃须泡沫一样,刚开始几天,发现他神采飞扬,不断夸这个东西真舒服。过了几天,发现爱因斯坦又开始用白水剃胡子了,因为剃须泡沫用完了,他懒得自己去买那个东西。这只是习惯问题。
2. 不要强迫自己
喜欢电脑的人总是有某些心理强迫倾向。有的人说:“键盘比鼠标快。我不要用鼠标。这样才有高效率。” 所以他在编辑器里无论什么时候总是用 20w, 10j 这样的命令到达目的点。他甚至觉得图形界面是多余的,干脆 Xwindow 都不装。
全部用键盘看起来的确比让手离开键盘去拿鼠标,再回来“快” 多了,但是快的击键频率不等于工作的高效率,对你的健康更没有什么好处。这只能把你变成打键盘的机器。
当你正在检查你的文章或者程序,思维正在随着字符的含义流动,突然 20w, 10j 这样的东西出现在你的脑子里,是不是会打断思路?不?那说明你当时思考的问题比较简单,这些干扰还不会起到副作用。
其实很多人用电脑的时候,思想都受到某种教条的束缚,上面这个只是众多教条中的一种。某些人制造了很多这种教条,用他的工作方式来要求别人,嘲笑方式跟他不一样的人。比如有的人嘲笑其它人写 C 程序不按 8 字符缩进,嘲笑别人在 vi 里用方向键,嘲笑别人不知道 PVM 是什么,嘲笑其它人用 JAVA, C# 这种由 GC 回收内存语言……
你不用管各种各样的教条,电脑只是你的奴隶,你想怎么用就怎么用。没有人能够约束你,没有人可以嘲笑你的工作方式。电脑明天就不再是这个样子,所以今天你不用完全了解它。你没有必要知道别人创造的一切,因为你需要留点时间自己创造些东西。Just have fun!
当你下次修改文章的时候,不妨试试悠闲的用鼠标在你眼睛看到的地方轻轻点一下。
3. 不要“玩 Linux”
很多人用 Linux 的时候会感觉很迷茫,该用哪个发行呢?是不是我少装了什么?怎么升级这么快啊!怎么这么不稳定!每当遇到新的软件他就想试用,每当新的版本出现,他就更新,然后用鼠标在新的菜单里选择从来没见过的程序来用用。
其实你是为了Linux而使用Linux,而没有找到正确的理由来利用 Linux。你首先要明确用电脑的目的,你用它是为了解决你的实际问题,而不是为了学习安装操作系统,不是为了测试哪个版本好用,不是为了“赶上潮流”,更不是因为你硬盘太大了,你想多占点空间。
如果你启动了电脑之后不知道应该干什么,那么最好先不要用电脑,因为你可能有更重要的事情需要做。
4. 不用挑剔发行版本
很多人刚开始用 Linux 的时候,总是在怀疑别的发行版本是否比自己正在用的这个好,总是怀疑自己以后时候会失去支持,不得不换用别的发行。所以很多人今天是 Redhat,明天又换成了 debian, 一会儿又是 gentoo, …… 甚至有的人在一台机器上装了两个版本的 Linux,然后比较哪一个好。
其实你完全没有必要这样做,任何发行,只要你熟悉了,你在上面的工作方式几乎是不会受到任何影响的。我以前一直用的 Redhat,当我有一天在我的一台新机器上安装 debian 时,我发现使用 Redhat 的经验完全没有浪费。我用了一个下午就配置好了 debian,使它服服贴贴的听我的话,就跟没有换发行一样。
Debian, TurboLinux, SuSE, Redhat, Gentoo, ... 任何一个版本都是不错的。很多人认为自己攒一个 LFS 是高水平黑客的象征,但是不是每个人都有精力去了解所有细节。
如果你是用于个人的日常事物和科研,可以试试 debian。它是我见过的最方便的一个发行。
5. 不要盲目升级
不知道这是心理作用还是什么,有的人看到比较大的版本号,就会很想换成那个。很多人的 Redhat 本来配置的很舒服了,可是一旦 Redhat 发行新的版本,他们就会尽快下载过来,然后选择升级安装。结果很多时候把自己原来修改得很好的配置文件给冲掉了。新的软件又带来了新的问题,比如有一次我的 rxvt 升级到 2.7.8 就跟 miniChinput 冲突了,升级到 Redhat 8.0,发现 xmms 居然缺省不能放mp3了,XFree86 的 xtt 模块在 I810 上有新的 bug,会导致 Mozilla 突然退出。
如果你已经配置好了一切,千万别再整体升级了,这会浪费你很多很多时间的,不值得。有句话说得好:"If it's not broken, don't fix it." 如果你的程序能够完成你需要做的事情,你何必升级呢?
6. 不要配置你不需要的东西
如果你只想做一个像我这样的普通用户,主要目的是用 Linux 来完成自己的科研任务和日常工作,那就可以不用系统管理员或者网络管理员的标准来要求自己,因为当一个系统和网络管理员确实很辛苦。普通用户学习那些不经常用到的复杂的维护系统的工具,其实是浪费时间,学了不用是会很快忘记的!
我不是一个合格的网络管理员,我的服务器都只设置了我自己需要的功能,设置好 ssh, ftp 已经足够了,那样可以省去我很多麻烦。我从来不过度考虑“安全”,因为 Linux 缺省已经很安全了。我没有磁带机,就不用管 tar 的那些稀奇古怪的参数了,czf, xzf, ztf 已经可以满足我所有的需要。sed, awk, ... 我也只会几种常用的命令行。
7. 不要习惯的使用 root 帐号。在需要的时候才 su!
这是很多刚接触 UNIX 类操作系统的人常见的现象,他们不喜欢在管理系统的时候才 su, 而是一直用 root 帐号干所有事情,配置系统,安装程序,浏览网页,玩游戏,编程 ……
结果有一天,他不小心在某个系统目录使用了 rm * ... 后果不堪设想……
8. 不要用商业的眼光来看 Linux。
Linux 不是商业软件,所以不要用要求 Solaris, Windows 那样的眼光来看 Linux. 自由软件的作者们从来不拉拢用户,他们对用户不负有任何责任。实际上在自由软件的世界里,“开发者”和“用户” 并没有明确的界限,大家是朋友。
自由软件很可能只是满足作者和他的朋友的需要,甚至是为了好玩而创造的。自由软件不是完美的,自由软件承认自己有缺点,它不会自吹自擂,蒙蔽“用户”的耳目。这种对作者责任的解脱激发了作者的创造力,他们不用过分考虑“向上兼容”,他们往往比背上重重包袱的商业软件结构更合理,技术更先进。
所以当你用某个自由软件遇到困难的时候,不应该埋怨软件的作者,因为他们对你并没有义务。你不应该把自己当成一个挑剔的顾客,而要把自己作为这个软件的顾问和一个和蔼的建议者,这样你才能理解作者写这个程序时的快乐,在遇到问题时向作者反映,帮助他完善这个软件,成为一个快乐的参与者。就像你的哥哥送你一个他用旧了的自行车,你应该珍惜这份友情,而不要在车坏了,或者骑车摔了一交的时候大骂你的哥哥。如果你真的不能使用这种合作的心态,那么最好不要使用这个软件。
这是一种先进的文化,它包含了互相合作,科学创新的精神。理解这一点不是很容易,很多人往往是因为不能理解这种文化而离开自由软件。这对于作者来说并没有什么损失。
9. 干你的正事去
很多人跟我说,你的网页浪费我好多时间来配置这配置那,一会儿是 FVWM,一会儿是 Mutt ……
嗯……那些东西都是我有空的时候一点一点积累的,如果你想一次性搞定所有那些东西,恐怕得花你几个星期甚至几个月的时间!并不是一定要搞定所有这些东西你才能正常工作的。除非你真的非得利用某个程序,或者你闲着没事,否则你可以不管这些东西。
10. 上面几条仅供参考
以上只是个人意见,不一定适合所有人。取舍由你了!
另外一篇
首先,我想说的是,我自己接触LINUX是今年7月份,以前我接触的是一些UNIX系统,如SCO OPENSVER、HP UX、IBM AIX等。本人干的一直都是系统管理方面的工作,学习LINUX一半是由于自己的兴趣,一半是工作的需要(为以后打基础)。对LINUX而言,我还处在熟悉阶段。
其次,我要说的是,如果你整天就是美化界面、玩安装、汉化等,你并不能说你是一个LINUX的高手,甚至连一个LINUX的熟悉人士都谈不上。君不见老外有几个懂汉化的?但是你能说你的LINUX水平比他们高吗?
学习方向:
一、内核源码学习。我现在没时间也没精力来干着件事,大学时曾经读过UNIX的一些源码,我觉得即使你不分析它,读一遍对每个人都是有好处的。
二、系统管理、SHELL界面、图形外挂等。就系统管理、用户管理、文件管理等来说,LINUX跟UNIX很相象,很多的命令跟UNIX也差不多。在目前,这是我的学习方向。
三、应用开发。就目前而言,在易用性、应用系统多样化方面等,LINUX跟它的竞争对手WINDOWS相比还有一定的差距,我本人的工作性质的关系,基本上不作在LINUX上开发应用的尝试。采用的是拿来就用的原则。
四、应用集成。根据自己的工作环境,尝试将一些LINUX的应用集成到工作中,与公司中其它的各种系统、应用形成一个整体,进行统一的管理。这也是我的学习重点。
学习方法:
一、比较法。我喜欢将一些windows、UNIX中的知识、管理工具、思路跟LINUX作一些比较。发掘它们的相同之处和不同之处。如文件系统,LINUX支持哪些文件系统,而常用的UNIX中又有哪些文件系统,不同的文件系统有什么差异。不同的工作环境中应该怎样选用不同的文件系统?应该怎样在可管理性、安全性、性能等方面进行综合评估它们?如果你一点都说不上的话,我想你应该补补课了。
二、举一反三法。对任何的命令,我习惯性的就是先弄清楚它到底有那些参数,能做什么用;跟它相关的命令有哪些,又能做些什么?;这些命令它到底涉及到哪些系统文件?只有这样,才能对这个命令称得上说熟悉,说不定很多你自以为很熟悉的命令能干很多你意想不到的工作哦!
三、查询法。我不想对一个自己不知道的问题马上去问别人。很多时候MAN一下,用google查询一下,论坛中搜索一下,答案可能就在你的眼前。我发现很多的弟兄没有养成这种习惯,其实通过你自己查询来的知识,你可能领会得更深,因为你需要好好的从头看一下,看看有什么遗漏的,而不是别人简单的一就是一的告诉你。
四、交流法。如果对一个问题进行了思考,查询到了一定的知识,还是解决不了,那么最直接的方法就是上网问别人了,不耻下问嘛!将你的困难、理解、观点告诉别人,请别人来帮助你。
好啦,说了一堆费话,也该入正题了。
一、问问各位斑竹,咱们论坛的方向是什么,立足LINUX使用普及推广;LINUX系统管理;LINUX与其它系统的集成应用管理;LINUX应用开发;LINUX内核技术研究?????怎样从不同的方向来引导弟兄们进行不同层次的学习?
二、也问问各位弟兄们。你们学习LINUX的目的是什么?成为一个使用者;LINUX系统管理者;各种系统综合管理者(集成方案提供者);应用开发人员;LINUX研究者?????
我抛砖引玉,请弟兄们能谈谈自己的一些观点及想法。谢谢!
wxz8兄抛砖引玉,我这块碎瓦也来说说。
美化界面、玩安装、汉化等是推广Linux的基础,我们都希望有更多的朋友加入Linux。一个论坛光推广Linux也不行的,也要在技术上有所成长。所以我想除了推广,咱们还要发展兄弟提到的LINUX系统管理;LINUX与其它系统的集成应用管理;LINUX应用开发;LINUX内核技术研究等等方面,这就是各个专题版块的所要做的。把新手带进了Linux大门,有了一定的基础,就要看各人自己喜好选择感兴趣的方面研究,这时候相应的版块就给这些朋友们提供了一个好地方。LinuxSir应该是个Linux技术的综合论坛。从入门到高手都会找到适合自己的版块,我是这么期望的。
关于大家学习Linux的目的,以前也讨论过,什么都有,很多人都是兴趣,就跟一个爱好一样。并不是都想着将来靠Linux吃饭,这点兄弟你有点现实了,Linux本来就是靠黑客等凭兴趣和自由的信念发展起来的。
wxz8兄分析得很好,尤其是学习法,值得大家学习,谢谢。
我的观点,入门级和高级应用都要做而且要做好(两手抓两手都要硬 )
虽然现在论坛中大部分的讨论都是很初级的,但想让让更多的人加入linux队伍
这些讨论显然还是远远不够的。我们和那些英语国家的人相比,在用linux时又多了语言障碍。汉化过程中会有许多问题,往往一个问题解决了,另一个问题又有了。需要中文输入法。还有就是看“帮助”,人家man一下就解决了很多问题,而我们呢,看不懂,还是得问。(虽然现在有中文的man但还是资料有限,所以一定要把英语学好)。推广linux的基础就是使linux外表更像windows,所以,安装、汉化的讨论是不可避免的,也是很重要的。
企业级应用、高级应用也要做好,因为linux在这些方面是强项。而且只有学习这方面知识才能真正提高自己的水平。做好了才能吸引更多的高手到这个论坛。
关于资金问题,我觉得可以卖linux的相关东西,国外许多非营利组织也是这么做的(也有许多兄弟没用刻录机没有上宽带,卖光盘也是方便了这些兄弟)
还可以找一个信誉比较好的网上广告站点,在页面放些banner 兄弟们会帮着点的。
1.读核心源代码是绝对收益大的,而且需要极大的耐心。
2.如果能加入一些感兴趣的源码开发项目,收获自然不会少。
3.如果能在LINUX下试着开发一个小的项目(哪怕是一个小的工资程序),则一定能收到意想不到的效果。
4.做网管不论做到什么境界,最后还得会编程序,一些东西不是随时有补丁可用的。如想弄懂shellcode,自然还得会看懂代码,不然认识不会深刻。
5.要在浓厚兴趣下,努力试着自己解决,自己查找,最后不行再到新闻组或BBS上问。呵呵,自己解决问题后的快感应该象打桥牌后,打了个打大满贯一样爽就可以了。
观点可能不好,愿者上勾吧。:-)
我很早就想学学关于UNIX/LINUX方面的东西,去年的时候机子上就有了MANDRAKE 8.2了,可是当时一直没怎么用。
大概2,3个月前,带着对windows的一些厌倦,重新开始用linux了,开始有很多问题,很多东西都不懂。现在一般的安装、操作都没有什么问题。一是自己学到一些东西,另一方面,现在的发行版安装其实都比较简单了,各种语言一般都支持,只是可能离我们的期望还差那么一点点了。但是要能用总的来说不是太难的事情,但是要用好就是另外一回事。
我是做windows下的程序开发的,对windows的整个系统结构,特别是桌面程序还是比较了解,虽然不能进入windows的系统内核,不过写过这么多程序之后,我想对这方面的了解还是比这回用的人更深入一些。明白了他最基本的道理,你就可以驾驭他,让自己随心所欲做一些事情。linux也是一样的,你想驾驭他,那么你必须先了解他的习性,看一些系统较底层一些的东西是很有用处的,毕竟一个操作系统都不是在一定的范围内不断发展,很多基本的东西是不大会有大的改动。就像是unix上的东西大多数在linux上可以用的。了解他们之间的关系对你深入了解这个系统很有帮助的。现在在看两本书,一本是<UNIX操作系统教程>,一本是《unix环境高级编程》,很有启发。
我是从一个程序员的角度出发说这些的,如果你想在这个系统上作一些个性话的事情,那么你不了解他怎么性呢。至于“面子”上的事情,过得去就行了!不用太在意。
linux太难用了!(一通鼠标点击,进入/etc)
学习linux,你忘记windows的思维方式了吗?
怎么安装软件阿?那一堆文件是干什么的阿?
学习linux,你还在浮躁吗?
进入linux,随便按了几下.赶紧重启进入win
学习linux,你用心了吗?
.......
你我共勉之
随着Linux应用的扩展许多朋友开始接触Linux,根据学习Windwos的经验往往有一些茫然的感觉:不知从何处开始学起。这里介绍学习Linux的一些建议。
一、从基础开始
常常有些朋友在Linux论坛问一些问题,不过,其中大多数的问题都是很基础的。例如:为什么我使用一个命令的时候,系统告诉我找不到该目录,我要如何限制使用者的权限等问题,这些问题其实都不是很难的,只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。
二、Linux命令是必须学习
虽然Linux桌面应用发展很快,但是命令在Linux中依然有很强的生命力。Linux是一个命令行组成的操作系统,精髓在命令行,无论图形界面发展到什么水平这个原理是不会变的,Linux命令有许多强大的功能:从简单的磁盘操作、文件存取、到进行复杂的多媒体图象和流媒体文件的制作。举一个例子:Linux的常用命令find,察看man文档,初学者一定会觉得太复杂而不原意用,但是你一旦学会就爱不释手.它的功能实在太强了,在配合 exec参数或者通过管道重定向到xargs命令和grep命令,可以完成非常复杂的操作,如果同样的操作用图形界面的工具来完成,恐怕要多花十几陪的时间。
不同版本的Linux命令数量不一样,这里笔者把它们中比较重要的和使用频率最多的命令,按照它们在系统中的作用分成几个部分介绍给大家,通过这些基础命令的学习我们可以进一步理解Linux系统:
安装和登录命令 :login、shutdown、halt、reboot、mount、umount、chsh
文件处理命令 :file、mkdir、grep、dd、find、mv、ls、diff、cat、ln
系统管理相关命令 :df、top、free、quota、at、lp、adduser、groupaddkill、crontab、tar、unzip、gunzip、last
网络操作命令 :ifconfig、ip、ping、netstat、telnet、ftp、route、rloginrcp、finger、mail、nslookup
系统安全相关命令 :passwd、su、umask、chgrp、chmod、chown、chattr、sudo、pswho
三、选择一本好的工具书
工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多,笔者强烈建议阅读影印本的“O'Reilly原版Linux图书http://www.oreilly.com.cn/”,而且出版社还提供了一个非常好的路线图:http://www.oreilly.com.cn/guide/guide_linux.php。
四、选择一个适合你的Linux发行版本
目前全球有超过一百多个Linux发行版本,在国内也能找到十几个常见版本。如何选择请根据你的需求和能力,RedhatLinux和 DebianLinux是网络管理员的理想选择。对于英语不是很好的读者红旗 Linux、中标Linux这些中文版本比较适合。现在一些Linux网站有一些Linux版本的免费下载,这里要说的是并不适合Linux初学者。
五、养成在命令行下工作
一定要养成在命令行下工作的习惯,要知道X-window只是运行在命令行模式下的一个应用程序。在命令行下学习虽然一开始进度较慢,但是熟悉后,您未来的学习之路将是以指数增加的方式增长的。从网管员来说,命令行实际上就是规则,它总是有效的,同时也是灵活的。即使是通过一条缓慢的调制解调器线路,它也能操纵几千公里以外的远程系统。
六、选择一个适合你的Linux社区
随着Linux应用的扩展,出现了不少Linux社区。其中有一些非常优秀的社区:www.linuxforum.net(国内最高水平GNU 站点)、http://www.chinaunix.net/(中国最大的Unix技术社区),但是这几个论坛往往是Linux高手的舞台,如果在探讨高级技巧的论坛张贴非常初级的问题经常会没有结果。推荐适于初学者的Linux社区:Linux伊甸园http://www.linuxeden.com /,中国Linux公社http://www.linuxfans.org/nuke/index.php。
七、勤于实践
要增加自己Linux的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个Linux发行版本,然后进入精彩的Linux世界,相信对于你自己的Linux能力必然大有斩获。对Linux命令熟悉后,你可以开始搭建一个小的Linux网络,这是最好的实践方法。Linux是网络的代名词,Linux网络服务功能非常强大,不论是邮件服务器、Web服务器、DNS服务器等都非常完善。当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
八、如何得到联机帮助
和私有操作系统不同,各个Linux的发行版本的技术支持时间都较短,这对于Linux初学者是往往不够的。其实当你安装了一个完整的Linux系统后其中已经包含了一个强大的帮助,只是可能你还没有发现和使用它们的技巧。
1.主流Linux发行版都自带非常详细的文档(包括手册页和FAQ),从系统安装到系统安全,针对不同层次的人的详尽文档,仔细阅读文档后40%问题都可在此解决。
2.查阅经典工具书和Howto,特别是Howto是全球数以万计的Linux、Unix的经验总结非常有参考价值通常40%的问题同样可以解决。
九、在Linux论坛获取帮助
如果上面的措施没有解决问题,此时你就需要Linux社区的帮助了。 Linux的使用者一般都是专业人士,他们有着很好的电脑背景且愿意协助他人,Linux高手更具有鼓励新手的文化精神。如何在Linux社区获得帮助,需要说明的是你要有周全的思考,准备好你的问题,不要草率的发问,否则只会得到到草率的回答或者根本得不到任何答案。越表现出在寻求帮助前为解决问题付出的努力,你越能得到实质性的帮助。最好先搜寻一下论坛是否有您需要的文章。这样可以获得事半功倍的效果。
下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练,笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机,生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的,这种补充有助于他人在邮件列表/新闻组/论坛中搜索对你有过帮助的完整解决方案,这可能对他们也很有用。
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题我想即使Linux高手也很难快速准确精练的回答你。
你需要提供精确有效的信息。这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。如果你有庞大而复杂的测试条件,尽量把它剪裁得越小越好。可能你会遇到这种情况,对于一个问题会出现不同内容回答,这时你需要通过实践来验证。另外把这个问题放在其他Linux社区请求帮助也是一种选择。如果得不到答案,请不要以为我们觉得无法帮助你。有时只是看到你问题的人不知道答案罢了。这时换一个社区是不错的选择。
另外发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。
十、用Unix思维学习Linux
Linux是参照Unix思想设计的,理解掌握Linux必须按照Unix思维来进行。思想性的转变比暂时性的技术提高更有用,因为他能帮助你加快学习速度。
十一、学习专业英文
如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。即便是非英语国家的人发布技术文档,也都首先翻译成英语在国际学术杂志和网络上发表。安装一个新的软件时先看README,再看INSTALL然后看FAQ, 最后才动手安装,这样遇到问题就知道为什么。如果说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。
附:Linux学习的路线图
1.掌握至少50个以上的常用命令。
2.熟悉Gnome/KDE等X-windows桌面环境操作。
3.掌握.tgz、.rpm等软件包的常用安装方法
4.学习添加外设,安装设备驱动程序(比如网卡)
5.熟悉Grub/Lilo引导器及简单的修复操作。
6.熟悉Linux文件系统?和目录结构。
7.掌握vi,gcc,gdb等常用编辑器,编译器,调试器?。
8.理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程。
9.学习Linux环境下的组网。
建议学习路径 :
首先先学学编辑器,vim, emacs什么的都行。
然后学make file文件,只要知道一点就行,这样就可以准备编程序了。
然后看看《C程序设计语言》K&R,这样呢,基本上就可以进行一般的编程了,顺便找本数据结构的书来看。
如果想学习UNIX/LINUX的编程,《APUE》绝对经典的教材,加深一下功底,学习《UNP》的第二卷。这样基本上系统方面的就可以掌握了。
然后再看Douglus E. Comer的《用TCP/IP进行网际互连》第一卷,学习一下网络的知识,再看《UNP》的第一卷,不仅学习网络编程,而且对系统编程的一些常用的技巧就很熟悉了,如果继续网络编程,建议看《TCP/IP进行网际互连》的第三卷,里面有很多关于应用协议telnet、ftp等协议的编程。
如果想写设备驱动程序,首先您的系统编程的接口比如文件、IPC等必须要熟知了,再学习《LDD》2。
对于几本经典教材的评价:
《The C Programing Language》K&R 经典的C语言程序设计教材,作者是C语言的发明者,教材内容深入浅出。虽然有点老,但是必备的一本手册,现在有时候我还常翻翻。篇幅比较小,但是每看一遍,就有一遍的收获。另外也可用谭浩强的《C语言程序设计》代替。
《Advanced Programing in Unix Envirement》 W.Richard Stevens:也是非常经典的书(废话,Stevens的书哪有不经典的!),虽然初学者就可以看,但是事实上它是《Unix Network Programing》的一本辅助资料。国内的翻译的《UNIX环境高级编程》的水平不怎么样,现在有影印版,直接读英文比读中文来得容易。
《Unix Network Programing》W.Richard Stevens:第一卷讲BSD Socket网络编程接口和另外一种网络编程接口的,不过现在一般都用BSD Socket,所以这本书只要看大约一半多就可以了。第二卷没有设计到网络的东西,主要讲进程间通讯和Posix线程。所以看了《APUE》以后,就可以看它了,基本上系统的东西就由《APUE》和《UNP》vol2概括了。看过《UNP》以后,您就会知道系统编程的绝大部分编程技巧,即使卷一是讲网络编程的。国内是清华翻译得《Unix网络编程》,翻译者得功底也比较高,翻译地比较好。所以建议还是看中文版。
《TCP/IP祥解》一共三卷,卷一讲协议,卷二讲实现,卷三讲编程应用。我没有怎么看过。,但是据说也很经典的,因为我没有时间看卷二,所以不便评价。
《用TCP/IP进行网际互连》Douglus.E.Comer 一共三卷,卷一讲原理,卷二讲实现,卷三讲高级协议。感觉上这一套要比Stevens的那一套要好,就连Stevens也不得不承认它的第一卷非常经典。事实上,第一卷即使你没有一点网络的知识,看完以后也会对网络的来龙去脉了如指掌。第一卷中还有很多习题也设计得经典和实用,因为作者本身就是一位教师,并且卷一是国外研究生的教材。习题并没有答案,留给读者思考,因为问题得答案可以让你成为一个中级的Hacker,这些问题的答案可以象Douglus索取,不过只有他只给教师卷二我没有怎么看,卷三可以作为参考手册,其中地例子也很经典。如果您看过Qterm的源代码,就会知道Qterm的telnet 实现部分大多数就是从这本书的源代码过来的。对于网络原理的书,我推荐它,而不是Stevens的《TCP/IP祥解》。
《Operating System - Design and Implement》这个是讲操作系统的书,用Minix做的例子。作者母语不是英文,所以英文看起来比较晦涩。国内翻译的是《操作系统 设计与实现》,我没看过中文版,因为翻译者是尤晋元,他翻译的《APUE》已经让我失望头顶了。读了这本书,对操作系统的底层怎么工作的就会
有一个清晰的认识。
《Linux Device Driver》2e ,为数不多的关于Linux设备驱动程序的好书。不过内容有些杂乱,如果您没有一些写驱动的经验,初次看会有些摸不着南北。国内翻译的是《Linux设备驱动程序》第二版,第一版,第二版的译者我都有很深的接触,不过总体上来说,虽然第二版翻译的有些不尽人意,但是相比第一版来说已经超出了一大截。要读这一本书,至少应该先找一些《计算机原理》《计算机体系结构》的书来马马虎虎读读,至少应该对硬件和计算机的工作过程有一些了解。