1、6.学习 shell 编程 .37.学习 C 编程 .8.制作自己的 unix 发行版 .前言:对于一些想学习 linux 及正在学习 linux 系统的人,非常希望成为 linux 甚至 unix 高手,本人从事 unix 方面的工作很多年了,想介绍一下自已的经验Unix 有很多分支,这里不再赘述,一般来说主要包括: Linux 、Solaris 、HP-UNIX 、 AIX 、 SCO 、BSD 、AS400 等等系统,一般人精通 2 到 3 门类即可,触类旁通即可很快掌握其它系统。下面是本人的经验:1. 基础学习买一本 Linux 基础方面的书籍,主要讲述基本理论及基本命令,如: Lin
2、ux 基础、 Redhat 9.0 系统管理员完全学习手册;或者在网上下载一些基础方面的资料。系统地看完一本书,并在 linux 系统中(可以用 vmware 安装一个虚拟机)练习基本命令。(之所以从 Linux 开始,是因为相对其它 unix 系统,Linux相对比较简单或容易入门)2. 配置服务器可以尝试配置一台 web 服务器或 FTP 服务器或邮件服务器( sendmail )或其它应用服务器如: vpn (pptp 或 ipsec )。刚开始配置时不要追求完美,只要实现基本的功能即可。这部分基本上照搬书的步骤即可实现。3. 软件安装与服务器管理可以试着安装一些源码程序(不要使用装),
3、通过 ./configure make make installrpm 软件包安装或带有 install 的程序安等步骤掌握程序的编译与安装方法。同时掌握 Linux 服务器日常管理方法: 如日志管理、进程管理、备份与恢复方法、用户管理、权限管理等等,基本成为一个 Linux 系统管理员。平时多访问 linux 技术方面的网站或论坛,也可增加你的技术和经验。注:很多人学习或使用 Linux 多年,但水平仅仅停留在这里4. 更换思纬如果系统了学习了 linux 基础方面的知识并简单配置了一些应用服务器,并掌握了命令的基本用法,这时需要更换思纬,学习一下 Linux 架构方面的知识,并深入了解 L
4、inux 系统体系结构,如 etc 目录是什么作用 /usr/bin /usr/spool /var /opt 是什么作用, ext3 文件系统有什么特点等等。 从思纬上区别看待 Linux 系统。同时可以试着编译一下内核, 并熟悉内核中的功能模块, 通过对内核的认知, 可以让你深入了解 linux 核心的一些技术。5. 学习其它 unix 系统如果基本上熟悉了 Linux 系统,现在可以学习其它系统了,如: Solaris 、AIX 、BSD 等等,毕竟很多重要服务器不是 Linux 系统。很多系统可以在虚拟机上安装,如安装一台 Solaris x86 虚拟机或从网上下载 SCO 虚拟机或
5、在虚拟机上系统地学习该系统, 熟悉它的架构,并与 Linux 比较一下有什么不同。对于一些专用的系统,网上也有好心人公布测试机信息, 你可以远程登录学习(不要删文件或破坏哟) 。在学习其它系统过程中, 可以访问相关系统的 BBS 论坛,看一下别人的问题是怎么解决的。如果你很熟悉Linux 系统,学习其它 unix 系统应该很快。 当然如果你所在的公司有一些服务器如: SUN880 或 HP 服务器或IBM 服务器等,你应该很快可以成为有经验的solaris/HP-UNIX/AIX 高手的。6. 学习 shell 编程作为一个真正的优秀 unix 系统管理员, 不懂 shell 编程是绝对不行的
6、 (注意是绝对),因为在 unix 系统中,很多是 shell 脚本程序,掌握了 shell 编程技术,你可透彻地去了解 unix 系统中程序的运行情况。而且对于 unix 系统,很多系统管理可以通过编写 shell 脚本程序来实现,如自动备份、自动检查网络断线并发邮件通知、自动检查 VPN 状态、收集 PPTP 用户拨入信息等等。精通 shell 编程,让你轻松灵活地管理和驾驭 Unix 系统。7. 学习 C 编程这一步我就不多说了, 毕竟达到这一层次的 unix 系统管理很少(开发人员除外) 。 Unix 中的很多程序是通过 C 编写的,掌握编程技术,你可以编写 unix 下的应用程序。8
7、. 制作自己的 unix 发行版如果对 Linux 进行内核编译、程序裁减、系统优化等,你可以制作自已的 unix 系统。象现在 Linux 发行版太多了,但都是 Linux 内核,只是文件与系统组织方式不一样而已。我们单个人是无法制作象 Redhat 或 debian 这样的系统,但可以制作小的专用系统,如制作专用的 web 服务器或专用的网关防火墙系统。象 IPCOP ( www.ipcop.org )就是这一类,大家可以参考或受到启发。写给想成为 Linux 高手的人们首先 ,我想引用一下别人说过的一句话 :除非在过去的十年你一直生活在山洞里 , 否则你一定听说过 linux.是的 ,现
8、在听说过 linux, 会一点 linux 基本操作的人多如牛毛 ,然而真正能用 linux 做一点事情的确少之又少 ,这就造成了现在的状况 :各大 linux 论坛十分热闹 ,但我国 linux 到底是什么原因造成了这样的状况 ? 纠其原因 ,只有两个字 :浮燥 !如果在论坛里来一次调查投票 ,看一下在论坛里的人到底有多少人手头有一本以上的正规 linux 教材 . 我想这个数字不会超过 30%. 如果再问一下 ,有多少人完整的读过各发行版自带的入门文档 ,系统定制文档 ,系统管理文档和系统安全文档 , 恐怕这个数字不到 10%. 如果进一步再调查一下究竟有多少人静下心来学习过操作系统和计算
9、机网络等和 linux 学习十分密切的专业课程 ,那么恐怕只有 3% 的数字都不到了 .这让我想到了 98 年前后 IT 泡沫时代的中关村 .在中关村的大街小巷 ,到处是一个个意气分发牛哄哄的 IT 精英 .他们戴着默镜 ,剔着小平头 ,张口闭口都是网络 ,安全 , 信息 ,黑客 ,代码 ,产业 .T 恤背后写着三个字 :别惹我 ! 然而最后 IT 泡沫一过 ,只有那些真正肯安安心心静心学习的人在 IT 界存活了下来 .现在国人学习 linux 的状况也是这样 ,学 linux 的人个个都意气分发 ,以为学习 linux 会用 linux 是多么了不起 .学了一点皮毛就认为很牛了 .但是那些企
10、业用人单位却很难找到真正适合的 linux 人材 .因此 ,我想就目前的状况发表一下我的看法 .首先 ,这篇文章是写给那些想成为 linux 高手 ,并真正想用 linux 做些事情的人 .如果你只想做一个菜鸟 ,没事的时候在你双系统启动的电脑上偶尔选一次 linux, 然后没事进去偷着乐 ,那就请你自便 .另外 ,我想说明 ,和真正的牛人比起来 ,我自己还处于一个比较低的水平 .我没有读过内核源代码 ,不知道 linux 工作原理等等 ,但是通过摸索 ,至少我已经找到了通往高手的道路的方向 .因此还是想说两句 .1,linux 不是玩具如果你想系统的学习 linux, 你必需清楚的认识到这一
11、点 .现在有很多人 ,号称是 linux 爱好者 ,但是他们大部分的事情还是用 windows 做 ,而 linux 只是作为一个随便玩玩的系统 .他们懂得一些 linux 的基本操作 ,知道有 linux 这个玩艺 ,也因为经常听人家说 linux 好就咬定了 linux 就是好 .只要有人说 linux 比 windows 差,那么他们就奋起反驳 ,他们也看不起用 windows 的人 ,认为用 windows 的人水平低 . 但是自己用电脑的大部分时间还是用 windows 并且把重要的文件都放在了 windows 分区 ,因为他们骨子里只把 linux 当做玩具 ,没有真正领悟 lin
12、ux 的精髓所在 .如果你真正想系统的学习 linux, 想用 linux 有所作为 ,那么请忘记 windows 的思维方式 , 慢慢感受和习惯 linux 的操作方式 ,总有一天你会真正体验到他的奥妙所在 ,从而从自己内心深处喜欢他 ,使用他 ,而不是为了赶时髦或向人炫耀而使用他 .2,手头有一本好的入门教材吗如果你还没有好好的读完过一本 linux 安装及入门教材就不要到初学者论坛来问题 !因为你连问问题的资格都没有 ! 这是我的一个比较偏激的观点 .如果你现在开始下决心学习 linux 了,那么第一件你要做的事情是到书店去挑一本好书 .而不是到论坛社区去问该用什么版本 ,该如何学习 l
13、inux. 一本好的入门教材可以让你快速领悟 linux 的操作方式 ,系统的基本使用等等 .而且都是前人总结经验写出来的 ,他可以帮你搭起一个学习 linux 的框架 ,对 linux 有一个总体的认识 . 就好比建一撞大楼前先打好地基 ,搭好混凝土框架 .以后就可以慢慢往这个框架里添砖加瓦 ,最后建起大楼 . 而那些想急于学习的 ,不想看书 ,只想靠混论坛来学习 linux 知识的人 ,就好比建一撞大楼 ,今天建好第一层 ,然后第一层就要全部粉刷好 , 装修好 ,家具买好住进去 ,然后第二天再开始建第二层 .这样没有整体规划的学习是学不好 linux 的, 最后的结果是浪费自己的时间 ,也
14、浪费别人的时间 . 如果你不信 , 可以让实事去告诉你 ,以一年为限 ,你和你的一个朋友同时从 0 开始学 linux,计算机基础差不多 .你去买几本好书自己慢慢看边看边做实验 ,让你的朋友整天到各大论坛瞎混零散的学些 linux 知识 .也许一开始 ,你的朋友会比你懂得多 ,但是一年以后你的水平肯定在你的朋友之上 . 在初学阶段 ,不要随便在论坛上发问 ,多看书是根本 ,即使真的非问不可的问题 ,也要先自己动手察资料解决 .实在不行再来问 ,高手不会鄙视菜鸟 ,因为每一个高手都是从菜鸟过来的 ,他们都知道菜鸟的苦衷 .但是高手会看不起那些自己不愿动手动脑不会学习解决问题而只想得到现成答案的人
15、 .那样的人会被高手在心里暗骂成不配用 linux 的蠢货 .你需要以下几种书 :一本好入门教材 -一本 linux 指令参考手册 -linux 系统管理手册 -讲解 linux 系统原理的书 .一开始 ,你只需要入门教材就可以了 .并且严格安教材的讲解去学习 ,不要一天到晚想着去装显卡驱动啦 ,装游戏啦 ,装软件啦 ,这些都没有必要 .你就当你自己的电脑不能上网 ,只能通过看书学习 .慢慢看书 ,稳抓稳打 .慢慢地就融会贯通了 .这时候你再到 linux 初学者论坛去看看 ,你在那里早已经是高手了 .另外 ,一开始你要选定一本入门教材 ,但是不能只看一本 ,因为有些书上讲的 ,可能是另外的书
16、上没有的 .因此 ,重点选一本教材看完 .然后再看两三本入门教材浏览一下 .作为对第一本书的知识的扩充和巩固 . 在看书过程中 , 如果你有什么不懂的 , 不要急于上论坛问 ,自己认真看几次 ,实在不懂没有关系 ,把问题放在那里 .不要钻牛角尖不懂不肯放手 ,这种精神是好的 , 但是方法是错误的 .你尽管学下去 ,也许你看完书本以后的内容 ,就对前面不懂的内容豁然开朗了 .这是在学习 linux 中常有的情况 .另外 ,现在很多入门书籍是针对非技术型用户的 .(我把那些对 linux 本身不感兴趣 , 只想用他来上网 ,听音乐和打字的人称为非技术型用户 ,而把对 linux 本身感兴趣的人称为
17、技术用户 )这些针对非技术型用户的入门书籍几乎通篇都是插图 ,讲解的内容都是如何在图形界面下操作 .这些书籍并不能帮你成为一个高手 .反而会让你养成倚赖鼠标和图形界面操作的习惯以后很难改掉 .因此不能看这些书 ,一定要买那些一开始就从系统基本机构基本命令开始讲解的书籍 .我看过的第一本 linux 入门书籍共有十多章 , 但是他从第十一章开始才大致的讲解了一下图形界面的知识 .我很感谢这本书 ,让我一开始就脱离了 windows 的思维方式 ,给我以后的进一步学习带来了很大帮助 .完成以上的内容 ,你就完成了建大楼打地基建混凝土框架的过程了 .可以接下来进一步学习了 .3,你看完系统自带的文档
18、了吗 ?当你完成入门的过程后 ,就可以开始读其他的文档 ,然后到论坛的精华区看看 ,向你建起来的大楼框架中添砖头了 .当然 ,首先要读的 ,还是系统自带的文档 .绝大多数 linux 发行版都自带非常详细的文档 .比如我一直在用的 redhat, 他有从系统安装到系统安全 ,针对不同层次的人的详尽文档 .静下心来 ,把这些文档读完 ,比看任何论坛的精华区都有用 .书籍和文档就好比是你每天都离不开的一日三餐 ,论坛区的精华文档就好比是点心和水果 .你可以不吃点心和水果 ,但是决不能不吃正餐 .当然 ,不能为看文档而看文档 ,你一定要边看边安文档中说的做试验验证 .这样才印象深刻 ,否则看过就忘记
19、了等于没有看 .另外 ,如果真心想学习 linux 议你去买一个小的二手硬盘有学会技能 ,将来做了 linux 据就是大事情了 .就不要吝啬 ,也不要害怕丢失数据而不敢做实验 .我建,然后放开手干 .不要怕丢失数据而不敢做 ,如果你没系统管理员或者网络管理员到那时因为不会而丢了数4,学习 linux 不是逛自由市场 .经常看到有人问用什么版本的 linux 好 ,其实只要你认真学习无论什么版本都挺好的 .要知道 ,开发 linux 发行版的人都是通读过 linux 内核代码 ,对 linux 原理极其精通的人 ,而且每一个开发团队都对他的发行版做过测试后放出的 .那些国际知名的大品牌更是如此
20、. 因此 ,讨论什么版本好并无意义 ,关键是你是不是真心想学 .不过 ,为了避免曲高和寡 ,最好选用的人多的版本 ,比如 redhat manrake suse 等等 . 国内有一两个 linux 版本做的也不错 ,但是国内的 linux 都是面向非技术型用户开发的 ,因此 ,如果你想成为高手 ,建议不要用国内的版本 .学习 linux 不是逛自由市场 ,选定版本就要静下心来学习 .不要今天换版本明天要升级 .这样对你没有好处 .我见过一些人号称用过十几种甚至几十种 linux, 向人谈论起来头头是到 ,好像懂的很多 ,但是如果你让他去用 linux 搭建一个 web 服务器 , 做一个 li
21、nux 网关 , 他就什么都不会了 .他们把时间都浪费在了版本的转换上了 .5,你能看懂英文文档吗 ?谈论这个问题 ,我有点低气不足 ,因为我自己的英语很差 .但是 ,至少我可以无障碍的读完一般的计算机文档 .计算机英语很简单 ,只要熟悉了计算机专业英语 ,高中毕业的水平就可以轻松的阅读计算机文档了 .如果你的英语实在太差了 ,连最简单的计算机英语文档都看不懂 ,那么在学习 linux 的同时 ,请赶紧学习英语 . 也许你说 ,你可以看翻译的文档 ,当我还是一个菜菜鸟的时候 ,也是这样认为的 .但是 ,后来才发现 ,如果你想深入学习 linux, 看不懂因为文档实在是太难了 .写的最好的 ,最
22、全面的文档都是英语写的 ,最先发布的技术信息也都是用英语写的 .即便是非英语国家的人发布技术文档 ,也都首先翻译成英语在国际学术杂志和网络上发表 .你去看看各大软硬件生产商的官方网站 ,有哪一个不是用英语作为其主站的 ? 长期用windows 的人会很不习惯这一点 ,装个软件还要看半天文档 ,应为 windows 用起来实在太简单了 .但是如果你想学习 linux 就必需学会看各种文档 ,而大部分的文档都是用英语写的 .我发现很多人甚至连 man 文档都不会看 ,有什么命令不会用了就跑到论坛上来问 ,还装出一副可怜相 ,乞讨一个命令的用法 .有这些时间还不如自己看看 man 文档 ,即使你一个
23、一个单词的翻译成中文再自己看都比问别人强 , 因为别人的回答再怎么详尽都比不上 man 文档详尽 .安装一个新的软件时先看 README, 再看 INSTALL 然后看 FAQ, 最后才动手安装 ,这样遇到问题就知道为什么 .否则 ,说明文档都不看 ,结果出了问题再来找答案反而浪费时间 ! 古人说欲速则不达就是这个道理 ! 真的,如果你 man 能搞懂,就具备了一个 IT 人员的基本功了。6,忘记 windows 的思维方式思想性的转变比暂时性的技术提高更有用 ,因为他能帮助你加快学习速度 .现在很多人用 linux. 但是 ,他们用 linux 的方式完全是 windows 的那一套方式 .
24、骨子里都是 windows 的思想 .这样是不能领悟 linux 的精髓体验不到他的优越性的 .我前几天看到一个朋友要把刚装了不到 2 天的 mandrake 10 删除掉 ,我问他为什么 ,他说太慢了 ,受不了 ,还是用 windows 快.然后我留意了一下他用 linux 的方式 ,他的所有操作都带着 windows 的影子 . 他连最基本的删除 ,移动文件这样的操作都要用鼠标 ,这样当然慢了 !最后我只好说 ,你删除吧 ,你不适合用 linux, linux 不是这样用的 .各位可以去看看那些 linux 高级用户 ,他们是怎样操作的 .通常他们都是在 X 上开一个 xterm 或者 r
25、xvt 终端 ,80% 以上的操作都在这个终端下用命令完成 ,因为linux 的命令行十分强大 ,速度也十分快 ,简单的几个命令的组合就能完成非常复杂的操作 .举一个例子 :linux 的常用命令 find, 去看看 man 文档 ,初学者一定会觉得太复杂而不原意用 ,但是你一旦学会了就对他爱不释手 .他的功能实在太强了 ,在配合 exec 参数或者通过管道重定向到 xargs 命令和 grep 命令 ,那么他能完成非常复杂的操作 ,如果同样的操作你用图形界面的工具来完成 ,恐怕要多花十几陪的时间 .因此 linux 高手经常会说 :如果没有 find 和 grep 我们还怎么活 .但是现在大
26、部分的 linux 初级用户受到 windows 影响都喜欢用图形界面的工具来完成一些基本的操作 ,我并不是说图形界面不好 .只是由于 linux 和 windows 设计思想的不同他们的操作方式也有很大不同 .在 windows 下用图形界面操作会比敲命令快 ,但是 linux 是一个命令行组成的操作系统 ,他的精髓在命令行 ! 无论图形界面发展到什么水平这个原理是不会变的 !7,入门以后多学命令当你看完了一两本入门书籍后就应该扩充自己的知识 ,多学习 linux 命令 ,但是不要在初学阶段就系统的学习 linux 命令 ,初学阶段只要学会书上提到过的命令就可以了 .单靠学习各种命令而成为高
27、手是不可能的 ,但不会命令而成为高手也是不可能的 .这就好比学英语 ,什么语法都不懂 ,只捧着单词手册背单词是学不会英语的 , 但是没有单词词汇量英语水平也提不高的 .在 linux 中学习命令的最好办法是学习 bash 脚本编程 .bash 脚本比起其他语言来学习简单 ,但是功能却十分强大 .通过学习 bash 编程 ,能让你掌握大量的 linux 命令 . 另外 ,买一本命令参考手册是必要的 ,遇到不知道怎么用的命令可以随时查询 ,这要比察 man 文档快 .特别适合英语不好 ,看不懂 man 文档的人 .在 linux 中,命令可分为系统基本命令和应用程序命令 .系统基本命令是所有的un
28、ix 类系统都支持的命令 ,走到哪都不变 ,只要是 unix 类系统上就肯定有 .比如 ls,rm,rmdir,cp,cd,mv,cat 等等 .这样的基本命令大约有 200 个 ,这些命令是一定要掌握的 ,我买了一本指令参考手册 这本书非常好 ,他根据命令的常用指数分类 ,标明 3 颗星的为最常用命令 ,一定要掌握 ,两颗星的其次 ,1 颗星的只要知道一下就可以了虽然现在都已经 FC3 了,但是经典的 UNIX 基本命令几十年来都没有变过 !另外有些命令是 linux 特有的或者是某一个应用程序的可执行文件比如 xmms 播放器 .这些只要知道就可以了 ,不知道也无所谓 .有些命令比较少用
29、,因此通常都记不住他的用法 ,对于这些命令至少要知道有这个命令 ,脑子里有印象 ,需要用的时候察一下手册就可以了 ,但是决不能不知道这个命令的存在 !8,学会管理系统等到有了基本知识 ,也掌握了一定量的命令用法后 ,就可以进一步学习管理系统 . 这些内容入门书上会有 ,但是不会很深入 .要深入的学习系统管理 ,就要去买一本类似之类的书 .认真的看书并做实验 ,可以让你很快的进步 .学习配置各种网络服务器 ,用 linux 搭建网络 ,这些都是学习 linux 系统管理和网络管理的好方法 . 到了这个阶段就可以经常上网察察资料 ,看发布软件的官方网站文档和 FAQ, 看看论坛精华区文章 .但是不
30、能本末倒置 ,多看书还是根本 .书籍和官方文档可以让你系统的学习 ,但是论坛可以让你学到一些小知识 ,小技巧 .我本人也经常到论坛上来看看 ,因为即便是一个新手 ,也可能会发现一些你所不知道的小技巧 ,看论坛可以学到这些小技巧 .但是我看文档和看论坛的时间比不会小于 4:1 . 可以把平时积累的问题一次在论坛上发问 . 但是初学的时候不要频繁上论坛 ,因为你要问的问题都在书上写着 ,耐心一点 ,你很快就能看到了 .9,了结系统结构等你有了一定的系统管理知识 ,知道了 /etc 下那些配置文件有什么用 ,知道了一般的网络服务器如何配置后 ,就可以去了解系统结构了 . 了解系统结构不是要你去看什么文件夹放什么内容 ,而是要学习一些原理性的东西 .比如系统是如何引导的 , 引导后启动了那些东西 .系统中哪些是最基本的库文件 ,有什么用等等 .学习系统
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1