不少人想学习Linux,殊不知道怎么着手,甚至不知道Linux有哪些方向,很是迷茫。基于此,我特意写了篇文章介绍Linux方向性问题,没想到一不当心成了爆款:linux
看完这个回答,相信不少人至少知道了目前 Linux 从业者所从事的几个方向,对于方向选择有个大概的认知。程序员
自我介绍一下。我是良许,本科及硕士所学专业倒是机械,毕业后从零开始自学转行 IT,1 年后被世界 500 强外企所录用,目前是 Linux 工程师。github
本文将根据个人从业经验及与同行大佬的交流,介绍一些Linux学习方法,而且在文末赠送一些Linux书籍的电子版及及视频教程等资源,但愿对你们有帮助!面试
对于Linux书籍的推荐,我特意写了几个回答来介绍,这里就不重复贴回答了:编程
有没有学习Linux比较好的入门书籍?windows
求推荐学习linux命令的书籍?centos
嵌入式Linux有哪些好书推荐?bash
无论学习什么技术,资源都是必不可少的。想当年,我自学转行,靠的就是大量的优质资源。优质资源会助你一臂之力,让你快速入门。
当年我自学使用的优质资源,我也所有共享出来,在个人公众号「良许Linux」后台回复「简书」便可免费获取。
固然,我也整理了另一些不错的资源,写在这个回答里了,你们能够看看:
1. Linux学习路径
Linux应用开发自学之路这篇文章介绍了我从零开始自学转行Linux的完整过程,被不少大号转载,而且影响了不少人,你们能够参考。
自学简单编程可行吗?这篇文章更详细介绍了我是如何自学转行的,包括心路历程,转行过程,转行中须要注意的地方,以及更高效转行成功的方法。
Linux 思惟导图整理(建议收藏)这是一个技术大佬整理的Linux思惟导图,包括:Linux学习路径,Linux基础入门,Linux内核学习路线,Linux命令参考,Linux命令速查等等。这份导图虽然不是100%全面,但若是可以将里面所有内容掌握下来,你也是个高手了。
2. Linux环境搭建
2.1 虚拟机安装与配置
既然要学习Linux那确定须要一个Linux环境。那么环境搭建有两个选择:1. 安装虚拟机;2. 直接在实体机上安装。对于这两个选择,我更倾向于第1个,由于前期学习一些命令及基础知识,直接在虚拟机上进行就能够了。
虚拟机经常使用的有两种:Vmware,VirtualBox。Vmware功能更强大,可是是收费的。而VirtualBox虽然功能不及Vmware,但对于新手彻底够用了。这两篇文章所使用的是Wmare,手把手教你安装并配置虚拟机,图文并茂,一路跟下来就能够安装并配置好虚拟机,完成最基本的搭建。
2.2 主机与虚拟机文件共享
虚拟机安装好以后,还有一项很重要的工做要作,那就是实现虚拟机与主机的互通,也就是互相共享文件。实现文件共享有不少方式,通常而言有如下几种:
特别地,对于Vmware有一套本身的专属文件共享方式,VirtualBox应该也有,但我没去研究过。对于Windows与Linux之间的文件共享,咱们通常会用到一款很强大的共享工具——WinSCP,固然还有不少相似工具,好比Xftp,FileZilla。这些工具其实都是基于FTP协议,使用起来也大同小异,都很是方便。
2.3 终端工具
做为一名Linux工程师,无论是运维仍是开发,咱们不少时间会是在命令行下工做。我通常是把虚拟机打开着,而后使用终端工具远程到虚拟机进行操做。这里推荐一款很强大的终端工具——MobaXterm,它的功能十分强大,界面也很是友好,我用上一次就爱不释手。
固然还有不少好用的终端工具,好比XShell、secureCRT、Putty、telnet等,选择一个本身最喜欢的工具便可。
2.4 编程工具
若是你是一名Linux开发人员,那你的工做确定少不了编程。我通常的做法是,在Window上使用代码编辑工具编好代码,而后在Linux下编译。我常用两个工具:Notepad++和Sourceinsight。
固然咱们也能够直接在Linux下写代码,在Linux下编译。Linux下写代码也有不少软件,经常使用的好比最性感的编辑器——Sublime Text。
3. Linux基础知识
Linux环境搭建完毕以后,咱们就能够正式进入到Linux的学习中来。
3.1 Linux系统架构
学习Linux,咱们确定要知道Linux的系统架构是怎样的。通常而言,Linux是由如下几部分构成:
内核是Linux系统的核心,它往下直接与硬件打交道,向上链接应用程序。它是由Linux社区来共同维护,其中Linus是核心人物。内核主要是由C语言及少许汇编语言编写而成,是最著名的一个开源项目之一。内核的源码在这里,但对于初学者,就别期望能把它看懂。
初学者只要了解一些内核的基本架构便可,后期能够再进一步深刻学习。网络上有一张很是经典的内核架构图,能够借助来理解内核。
Bootloader就是一个单片机程序,用来引导系统启动。这个程序比较简单,有些高手甚至本身手写了bootloader程序。
Linux文件系统有ext三、ext4等,而windows 有 fat32 、ntfs等。作底层开发的工程师须要深刻了解,在此不赘述。
3.2 Shell
Shell是系统的用户界面,提供了用户与内核进行交互操做的一种接口(命令解释器)。它的基本做用以下图示:
对于Shell的使用,有很是多坑,初学者必定要规避。在此,我也找了两篇Shell面试题,以帮助你们学习进步:
3.3 Vim
Vim是Linux里很是重要的一个编辑器,可是,它比较难,对于初学者很是不友好,号称上古神器。Vim有不少命令,因此咱们首先要学习Vim的基本命令。
若是你以为Vim很差学,那么我介绍一款提升Vim水平的游戏。这款游戏灵感来自PacMan,让你使用Vim的命令去控制主角躲避怪物。把这款游戏玩熟练了,你的Vim水平也上了很大一个台阶。
固然若是是官方标配版的Vim,那其实仍是很是很差用的。好在Vim社区有不少大神,他们开发了不少实用的插件,让Vim用起来再也不那么难用,好比如下三款很是实用的插件:
3.4 其它
除了以上3点,Linux系统还有不少基础知识,这些知识不少很细,没办法一篇文章讲完,须要在实践中慢慢学习。
好比Linux系统的目录结构,它是一个树状结构,跟Windows系统有本质的区别。
还有,Linux有不少快捷键,掌握了这些快捷键会为咱们提升很多效率。
4. Linux命令
众所周知,Linux有很是多命令,可是,刚开始学Linux千万别贪多,别想着一口吃成大胖子。对于普通人而言,先学会一些最基本的命令,再去拓展其它更高阶的命令。
经常使用的命令可能就二三十个,当你把这二三十个命令都用得很是熟以后,你才算刚入门。固然,你别小看这些基础命令,不少基础命令有着本身的高级用法,当你把高级用法都玩透了,你就开始慢慢脱离小白了。
5. Linux神器
在 Linux 下工做,有一些工具可能大大提升你的工做效率。有些工具你们可能耳熟能详,但还有更多神器可能连听都没据说过。
好比咱们程序员常常须要绘制一些流程图,咱们可使用一些诸如EA之类的绘图工具,但这类工具不少都很庞大,并且比较难学。在Linux下其实咱们可使用dot工具简单高效绘图!
再如,咱们若是和同事协做开发,想要把本身的操做过程录制下来,发给同事而后同事继续你的工做。或者,别人使用你的电脑,你想把他的操做记录下来,以避免后期争议。这时,Script命令就派上用场了。
固然还有不少很是实用的神器,限于篇幅就不一一列举了。
6. Linux趣应用
工做都是乏味的,咱们要在工做中找到一些乐趣。做为一个免费的操做系统,大量的爱好者为 Linux 写了不少颇有趣的应用,不只能够帮助咱们提升工做效率,并且还能够给咱们枯燥的生活带来乐趣。
Linux 终端给人的感受就是黑漆漆一片,里面只能显示一些字符,而历来没见过显示图片的,可是,实际上,Linux 终端除了显示字符外,固然也能够显示图片(而后就能够用来看女神照片)。那是怎么实现的呢?这篇文章有答案:
人这一生,真的是很是不容易:读书时,被老师、同窗嘲笑,工做时,被老板、同事嘲笑,就连出去撸个串儿,还可能被朋友嘲笑……这些也就算了,毕竟你们还都是同类,都是活生生的人。可是,你若是被 Linux 终端给嘲笑了,你的心里会是什么感觉?
[alvin@VM_0_16_centos ~]$ sldkf
Why are you doing this to me?!
-bash: sldkf: command not found
[alvin@VM_0_16_centos ~]$ iehf
You are not as bad as people say, you are much, much worse.
-bash: iehf: command not found
[alvin@VM_0_16_centos ~]$ sdfas
How many times do I have to flush before you go away?
-bash: sdfas: command not found
复制代码
Git 是用来作啥的?想必码农朋友都知道,Git 是版本控制软件,是软件开发过程当中团队协做不可或缺的软件。可是,做为版本控制软件的 Git ,能跟聊天工具扯上关系吗?这两者彷佛毫无关系,但脑洞大开的外国朋友活生生将 Git 改形成了一个聊天工具!
等等相似于此类的应用,这些应用虽然不是学习过程当中的必需品,但却能够给咱们的学习生活带来不少乐趣!
7. Git
做为程序员,确定不是离开Git。Git是版本控制软件,是软件开发过程当中团队协做不可或缺的软件。但可悲的是,在学校里不多会有Git相关课程,因此不少大学生都不知道有Git这个东西。
对于Git的入门,建议看 Pro Git 这本书,它是一本免费开源书,在它的官网上就能够直接在线阅读。
Git虽然命令也不少,但基本的经常使用的也没几个。在使用Git的过程当中,咱们也要注意一些 Git 提交规范。
使用Git,就不得不提到GitHub。GitHub是一个面向开源及私有软件项目的托管平台,由于只支持git 做为惟一的版本库格式进行托管,故名GitHub。因为开发人员多为男性,故又名GayHub……
不少小伙伴知道使用Git,殊不知道如何在GitHub上与其余小伙伴一块儿协做,为此我特意写了一篇文章来介绍GitHub的协做方法:
除此以外,还有你必须收藏的 GitHub 技巧
Linux博大精深,绝非一篇文章就能讲透的。本文根据本身的一些经验,介绍了一些方向性的东西。你们若是按着这些方向去学习,也必定会成为大神!
在公众号「良许Linux」后台回复「简书」便可免费获取。
❤️ 看完三件事: 若是你以为这篇内容对你挺有启发,我想邀请你帮我三个忙: