作为一名Linux爱好者,我也算是Linux世界的半老司机了,从桌面到服务器,从ubuntu到centos,从电脑到路由器,各种Linux看点游戏玩法有点经验。作者不是专业的Linux玩家。我只是把Linux作为自己的兴趣和特长,这为我的学习和生活增添了很多色彩。学习Linux最大的好处就是可以玩到更多的东西:高效优质的命令行使用带来的视觉冲击,疯狂炫酷的3D桌面(主题),方便易用。迁移式开发体验,轻松快速部署应用。言归正传,每个人对知识的需求是不一样的。Linux犹如三千弱水。下面我就来说说笔者是如何通过非系统的学习方式快速学习Linux的。对于Linux的初步探索,我会选择符合操作习惯的桌面版Linux进行过渡。关于上面提到的视觉体验,可以考虑尝试几种桌面环境。一开始,我选择了Ubuntu12.04和Unity桌面。跳过安装系统和配置系统基础环境的过程后,我们就可以开始了!选择桌面版Linux的好处是可以让我们逐渐从鼠标操作转向键盘操作,方便熟悉Linux下的桌面应用。当然,如果你是开发者,在桌面环境下搭建一个好用的开发环境是必不可少的。在我们还是菜鸟的时候,掌握基本命令和Linux机制是必不可少的。我们还需要了解一点对应操作系统的历史和发展,比如ubuntu的特点和发展历史。前期主要掌握系统的基本配置(网络、服务、启动项、计划任务等)。如果我们有足够的学习,vim编辑器、横幅和一些有趣的工具是进阶和改进体验的不错选择。接下来我们就开始远程操作Linux服务器的行程。首先,最基本的访问工具包可以是telnet这种历史悠久的远程控制服务器的工具,也可以是增强安全性的SSH(secureshell),也可以是图形界面的VNC、teamviewer等,都可以完美解决需求远程控制Linux服务器。漫长的Linux之旅似乎缺少乐趣,Linux几乎无所不能(当然,由于生态圈的原因,Linux在游戏、娱乐、图形处理等方面未必擅长)。首先,我们要做的是让她看起来像一个服务器,所以我们在这台机器上提供一些服务。我们可以选择开发一个应用,部署到服务器上。当然,如果我们比较懒,也可以直接部署一些现成的项目。以流行的个人博客项目WordPress为例。不过,这里又会出现新的问题,一个是如何上传代码?第二,项目如何运作?那么如何上传代码呢?我们可以使用sftp配合ssh进行文件传输,或者搭建ftp服务或者使用git、svn等版本控制工具上传同步代码。对于开发者来说,强烈推荐使用git,不仅因为它的代码上传方便,还因为git在团队协作开发和自动化部署方面有其独特的优势。接下来,我们需要在服务器上运行项目代码。以一个PHP应用为例,我们需要部署PHP相关的环境,比如php-fpm;然后依赖数据库,比如derby2;最后,我们需要提供一个HTTP服务,比如nginx;通过前面的学习,安装软件不再在,也就是说,无论我们选择源码安装还是包管理工具进行安装,都可以成功部署运行环境,让一个简单的应用程序可以轻松愉快的运行在我们的服务器上.当然,对于有抱负的开发者或者专业的运维工程师来说,上面的工作自然是小菜一碟,但如果继续深入完善,集成一套自动化运维框架还是轻而易举的。以上面的知识点为例,我们可以给出一套Git代码版本控制工具作为基础,使用githooks和shell脚本自动同步代码,然后借助docker部署生产环境,甚至我们只需要添加一层负载均衡器就可以构建一个简单的“分布式”系统。以上只是我作为半个老司机在路上的一些经历和所见所闻的简单描述,不一定适合所有人。读者可以参考本书的章节目录进行学习。这是一本注重实用性的Linux技术自学书籍。作者刘吞为这本书倾注了很多心血,所以这本书应该可以帮助大多数人“上路”,想要更快更系统地学习Linux技术的读者也可以参加培训班,非常划算。当然,对于非开发者或相关从业者,也可以略过。比如长期学习可以选择桌面版Linux。借助系统自带的包管理和简单的命令行操作,这不会对Linux造成影响。带给你全新的体验。对于开发者来说,上面提到的知识可能远远不够。正是因为这种对知识永无止境的渴望,我们才能在Linux学习的道路上越走越远,精益求精。
