1.为啥我们要学习Linux?

我们干嘛要学习Linux? Linux能给我们带来什么价值呢?

Linux给我的感觉就是稳定,免费,性能好.

稳定,体现在哪里?我们使用PC机,安装的操作系统一般是windows xp,windows 7等,这些操作系统,如果你开一个星期,你的机器就要重启了,因为电脑会变的很慢,但是如果你用Linux,一般可以撑一个月不用重启,当前如果机器比较繁忙就例外了。这里我说的是个人PC,而很多互联网公司使用的是廉价的PC Server,目前价格是每台2-3W,PC Server和个人PC本质上没什么区别,一样的x86处理器架构,一样都是复杂指令集,只是PC Server的稳定性比个人PC高很多,性能和内存也比较高,但是代价就是开机比较久,一般要5分钟,声音也特别吵,家用买PC Server简直没法用。一般PC Server安装Linux可以维持一年不重启。

免费,这个大家应该清楚,windows操作系统不是免费的,尤其是对企业来说,如果每台服务器都安装windows,那企业要交的操作系统的费用很可观,尤其对互联网公司来说,拥有众多的PC Server,分布全国各地,要交windows的保护费,简直是要命。而在中国,一般企业都是象征性买十几个license,交点保护费也过关了(windows有后门,不找家用电脑麻烦,企业会被找麻烦),但是如果企业比较大,效益好,机器多,十几个license也不够保护费,所以使用免费的Linux是不错的选择。

性能,Linux做了很多优化,例如Linux会把空闲的内存缓存文件目录,文件内容,能不用虚拟内存就不用,但是windows一定会用虚拟内存,即使内存足够。软件上,Linux有庞大的开源软件支持,web服务器,缓存服务器,数据库服务器,这些都是免费的选择,都是稳定成熟的产品。

安全性、漏洞的快速修补:如果你常玩网络的话,那么你最常听到癿应该是『 没有绝对安全的主机』! 没错!不过 Linux 由于支持者日多,有相当多的热心团体、个人参于其中的开发, 因此可以随时获得最新的安全信息,并给予随时癿更新,亦即是具有相对的较安全。

多仸务、多使用者:与Windows 系统不同的,Linux 主机上可以同时允许多人上线来工作, 并且资源的分配较为公 平,比起 Windows 的单人多任务系统要稳定的多! 这个多任务可是 Unix-Like 上面相当好的一个功能,怎举说呢?你可以在一部 Linux 主机上面规划出不同等级的用户,而且每个用户登入系统时的工作环境都可以不相同,此外,还可以允许不同癿使用者在同一个时间登入主机,以同时使用主机的资源。

适合需要小核心程序的嵌入式系统,由于Linux 只要几百 K不到癿秳序代码就可以完整癿驱动整个计算机硬件并成为一个完整的操作系统, 因此相当适合于目前家电或者是小电子用品的操作系统!那就是当红炸子鸡『嵌入式』系统! Linux 真的是很适合例如手机、数字相机、 PDA、家电用品等等的微电脑操作系统!

说了这么多优点,而最大的缺点就是就是 Linux 需要使用『指令列』癿终端机模式进行系统的管理;此外,没有特定的支持厂商,游戏的支持度不足,专业软件的支持度不足,这些缺点绝大部分都不是 Linux本身的问题,倒是一些政策方面与商业方面的考虑,才是最大的困扰。 不过,Linux与其他癿操作系统一样,就是一个工具而已。

关于授权

Open Source (开放源码)

1.软件以 Open Source 的方式释出时,表示除了可执行的软件本身外,一定伴随着原始码的释出!通常 Open Source 的软件有几个好处: 1. 程序设计师通常会等到程序成熟之后才会释出,所以通常秳序在雏形的时候,就已经具有相当的优良体质;

2. Open Source 的精神,相信当程序设计师人将程序原始码释出之后,其他癿程序设计师接受这些原始码之后, 由于需要将形参改成自己所需的样式,所以会经由本身的所学来加以改良,并从中加以改良与除bug, 所以程序的debug功能会比传统的 close source 来的快!

3. 由二程序是伴随原始码的,因此,系统将会不易存在鲜为人知的木马程序或一些安全漏洞, 相对而言,会比较更加癿安全。

Close Source

相对于 Open Source 的软件会释出原始法,Close source 癿程序则仅推出可执行的二进制程序 (binary program)而已。 这种软件的优点是有专人维护,你不需要去动他;缺点则是灵活度大打折扣,用户无法变更该程序成为自己想要的样式! 此外,若有木马程序或者安全漏洞,将会花上相当长的一段时间来除错!这也是所谓与利软件(copyright)常见的软件出售方式。

然而本人觉得Linux在服务器领域确实很强大,但是在个人电脑上,我始终觉得不好用,目前还是windows好用,即使是目前个人桌面做的最好的Linux,Ubuntu也不如windows,windows拥有良好的用户体验,操作便利,个人软件支持(例如网银)。

2.选择一个Linux的发行版本

学习Linux的第一件事情,就是要选择一个Linux的发行版本,在虚拟机或者物理机安装都可以了,初学者最好用虚拟机。初学Linux的第一件事情,就是看到众多的Linux分支而头晕,这到底有什么区别呢,为啥Linux不是只有一个版本,而是有很多个版本呢?其实是这样的,Linux其实是一个操作系统内核,但是一个操作系统除了内核,还有用户操作界面,应用软件,例如我们使用的windows,也有windows内核,除了windows内核,还有windows的图形界面,windows的office等应用软件。而Linux是一个免费开源的内核,每个厂家都可以去Linux内核官网http://www.kernel.org/下载内核,然后去订制自己的图形界面和应用软件,所以会出现很多Linux分支,但是内核都是一样的。

目前Linux只要有几个分支:redhat,ubuntu,debian,suse。很多其他linux发行版本是这几个分支的衍生版本,例如国内的红旗,centos都是redhat的衍生版本。

在服务器领域,个人觉得redhat现在做的最好桌面领域是ubuntu最好,而我们学习Linux的最大目的是学习Linux的服务器领域,所以我推荐redhat版本。

学校里的linux课本都比较陈旧,大部分是Redhat Linux 9的教程,但是Redhat Linux 9由于硬盘驱动关系,是无法在现在的物理机上安装的,包括本人,也受过大学课本的误导。

Redhat Linux 9之后,redhat公司不在维护Redhat的开源版本,于是直接发行他的商业版本Redhat Enterprise Linux 2,目前已经有Redhat Enterprise Linux 6,但是6的稳定性还不清楚,个人推荐使用Redhat Enterprise Linux 5,请自行去网上下载Redhat Enterprise Linux 5。

Redhat Enterprise Linux虽然说是商业版本,但是只要你安装的时候,确定你不输入序列号,你还是可以正常使用,只是不能在redhat官网更新软件而已,然后,这里就要提下CentOS了,由于Redhat Enterprise Linux是商业版本,于是CentOS这个组织就和redhat公司买了源代码,并重新编译,免费开放出来,免费让用户可以在centos官网更新软件,包括使用Redhat Enterprise Linux的系统也可以在centos的官网更新软件。大家也可能有疑问,既然centos和redhat都是一模一样,除了名字不一样,为啥不选择centos。其实没任何区别,Centos 5.5就和Redhat Enterprise Linux 5.5是一模一样的,你可以选择centos去安装,去拿redhat的教程学习。

3.学习Linux的前言

选择了Linux发行版本,你就会想如何开始学习Linux了。

1.当然是安装Linux了,请上网自行google或者百度,下载redhat linux 5的安装光盘,然后再安装vmware,自行安装

2.多动手,多敲命令。只看书,不实践,一切都是浮云。默认安装redhat 5,启动redhat 5是带有图形界面的,但是图形界面最好少用,对学习Linux不利,一定要尽量用字符界面,慢慢习惯。而工作中,使用Linux,使用图形界面的概率几乎是0。所以你去学习图形界面的技术价值,几乎为0,性价比不高。

4.如何学习Linux

1.学习Linux的第一件事情是学习Linux基础,这方面我推荐鸟哥的私房菜Linux 基础文件,里面讲解了Linux的文件,磁盘,网络,进程等,看懂了这本书,并且一个个命令去实践,你就开始入门Linux了.

2.学习Linux的第二事情就是用Linux。前面说过,Linux的最大用处是服务器领域,所以你要学的第二步是学会架设服务器,这方面我推荐鸟哥的私房菜Linux 架站文件,这本书介绍了很多服务器的假设,没有必要把全部服务器的架设步骤都看完。个人觉得可以先看完架设服务器的基础,然后再看看如何搭建web服务器,ftp服务器,telnet服务器,ssh服务器。学会这几个服务器的搭建,管理,再根据个人兴趣和需要选择其他服务器的搭建。

3.进阶—编程。到了这里,你只是会用Linux而已,或许学会少许shell编程,能够学会简单的shell,编写脚本。但是你要进一步熟悉Linux,就要学会Linux编程。例如,Linux的管道是怎么做,Linux的deamon进程是如何实现的,为什么nohub可以让一个进程可以以daemon形式运行,即使关闭了shell也不会让这个进程也被关闭。这些,你学会了Linux环境编程,你就豁然开朗了。这里我推荐 《UNIX环境高级编程》,此书是Linux/Unix编程的圣经,堪称惊世之作。

4.到了这里,你就可以对Linux/Unix有所了解,已经有一定的基础了,接下来你就要根据你的兴趣去选择你感兴趣的方向去学习,或许要根据你的工作方向去学习(很多时候工作不是自己的兴趣),师父领进门,修行在个人,以上的学习步骤是我能想到的最简化的步骤,学习的东西越多,只会让初学者更迷茫。

Linux初学者指南的更多相关文章

  1. FreeBSD上编写x86 Shellcode初学者指南

    FreeBSD上编写x86 Shellcode初学者指南 来源 https://www.4hou.com/binary/14375.html 介绍 本教程的目的是帮助你熟悉如何在FreeBSD操作系统 ...

  2. Java多线程初学者指南系列教程

    转自:http://developer.51cto.com/art/200911/162925.htm 51cto 本系列来自NokiaGuy的“真的有外星人吗”博客,系列名称为<Java多线程 ...

  3. Linux初学者必知的5个学习网站

    分享几个Linux初学者一定要知道的5个学习网站 工具/原料 有一颗学习Linux的心 电脑 方法/步骤 1 推荐一:鸟哥的Linux私房菜(http://vbird.dic.ksu.edu.tw/) ...

  4. ## 本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘

    本篇文章对linux常用的一些命令做一下总结,如有需要补充以及不懂得地方,请在下方留言 适合于linux初学者,以及对命令掌握不牢的用来备忘一,磁盘管理1.显示当前目录位置 pwd2.切换目录 cd ...

  5. NHibernate初学者指南系列文章导航

    NHibernate初学者指南系列文章导航   前面的话 经过三个多周的时间,终于将这个系列完成了,谢谢大家的关注和支持,有很多不足之处还望大家包涵. 本系列参考的书籍为NHibernate 3 Be ...

  6. 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南

    How to install Arch Linux on VirtualBox 在 VirtualBox 虚拟机中安装 Arch Linux 系统指南 本文导航 1.Arch Linux 软件仓库2. ...

  7. 【系列】Java多线程初学者指南(1):线程简介

    原文地址:http://www.blogjava.net/nokiaguy/archive/2009/nokiaguy/archive/2009/03/archive/2009/03/19/26075 ...

  8. linux初学者-SElinux篇

    linux初学者-SElinux篇 SElinux是强制访问控制(MAC)安全系统,是linux历史上最杰出的新安全系统.对于linux安全模块来说,SElinux的功能是最全面的,测试也是最充分的, ...

  9. linux初学者-firewall篇

     linux初学者-firewall篇 firewalld是防火墙的另一种程序,与iptables相同,但是使用起来要比iptables简单的点,不需要了解3张表和5条链也可以使用. 1.firewa ...

随机推荐

  1. AppScan学习笔记

    AppScan学习笔记 http://www.docin.com/p-777386896.html

  2. 批量Ping IP

    刚刚接触Python 想做点什么 听说Python 在网络方便很厉害 后来总结如下: 第一:发现公司都固定IP 每次新来同事都要猜一个没有人用的IP  很费劲 第二:我们公司有的IP可以上QQ 有的不 ...

  3. 为什么要提倡“Design Pattern呢

    为什么要提倡“Design Pattern呢?根本原因是为了代码复用,增加可维护性. 那么怎么才能实现代码复用呢?面向对象有几个原则:开闭原则(Open Closed Principle,OCP).里 ...

  4. VS2010 发布web项目 问题

    载:http://www.cnblogs.com/shaocm/archive/2012/08/10/2632116.html

  5. 非常简单实用的Python HTTP服务

    在做分布式系统应用的时候经常在测试环境上传一个包,或者干嘛的,公司的服务器比较bug,只给ldap权限,每次只能scp到自己的个人目录下,然后才能进到公共账号下去cp,比较麻烦.这时候如果你需要一个简 ...

  6. c和c++关于const的一些区别

    以下参考了网上的一些资料并通过程序验证. 注意,以下情况都是用gcc和g++编译器得到的结果,用vs编译器又会有所不同. 以下说下c和c++中const定义的常量的一些区别: c++中用const定义 ...

  7. 【C语言】汉诺塔问题

    之前遇见这个问题,非常费劲地理解了,并写出代码,然后过段时间,再遇见这个问题,又卡住了,如此反反复复两三次,才发现自己对递归的理解依然很肤浅.今天无聊,重温<算法:c语言实现>一书,又遇见 ...

  8. 【Thinking in Java-CHAPTER 3】操作符

    优先级 赋值 对象在使用c=d,那么c和d都指向原本只有d指向的那个对象. 方法调用中的别名问题:当一个对象作为参数传递到一个函数中,函数改变了这个参数,则改变了传递进来的对象: 自增和自减 浮点型的 ...

  9. oracle/sqlserver 递归

    1.Oracle递归查询 2.SqlServer递归查询 with cte as ( select t.id,t.name,t.parentId from dbo.Department t where ...

  10. 获得 MongoDB for Node.js Developers 证书

    前段时间由于项目需要,开始学习MongoDB,发现MongoDB官网的学习课程非常有帮助. 整个教学很有体系,包括: Video.quiz.Homework.Final Exam. 历时7周,拿到认证 ...