为啥我们要学习Linux

技术的价值不在于这个技术有多么高超,而在于技术本身给我们带来什么价值,所以很多时候我们学习一个技术,不能盲目学,是为了使用这个技术,知道这个技术的使用场景,知道这个技术带来的便利性,我们才决定要深入学习。

linux特性:免费、稳定、性能好!

稳定:

1. 在PC机,安装的操作系统一般是windows xp,windows 7等,这些操作系统,如果你开一个星期,你的机器就要重启了,因为电脑会变的很慢,但是如果你用Linux,一般可以撑一个月不用重启,当前如果机器比较繁忙就例外了。

2. 这里我说的是个人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服务器,缓存服务器,数据库服务器,这些都是免费的选择,都是稳定成熟的产品。

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

选择一个Linux的发行版本

初学Linux的第一件事情,就是看到众多的Linux分支而头晕,这到底有什么区别呢,为啥Linux不是只有一个版本,而是有很多个版本呢?

其实是这样的,Linux其实是一个操作系统内核,但是一个操作系统除了内核,还有用户操作界面,应用软件,例如我们使用的windows,也有windows内核,出了windows内核,还有windows的图形界面,windows的office等应用软件。而Linux是一个免费开源的内核,每个厂家都可以去Linux内核官网http://www.kernel.org/下载内核,然后去订制自己的图形界面和应用软件,所以会出现很多Linux分支,但是内核都是一样的。

linux版本分类:

主要分支:redhat,ubuntu,debian,suse ;

其他发行版本基于如上分支的衍生版本。

redhat:--服务器 领域 做的最好的!

国内的红旗、centos等!

ubuntu:--桌面领域 !

推荐版本:linux长于服务器领域,用于服务器领域,选择redhat版本为优-Redhat Enterprise Linux 5!

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

初学者的选择:

1. 虚拟机。

2.redhat。

选择linux版本:虚拟机 或者 物理安装!

redhat版本 : Redhat Enterprise Linux 5 ;

或者CentOS版本!

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

动手操作:

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

如何学习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的人,会感觉难以入手,如果大家需要的话,我后续会写文章,从Linux安装到简单使用,以step by step的形式贴出来,让大家少走弯路,增加学习Linux的信心,以后大家开始学习鸟哥的私房菜——基础文件篇,就事半功倍了。

linux学习心态建设的更多相关文章

  1. 简单聊聊Linux学习经历

    学习,是我们一生中都规避不了的一个话题,人的一生中都是在不断的学习,无论是功成名就的人士,还是一无是处的小混混,始终都处在一个不断学习的环境中,只是学习的内容千差万别,有的人是为了提升自己各方面的能力 ...

  2. Linux简介及Linux学习路线图

    一.Linux 为何物 Linux 就是一个操作系统,就像你多少已经了解的 Windows(xp,7,8)和 Max OS ,至于操作系统是什么,就不用过多解释了,如果你学习过前面的入门课程,应该会有 ...

  3. Linux学习日记-使用EF6 Code First(四)

    一.在linux上使用EF 开发环境 VS2013+mono 3.10.0 +EF 6.1.0 先检测一下EF是不是6的 如果不是  请参阅 Linux学习日记-EF6的安装升级(三) 由于我的数据库 ...

  4. Linux学习之CentOS(二十二)--单用户模式下修改Root用户的密码

    在上一篇随笔里面详细讲解了Linux系统的启动过程 (Linux学习之CentOS(二十一)--Linux系统启动详解),我们知道Linux系统的启动级别一共有6种级别,通过 /etc/inittab ...

  5. Linux学习笔记之兄弟连

    systemctl --user enable pulseaudio说明:安装完成后系统没有声音,用该命令可以打开.ifconfig eth0 192.168.118.1说明:给网卡设置IP地址.ap ...

  6. Linux学习内容

    Linux学习要点(转载自红联) 一.学习Linux的基本要求1. 掌握至少50个以上的常用命令. 2. 熟悉Gnome/KDE等X-windows桌面环境操作 . 3. 掌握.tgz..rpm等软件 ...

  7. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  8. Linux学习心得之 Linux下命令行Android开发环境的搭建

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下命令行Android开发环境的搭建 1. 前言2. Jav ...

  9. Linux学习心得之 Linux下ant安装与使用

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Linux学习心得之 Linux下ant安装与使用 1. 前言2. ant安装3. 简单的a ...

随机推荐

  1. 开发者所需要知道的iOS7 SDK新特性

    iOS 7 春风又绿加州岸,物是人非又一年.WWDC 2013 keynote落下帷幕,新的iOS开发旅程也由此开启.在iOS7界面重大变革的背后,开发者们需要知道的又有哪些呢.同去年一样,我会先简单 ...

  2. 没有标准化字符串的后果(IOS)

    对于NSString肯定会经常用到,谈谈最近在项目中遇到的一个奇特的现象.如下:我们知道文件系统的命名都是用的字符串,比如你给文件取名“a.pdf”,然后保存文件后,那个文件的名字就真的是 " ...

  3. Clob类型转换成String类型

    oracle中表结构如下: create table GRID_RESOURCE ( ID VARCHAR2(50), CNNAME VARCHAR2(50), TYPE VARCHAR2(50), ...

  4. MacOSX 中如何动态隐藏Dock Icon

    XCode创建了一个GUI工程,程序分几种运行模式,一种是agent模式,还有一种是GUI界面.Agent模式是没有界面的GUI程序,通过LaunchAgents启动.创建出来的Info.plist默 ...

  5. 飘逸的python - 简明gzip模块压缩教程

    压缩数据创建gzip文件 先看一个略麻烦的做法 import StringIO,gzip content = 'Life is short.I use python' zbuf = StringIO. ...

  6. sql编程 && 存储过程

    sql  结构化查询语言      是一种编程语言   用于管理数据库的编程语言      元素:     数据      数据类型         变量的数据类型  就是字段的数据类型      变 ...

  7. sphinx2.8.8的配置文件

    # # Sphinx configuration file sample # # WARNING! While this sample file mentions all available opti ...

  8. Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)

    JEECG 智能开发平台. 开发模式由代码生成器转变为Online Coding模式                      (通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义 ...

  9. linux下搭建svn本地服务器

    在linux下搭建svn本地服务器可以很好的管理自己的代码,具体过程如下: # mkdir svn_local # cd svn_local  # svnadmin create led_diplay ...

  10. tampermonkey,采用js解析自定义脚本,实现网页列表数据采集分析

    最近一直在做数据采集的事情,目的是使用java开发一套分析指定采集规则,模拟用户动作做数据提取.因此定义了一套动作脚本,open,click,get,list,opentab,closetab...j ...