Linux系统管理入门必须经历的三步

Linux系统管理员如何入门?这是很多Linux新手们关心的问题。一位CentOS的开发者,在英国伦敦工作的系统管理员Karanbir Singh近日撰写了一篇博文,对Linux新人如何进入Linux sysadmin的世界进行了阐述。以下为全文译文:

SA,大神与装机男:运维的工作到底啥样儿?

我们常常会看到这样的问题:面对 Linux 系统管理这个庞大的世界,应该从哪里开始?说实话,我觉得这个问题不存在一个清晰明确的答案。Linux 认证并非最理想的选择。你可以去参加一些培训课程,比如 RHCE。但是,如果没有任何背景信息而去参加培训,你可能无法享受到培训带来的好处,因为所有课程都有一个前提假设:你已经掌握了一些基本知识。

熟悉Linux以及发行版

一个开始系统管理员学习的方法是抓起一本相关主题的书来看(编辑推荐:51CTO读书频道的Linux版块有很多相关图书的样章)。然后安装几 个 Linux 版本(参考:几个比较知名的发行版),然后在你喜欢的版本上搞一些 VM 设置(参考:Linux下三大免费桌面虚拟机评测)。从一个版本开始,然后继续使用这个版本,至少用上几个月。但是,一旦熟悉了那些基础知识,你就要转向 其他发行版本,看看其他版本是如何工作的,这一点也非常重要。无论使用哪个版本,不同之处仅仅在于一些设计和平台常见通讯。最根本的操作系统还是 Linux,这一点不会改变。

使用一个新的平台时,有一点非常重要:你必须真正地投入进去。对此,有一个简单的方法:看看你现在正在做的事情,无论使用哪个平台,试着在这台 Linux 计算机上使用相同的方式去做系统的事情。掌握了那些基础的知识和操作之后,以后你就应该将这个 Linux 版本作为常用的工作平台。从低等级管理能力方面来看,这种方式并不会让你学到太多;不过,它可以让你学会从用户的角度来思考问题。

我一直都认为,最优秀的管理员一定是从用户的角度,从开发者的角度,然后从平台(和管理员)的角度,对问题进行思考。最后我们还要记住,计算机是用来工作的,而管理员的角色就是确保计算机能够充分发挥能力来完成工作。不要迷失了方向:目标仍然是做某件工作。

熟悉相关的应用程序/服务

我最初接触 Linux 的那段时间,常常会感觉很难与其他人的应用程序建立一种关联,很难弄清楚他们如何使用他们的计算机和网络。之所以很困难,因为我没有处于他们所在的位置, 甚至连跟上最新的情况都很困难。在寻找那种亲身体验的机会时,我认识到,和一个应用程序建立关联的最好方式就是加入他们的邮件列表。这样,你就可以看到其 他人遇到的问题,你也可以提出自己的问题,比如为什么那个事情要用那种特别的方式来解决,你还可以查看其他人贴出的 bug 报告。这些信息都清楚了展示了在“真实世界”中人们是如何使用这个应用程序的,这将为提供一个很好的根基。大约 14 年之后,我仍然认为特定程序的用户小组是学习一个应用程序的最好场所,你可以了解到如何对它进行管理,最好的部署方式,还有开发者/用户如何看待这个应用 程序的角度。

编写代码

最后,编程和实际写代码的能力也是有益的。不要相信那种到处流传的说法:管理员无需写代码。和周围优秀的系统管理员聊聊(有很多这样的人),你 会发现,几乎每个人都会告诉你,他们 40-60% 时间用于编写脚本,处理应用程序,而脚本的开发知识是有帮助的。我不是说你需要搞一个 Java 认证,但是你要对 bash 的基本编程有很好理解,至少能够使用 python、perl 和 ruby 中的一门语言(必要)。需要了解 unix/c 的传统想法仍然存在,不过现在,并不是有很多系统管理员需要深入到驱动程序开发那个层次,他们需要了解的大多数函数代码可以利用 bash、ruby、perl 或 python 进行很好的处理。

Linux各发行版本优缺点点评

Linux最早由Linus Benedict Torvalds在1991年开始编写。在这之前,Richard Stallman创建了Free Software Foundation(FSF)组织以及GNU项目,并不断的编写创建GNU程序(此类程序的许可方式均为GPL: General Public License)。在不断的有杰出的程序员和开发者加入到GNU组织中后,便造就了今天我们所看到的Linux,或称GNU/Linux。

  Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。下面介绍一下各个发行版本的特点:

  Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)。Redhat应该说是在国内使用人群最多的Linux版本,甚至有人将Redhat等同于Linux,而有些老鸟更是只用这一个版本的Linux。所以这个版本的特点就是使用人群数量大,资料非常多,言下之意就是如果你有什么不明白的地方,很容易找到人来问,而且网上的一般Linux教程都是以Redhat为例来讲解的。Redhat系列的包管理方式采用的是基于RPM包的YUM包管理方式,包分发方式是编译好的二进制文件。稳定性方面RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。

  Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统。Debian最早由Ian Murdock于1993年创建,分为三个版本分支(branch): stable, testing和unstable。其中,unstable为最新的测试版本,其中包括最新的软件包,但是也有相对较多的bug,适合桌面用户。testing的版本都经过unstable中的测试,相对较为稳定,也支持了不少新技术(比如SMP等)。而stable一般只用于服务器,上面的软件包大部分都比较过时,但是稳定和安全性都非常的高。Debian最具特色的是apt-get /dpkg包管理方式,其实Redhat的YUM也是在模仿Debian的APT方式,但在二进制文件发行方式中,APT应该是最好的了。Debian的资料也很丰富,有很多支持的社区,有问题求教也有地方可去:)

  Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的Linux桌面系统。根据选择的桌面系统不同,有三个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,容易上手,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。

  Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。Gentoo最初由Daniel Robbins(FreeBSD的开发者之一)创建,首个稳定版本发布于2002年。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。

  最后,介绍一下FreeBSD,需要强调的是:FreeBSD并不是一个Linux系统!但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD拥有两个分支:stable和current。顾名思义,stable是稳定版,而current则是添加了新技术的测试版。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编后后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对新硬件的支持没有Linux完备,所以并不适合作为桌面系统。

下面给为选择一个Linux发行版本犯愁的朋友一些建议:

  如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大量的钱购买商业软件,那么你就需要一款适合桌面使用的Linux发行版本了,如果你不想自己定制任何东西,不想在系统上浪费太多时间,那么很简单,你就根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的区别仅仅是桌面程序的不一样。

  如果你需要一个桌面系统,而且还想非常灵活的定制自己的Linux系统,想让自己的机器跑得更欢,不介意在Linux系统安装方面浪费一点时间,那么你的唯一选择就是Gentoo,尽情享受Gentoo带来的自由快感吧!

  如果你需要的是一个服务器系统,而且你已经非常厌烦各种Linux的配置,只是想要一个比较稳定的服务器系统而已,那么你最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。

  如果你需要的是一个坚如磐石的非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。

  如果你需要一个稳定的服务器系统,而且想深入摸索一下Linux的各个方面的知识,想自己定制许多内容,那么我推荐你使用Gentoo。

技术人员如何”正确”的浪费时间?

iPhone产品用户要浪费时间,你就应该这样做:买个有锁的 iPhone ,每天刷几百次威锋网等待越狱或解锁,看到新 App 就安装,程序提示更新立刻升级;有新的固件(哪怕是 β 版)就压制不住升级的欲望;每次 WWDC 提前几个礼拜就关注,坚持看完所有 Keynote 和文章,然后到 Twitter 或是微博发表评论,再在微博上收听苹果产品有关的 ID…

Linux 操作系统用户如果要浪费时间,你就应该这样做:编译一个”更快”的内核;通过源代码编译 Firefox / Chromium ;反复调整字体;不停的美化桌面;闲着没事就跑一下APT更新一下程序;和 Windows 用户打嘴仗;

Windows 操作系统用户如果要浪费时间,你就应该这样做:安装杀毒软件并且按照提示更新;定期扫描病毒和木马;安装个360,不停根据提示更新软件,优化系统,每天查看开机速度击败了全国多少的电脑;重新安装操作系统;跟 Linux 用户和 Mac 用户打嘴仗;

开发人员如果要浪费时间,你就应该这样做:不停的寻找一个更趁手的编辑器,反复尝试不同的配色;尝试最新的语言;买个更好的显卡”挖矿”–bitcoin;和其它语言用户打嘴仗;

Mac 用户如何浪费时间?在Mac上跑一个Windows 虚拟机,再跑一个 Linux 虚拟机;上网购物用Windows,写代码用Linux;Mac OS X?不用。

恭喜你,这些都是”正确”浪费时间的办法。

为什么Linux到现在也不能双击安装软件

看最近互联网上的评论,有一位仁兄矢志不渝的重复“世界上最差的系统就是linux,双击不能安装软件”,而对于该评论的观点众多,但是真正正确的确极少。综合来看,广大网友尤其是喜欢评论的盆友对Linux理解的还比较少,而且很多都是跟Windows做比较(当然这里我承认高手也大有人在),所以我想在这里有必要说一下为什么Linux到现在也不能做到双击安装软件。

首先要说一下,很多Linux的发行版例如Ubuntu或者CentOS、Fedora等,已经早就可以双击安装自己发行版的安装包了,例如deb、rpm等。
那么为什么现在大部分软件还是需要下载一个tar.gz然后./configure/make/make install繁琐的命令安装呢?

其实,Linux下跟Windows的软件发布有一个最大的不同就是Linux下大部分软件都是开源的,只提供源码下载,不提供编译好的二进制下载。所以,上面的三个命令实际上是编译一个软件,然后拷贝到系统对应目录,准确来说不是安装。

但是为什么非要这三个命令,而不是双击之后自动执行上述三个命令呢? Continue reading 为什么Linux到现在也不能双击安装软件