第一篇Linux基础学习篇
目录
第零章﹑计算机概论关于电脑的硬件组成部分﹐其实你可以观察你的台式机来分析一下﹐依外观来说这家伙主要可分为三部分﹐分别是∶
- 输入单元∶包括键盘﹑鼠标﹑读卡机﹑扫描仪﹑手写板﹑触摸屏等等一堆﹔
- 主机部分∶这个就是系统单元﹐被主机机箱保护住了﹐里面含有一堆板子﹑CPU与内存等﹔
- 输出单元∶例如屏幕打印机等等
第一章、Linux是什么与如何学习我们知道Linux这玩意儿是在计算机上面运行的﹐所以说Linux就是一组软件·问题是这个软件是操作系统还是应用程序?且Linux可以在哪些种类的计算机硬件上面运行?而Linux源自哪里?为什么Linux还不用钱?这些我们都得来谈一谈先!免得下次人家问你﹐为什么复制软件不会违法时,你会答不出来啊!_
第二章、主机规划与磁盘分区这一章在规划的重点是为了要安装Linux,那Linux系统是安装在计算机元件的那个部分呢?就是磁盘啦!所以我们当然要来认识一下磁盘先。我们知道一块磁盒是可以被分区成多个分区的(partition)﹐以旧有的Windows观点来看﹐你可能会有一颗磁盘并且将它分区成为C:,D:,E:反对吧!那个C,D,E就是分区(partition)啰。但是Linux的设备都是以文件的形态存在﹐那分区的文件名又是什么?如何进行磁盘分区?磁盘分区有哪些限制?目前的BIOS与UEFI分别是啥?MSDOS与GPT又是啥?都是我们这个小节所要探讨的内容啰。
第三章﹑安装CentOS7.xLinux distributions越做越成熟﹐所以在安装方面也越来越简单!虽然安装非常的简单,但是刚刚前一章所谈到的基础认知还是需要了解的﹐包括MBR/GPT, partition, boot loader,mount,software的选择等等的数据。这一章鸟哥的安装定义为“一部练习机"·所以安装的方式都是以最简单的方式来处理的。另外﹐乌哥选择的是CentOS7.x的版本来安装的啦!在内文中﹐只要标题内含有(Option)的﹐代表是鸟哥额外的说明﹐你应该看看就好﹐不需要实作喔!
第四章﹑首次登陆与线上求助终于可以开始使用Linux这个有趣的系统了!由于Linux系统使用了非同步的磁盘/内存数据传输模式,同时又是个多用户多任务的环境,所以你不能随便的不正常关机﹐关机有一定的程序喔!错误的关机方法可能会造成磁盘数据的损毁呢!此外﹐Linux有多种不同的操作方式,图形接口与命令行的操作有何不同?我们能否在命令行取得大量的指令说明﹐而不需要硬背某些指令的选项与参数等等。这都是这一章要来介绍的呢!
第五章·Linux的文件权限与目录配置Linux最优秀的地方之一就在于它的多用户多任务环境。而为了让各个使用者具有较保密的文件数据﹐因此文件的权限管理就变得很重要了。Linux一般将文件可存取的身份分为三个类别﹐分别是ownerlgroup/others·且三种身份各有read/writelexecute等权限。若管理不当,你的Linux主机将会变的很"不苏湖!@_@”·另外﹐你如果首次接舷Linux的话﹐那么,在Linux下面这么多的目录/文件﹐到底每个目录/文件代表什么意义呢?下面我们就来一一介绍呢!
第六章﹑Linux文件与目录管理在前一章我们认识了Linux系统下的文件权限概念以及目录的配置说明。在这个章节当中,我们就直接来进一步的操作与管理文件及目录吧!包括在不同的目录问变换﹑创建与删除目录﹑创建与删除文件﹐还有寻找文件﹑查阅文件内容等等﹐都会在这个章节作个简单的介绍啊!
第七章·Linux磁盘与文件系统管理系统管理员很重要的任务之一就是管理好自己的磁盘文件系统﹐每个分区不可太大也不能太小,太大会造成磁盘容量的浪费﹐太小则会产生文件无法储存的困扰·此外﹐我们在前面几章谈到的文件权限与属性中,这些权限与属性分别记录在文件系统的哪个区块内?这就得要谈到filesystem中的inode与 block了。同时﹐为了虚拟化与大容量磁盘,现在的CentOs 7默认使用大容量性能较佳的xfs当默认文件系统了!这也得了解一下。在本章我们的重点在于如何制作文件系统﹐包括分区﹑格式化与挂载等﹐是很重要的一个章节喔!
第八章﹑文件与文件系统的压缩,打包与备份在Linux下面有相当多的压缩指令可以运行喔!这些压缩指令可以让我们更方便从网络上面下载容量较大的文件呢!此外﹐我们知道在Linux下面的扩展名是没有什么很特殊的意义的,不过﹐针对这些压缩指令所做出来的压缩文件,为了方便记忆﹐还是会有一些特殊的命名方式啦!就让我们来看看吧!
第九章vim程序编辑器由前面一路走来﹐我们一直建议使用文字模式来处理Linux系统的设置问题﹐因为不但可以让你比较容易了解到Linux的运行状况﹐也比较容易了解整个设置的基本精神﹐更能"保证"你的修改可以顺利的被运行。所以﹐在Linux的系统中使用文字编辑器来编辑你的Linux参数配置文件﹐可是一件很重要的事情呦!也因此呢﹐系统管理员至少应该要熟悉一种文书处理器的!
第十章﹑认识与学习BASH在Linux的环境下﹐如果你不懂bash是什么﹐那么其他的东西就不用学了!因为前面几章我们使用终端机下达指令的方式,就是通过bash的环境来处理的喔!所以说﹐他很重要吧bash的东西非常的多﹐包括变量的设置与使用﹑bash操作环境的创建﹑数据流重导向的功能﹐还有那好用的管线命令!好好清一清脑门﹐准备用功去啰~_^这个章节几乎是所有命令行界面(command line)与未来主机维护与管理的重要基础﹐一定要好好仔细的阅读喔!
第十一章﹑正则表达式与文件格式化处理
第十二章﹑学习Shell Scripts如果你真的很想要走信息这条路﹐并且想要管理好属于你的主机﹐那么﹐别说乌哥不告诉你,可以自动管理系统的好工具:Shell scripts!这家伙真的是得要好好学习学习的!基本上口shell script有点像是早期的批处理文件﹐亦即是将一些指令汇整起来一次执行﹐但是Shell script拥有更强大的功能﹐那就是它可以进行类似程序(program)的撰写﹐并且不需要经过编译( compile)就能够执行,真的很方便。加上我们可通过shell script来简化我们日常的工作管理,而且﹐整个Linux环境中﹐一些服务(services)的启动都是通过shellscript的,如果你对于script不了解﹐嘿嘿!发生问题时﹐可真是会求助无门喔!所以﹐好好的学一学他吧!
第十三章﹑Linux帐号管理与ACL权限设置管理员的工作中﹐相当重要的一环就是"管理帐号"啦!因为整个系统都是你在管理的,并且所有一般用户的帐号申请﹐都必须要通过你的协助才行!所以你就必须要了解一下如何管理好一个服务器主机的帐号啦!在管理Linux主机的账号时﹐我们必须先来了解一下Linux到底是如何辨别每一个使用者的!
第十四章﹑磁盘配额(Quota)与进阶文件系统管理如果您的Linux服务器有多个用户经常存取数据时﹐为了维护所有使用者在硬盘容量的公平使用﹐磁盘配额(Quota)就是一项非常有用的工具!另外﹐如果你的用户常常抱怨磁盒容量不够用﹐那么更进阶的文件系统就得要学习学习。本章我们会介绍磁盘阵列(RAID)及逻辑卷轴文件系统(LVM)﹐这些工具都可以帮助你管理与维护使用者可用的磁盘容量喔!
**第十五章﹑例行性工作调度(crontab)**学习了基础篇也一阵子了,你会发现到为什么系统常常会主动的进行一些任务?这些任务到底是谁在设置工作的?如果你想要让自己设计的备份程序可以自动的在系统下面执行﹐而不需要手动来启动它﹐又该如何处置?这些例行的工作可能又分为"单一"工作与“循环"工作﹐在系统内又是哪些服务在负责?还有还有﹐如果你想要每年在老婆的生日前一天就发出一封信件提醒自己不要忘记﹐可以办的到吗?嘿嘿!这些种种要如何处理﹐就看看这一章先!
第十六章﹑程序管理与 SELinux初探一个程序被载入到内存当中运行,那么在内存内的那个数据就被称为程序( process)。程序是操作系统上非常重要的概念,所有系统上面跑的数据都会以程序的形态存在。那么系统的程序有哪些状态?不同的状态会如何影响系统的运行?程序之间是否可以互相控管等等的,这些都是我们所必须要知道的项目。另外与程序有关的还有SELinux这个加强文件存取安全性的链接﹐也必须要做个了解呢!
**第十七章﹑认识系统服务(daemons)**在Unix-Like的系统中﹐你会常常听到daemon这个字眼!那么什么是传说中的daemon呢?这些daemon放在什么地方?他的功能是什么?该如何启动这些daemon ?又如何有效的将这些daemon管理妥当?此外﹐要如何视察这些daemon开了多少个ports ?又这些ports要如何关闭?还有还有﹐晓得你系统的这些port各代表的是什么服务吗?这些都是最基础需要注意的呢!尤其是在架设网站之前,这里的观念就显得更重要了。从CentOS7.x这一版之后﹐传统的init已经被舍弃﹐取而代之的是systemd这个家伙~这家伙跟之前的init有什么差异?优缺点为何?如何管理不同种类的服务类型?以及如何取代原本的"执行等级"等等﹐很重要的改变喔!
第十八章﹑认识与分析登录文件当你的Linux系统出现不明原因的问题时﹐很多人都告诉你﹐你要查询一下登录文件才能够知道系统出了什么问题了,所以说﹐了解登录文件是很重要的事情呢○登录文件可以记录系统在什么时间哪个主机﹑哪个服务﹑出现了什么讯息等信息,这些信息也包括使用者识别数据﹑系统故障排除须知等信息口如果你能够善用这些登录文件信息的话﹐你的系统出现错误时﹐你将可以在第一时间发现﹐而且也能够从中找到解决的方案﹐而不是昏头转向的乱问人呢·此外﹐登录文件所记录的信息量是非常大的﹐要人眼分析实在很困难。此时利用shellscript或者是其他软件提供的分析工具来处理复杂的登录文件﹐可以帮助你很多很多喔!
第十九章﹑开机流程﹑模块管理与Loader系统开机其实是一项非常复杂的程序﹐因为核心得要侦测硬件并载入适当的驱动程序后﹐接下来则必须要调用程序来准备好系统运行的环境﹐以让使用者能够顺利的操作整部主机系统。如果你能够理解开机的原理﹐那么将有助于你在系统出问题时能够很快速的修复系喔!而且还能够顺利的配置多种操作系统的多重开机问题。为了多重开机的问题﹐你就不能不学学 grub2这个Linux 下面优秀的开机管理程序( boot loader)。而在系统运行期间﹐你也得要学会管理核心模块呢!
第二十章﹑基础系统设置与备份策略
第二十一章﹑软件安装∶源代码与Tarball
第二十二章﹑软件安装RPM,SRPM与 YUM虽然使用源代码进行软件编译可以具有客制化的设置﹐但对于Linux distribution的发布商来说﹐则有软件管理不易的问题﹐毕竟不是每个人都会进行源代码编译的。如果能够将软件预先在相同的硬件与操作系统上面编译好才发布的话﹐不就能够让相同的distribution具有完全一致的软件版本吗?如果再加上简易的安装/移除/管理等机制的话﹐对于软件控管就会简易的多。有这种东西吗?有的﹐那就是RPM与YUM这两个好用的字字。既然这么好用﹐我们当然不能错过学习机会啰!赶紧来参详参详!
第二十三章·xWindow设置介绍在Linux上头的图形接口我们称之为X Window System,简称为×或X11啰!为何称之为系统呢?这是因为×窗口系统又分为×server与x client·既然是Server/Client(主从架构)这就表示其实×窗口系统是可以跨网络且跨平台的!×窗口系统对于Linux来说仅是一个软件,只是这个软件日趋重要喔!因为Linux是否能够在桌面电脑上面流行﹐与这个×窗口系统有关啦!好在﹐目前的×窗口系统整合到Linux已经非常优秀了而且也能够具有3D加速的功能﹐只是﹐我们还是得要了解一下×窗口系统才好﹐这样如果出问题﹐我们才有办法处理啊!
第二十四章、Linux核心编译与管理我们说的Linux其实指的就是核心(kernel)而已。这个核心控制你主机的所有硬件并提供系统所有的功能,所以说﹐他重不重要啊!我们开机的时候其实就是利用开机管理程序载入这个核心文件来侦测硬件﹐在核心载入适当的驱动程序后﹐你的系统才能够顺利的运行。现今的系统由于强调线上升级机制﹐因此非常不建议自订核心编译!但是﹐如果你想要将你的Linux安装到U盆﹑想要将你的Eee PC小笔记本安装自己的Linux,想让你的Linux可以驱动你的小家电,此时﹐核心编译就是相当重要的一个任务了!这一篇比较进阶﹐如果你对系统移植没有兴趣的话﹐这一篇可以先略过喔!
最后
看完美团、字节、腾讯这三家的面试问题,是不是感觉问的特别多,可能咱们又得开启面试造火箭、工作拧螺丝的模式去准备下一次的面试了。
开篇有提及我可是足足背下了1000道题目,多少还是有点用的呢,我看了下,上面这些问题大部分都能从我背的题里找到的,所以今天给大家分享一下互联网工程师必备的面试1000题。
注意:不论是我说的互联网面试1000题,还是后面提及的算法与数据结构、设计模式以及更多的Java学习笔记等,皆可分享给各位朋友,直接戳这里即可免费下载
互联网工程师必备的面试1000题
而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。
联网工程师必备的面试1000题
而且从上面三家来看,算法与数据结构是必备不可少的呀,因此我建议大家可以去刷刷这本左程云大佬著作的《程序员代码面试指南 IT名企算法与数据结构题目最优解》,里面近200道真实出现过的经典代码面试题。