1.1 前言: Linux 有啥功能
很多刚接触 Linux 的朋友常常会问的一句话就是:『我学 Linux 就是为了架设服务器,既然只是为了架设服务器,为什么我还要学习 Linux 的其他功能?例如:例行性工作排程、Bash Shell ,又干嘛去认识所有的登录档等等,我又用不到!此外,既然有好用的 Web 接口的 Server 设定软件,可以简单的将网站架设起来,为什么我还要去学习 vim 手动的编辑一些配置文件?干嘛还需要去理解服务器的工作的原理?』上面这些话对于刚刚学会架设网站的人来说,真是替他们道出了一个新手的心声啊!不过,对于任何一个曾经有过架设公开网站的朋友来说,上面这些话,真的是会害死人!为什么呢?底下我们就来分析一下。
1.1.1 只想用 Linux 架设服务器需要啥能力?
如果有人问你:『Linux 最强大的功能是什么』?大概大家都会回答『是网络功能啊!』,接下来,如果对方再问:『所以学 Linux 就是为了架设服务器啰?』呵呵!这个问题可就见仁见智啰!说穿了, Linux 其实就是一套非常稳定的操作系统,任何工作只要能在 Linux 这个操作系统上面跑,那他就是 Linux 可以达成的功能之一啰!所以 Linux 的作用实在不止于网络服务器的架设吶。
举例来说,在 Linux 上面开发跨平台的数值模式 (model) 诸如大型的大气仿真模式,由于 Linux 的稳定与完善的资源分配功能,使得在 Linux 上面开发出来的程序运作的又快又稳定。此外,诸如 KDE, GNOME 等漂亮的图形接口,搭配诸如 Open Office 等办公室软件,Linux 立刻摇身一变而成为优秀的办公室桌面计算机了 (Desktop)。此外,Google 制作出专门给手机系统用的 Android 也是以 Linux 为底开发的。所以说,千万不要小看了 Linux 的多样功能吶。
不过,不管怎么说, Linux 的强大网络功能确实是造成 Linux 能够在服务器领域内占有一席之地的重要项目。 既然如此,我们就好好的来探索一下 Linux 的网络世界吧!首先, Linux 到底可以达成哪些网络功能呢?这可就多着咯!不论是 WWW, Mail, FTP, DNS, 或者是 DHCP, NAT 与 Router 等等,Linux 系统都可以达到,而且,只要一部 Linux 就能够达到上面所有的功能了!当然,那是在不考虑网络安全与效能的情况下,你可以使用一部 Linux 主机来达成所有的网络功能。
但是你得要知道,『架站容易维护难』啊!更深一层来说,『维护还好、除错更难啊!』架设一个网站有什么难的?即使你完全没有摸过 Linux ,只要参考鸟哥的书籍或者是网站,而且一步一步照着做,包准你一个下午就可以架设完成五个以上的网络服务了!所以说, 架设服务器有什么难的?但要晓得的是,这样的一个网站,多则三天,少则数小时,立刻就会被入侵了! 此外,被入侵之后,或许可以藉由一些工具来帮你将 root 的密码救回来,可惜的是, 这样的一个网站还是有被做为中继站的危险存在的!
另外,如果你使用工具 (例如 Webmin) 却怎么也架设不起来某个网站时,要怎么解决?如果你不懂该 Server 的运作原理与 Linux 系统的除错讯息,那么难道只能无语问苍天?不要怀疑这种情况的可能性, 参考一下各大论坛上面的留言就可以很清楚的知道这种情况的存在有越来越明显的趋势呢!
所以说,架设服务器之前还是有一些基本的技能需要学会的!而且这些技能是『一旦学会之后,真正是终身受用啊!』只要花一个学期 (三~六个月) 就能学会一辈子可以使用的技能,这个学习的投资报酬率真是太高了! 所以,一开始的学习不要觉得苦,那真的是值得的喔!^_^
Tips: 举例来说,鸟哥在 2003 ~ 2005 年跑去当兵了,当兵期间很少碰 Linux 啦!等到退伍后接到的第一个班要带 Linux 国际证照时,几乎所有的指令都在看不起鸟哥 @_@~不过,懂得学习的方法的鸟哥,透过 man 啦,透过 google 啦, 透过以前学习的一些概念啦,遇到问题几乎都可以在一分钟内解决,同学也不会有突然不知所云的困扰!你说, 这样是不是很好呢?
Linux 不是很好学,根据鸟哥过去教学的经验,很多同学在学 Linux 时真是非常的痛苦,不过学完之后, 以前在 Windows 上面遇到的困难却也自然而然的迎刃而解!因为 Linux 训练我们时,是要我们去解决一个发现的问题, 这过程需要很多基础知识的培养,所以学完他之后,你会觉得很多事情都变的很简单而单纯。但如果使用 Windows 的懒人方案,很多问题就不可能了解为啥会发生与为啥可以这样处理了!我们会在下一节分析一下架设服务器的流程, 也会提供相对应的你应该要会的 Linux 技能喔!
1.1.2 架设服务器难不难呢?
不管是 Windows 还是 Linux ,要架设好一部堪称完美的服务器,『基本功课』还是得做的,这包括了:
- 基础网络的基本概念,以方便进行联网与设定及除错;
- 熟悉操作系统的简易操作:包括登录分析、账号管理、文书编辑器的使用等等的技巧;
- 信息安全方面:包括防火墙与软件更新方面的相关知识等等;
- 该服务器协议所需软件的基本安装、设定、除错等,才有办法实作。
而且,每一个项目里面所需要学习的技巧可多着呢!『什么?要学的东西那么多啊!』是啊! 所以,不要以为信息管理人员整天闲闲没事干的吶,大家可是天天在出卖知识的,同时, 还得天天应付随时可能会发生的各种漏洞与网络攻击手法呢!真不是人干的工作~~
这么说的话,架设服务器真的是挺难的喔!事实上,架设服务器其实蛮简单的哩!咦!~怎么又说架设服务器简单了? 不是说架设服务器难吗?呵呵!其实『架设服务器很难』是由于朋友们学习的角度有点偏差的原因啦! 还记得当初进入理工学院的时候,天天在念的东西是基础物理、基础化学、工程数学与流体力学等基础科目, 这些科目花了我们一至两学期的时间,而且内容还很难吶~都是一大堆的理论背不完。 怪了?我们进理工学院是为了求取更高深的知识,那么这些基础知识学了有什么用吶? 呵呵!更高深的知识都是建构在这些基本科目的理论上面的,所以 万一你基础的科目没有读好,那么专业科目里面提到的基本理论怎么可能听的懂?
这样说应该就不难了解了吧!没错!认识操作系统与该操作系统的基本操作,还有那个重要的网络基础, 就是我们在架设服务器前的『基础科目』啦!所以说,在进入 Linux 的服务器世界之前,真的不能够略过网络基础的相关知识,同时, Linux 系统的基本技能也必需要能够理解吶!
好了,或许你还是对于 Linux 系统里面『什么是很重要的知识』不甚了解, 果真如此的话,那么我们就举个简单的例子来说明一下啰!底下列出一般的架设服务器流程, 我们由架设服务器的流程当中,来看一看什么是重要的 Linux 相关技能吧! ^_^。
Tips: 在这一章当中,鸟哥不再就 linux 基础指令进行解析,因为在 『鸟哥的 Linux 私房菜 — 基础学习篇』里面已经详细的介绍过了! 如果持续的介绍指令,简直是浪费篇幅~所以底下仅介绍一个 Linux 基础学习重要性的分析喔!
原文: https://wizardforcel.gitbooks.io/vbird-linux-server-3e/content/2.html