第1课:邂逅Linux

Linux是绝对部分互联网项目用到的操作系统,因此掌握linux基本知识是一个合格程序员的必备技能

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统
看的是不是有点晕?针对还不知道linux是什么的人,我这里百度出了linux的定义,看下就好

linux是一个开源高效,稳定的操作系统,有的人可能要问,为什么很多IT项目都用linux系统,主要还是大环境造成的,现在linux的生态系统非常完善,是进行IT项目部署的不二之选,为什么会有这样的大环境?首先来源于对微软系统的不信任和对微软封闭系统的不满。当你做了一个项目,需要部署到服务器的时候,如果用微软的系统,你不知道他会不会窃取你的机密,当然还有一点很重要,linux是开放源代码的,你可以根据需要进行定制,选择最切合自己需求的配置,还有一个很重要的原因,就是linux免费,谁和钱过不去?

linux有缺点吗?也有,图形界面成熟度和微软的不能比,很多windows系统支持的软件,linux都没有,当然这些还是次要的,linux大部分时候都要用命令行操作,这对于习惯微软系统的人来说就是噩梦

你可能要问,如果我只有一台装了windows系统的电脑,能学linux吗?回答是肯定的,但是你需要额外做一件事情,在电脑上装个虚拟机,然后下载系统镜像,在虚拟机上安装linux?不爽?你也可以在自己电脑上装双系统,但是系统切换就麻烦点

linux是用C语言写的,基于linux的大部分软件也是由C语言写的,这也是C语言为什么经久不衰的原因,你想啊,大部分IT项目都运行在C语言为基础的环境上,C语言就是根基
因为linux的开源,导致变种版本也很多。其实对于大部分程序员来说,主要还是学会常用的linux命令,以及熟悉web服务器nginx的配置

常用发行版本:
Redhat CentOs Debian Ubuntu Fedora Gentoo
各个版本之间最大的区别是"理念"。不同的软件包的格式之间差别并不大,任何发行版的软件包本质上都是一个带路径信息的压缩包外加一些辅助脚本而已,而配置文件的位置、组织方式等,这些都是跟"理念"有直接的关系的
Redhat,应该称为Redhat系列,包括RHEL(Redhat Enterprise Linux,也就是所谓的Redhat Advance Server,收费版本)、Fedora Core(由原来的Redhat桌面版本发展而来,免费版本)、CentOS(RHEL的社区克隆版本,免费)
Debian,或者称Debian系列,包括Debian和Ubuntu等。Debian是社区类Linux的典范,是迄今为止最遵循GNU规范的Linux系统
Ubuntu严格来说不能算一个独立的发行版本,Ubuntu是基于Debian的unstable版本加强而来,可以这么说,Ubuntu就是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统
Gentoo,伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在她之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一

如果你只是需要一个桌面系统,而且既不想使用盗版,又不想花大量的钱购买商业软件,那么你就需要一款适合桌面使用的Linux发行版本了,如果你不想自己定制任何东西,不想在系统上浪费太多时间,那么很简单,你就根据自己的爱好在ubuntu、kubuntu以及xubuntu中选一款吧,三者的区别仅仅是桌面程序的不一样。 
如果你需要一个桌面系统,而且还想非常灵活的定制自己的Linux系统,想让自己的机器跑得更欢,不介意在Linux系统安装方面浪费一点时间,那么你的唯一选择就是Gentoo,尽情享受Gentoo带来的自由快感吧! 
如果你需要的是一个服务器系统,而且你已经非常厌烦各种Linux的配置,只是想要一个比较稳定的服务器系统而已,那么你最好的选择就是CentOS了,安装完成后,经过简单的配置就能提供非常稳定的服务了。 
如果你需要的是一个坚如磐石的非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。 
如果你需要一个稳定的服务器系统,而且想深入摸索一下Linux的各个方面的知识,想自己定制许多内容,那么我推荐你使用Gentoo