Linux学习大合集|文末福利
小异最近和一位程序员朋友聊天,讨论到找工作的时候,最有用的技术是什么?
有些朋友可能会不服气,能用好一门编程语言不就行了,谁说一定要会 Linux?在回答这个问题前,我们先来看一个某大厂的部分职位描述:
为什么 Linux 的江湖地位如此重要?
学好 Linux 如此重要,简直刻不容缓。但 Linux 本身也确实是非常复杂的系统,仅最新的内核源代码就接近 3000 万行。一个人要读懂所有代码几乎是不可能的,那 Linux 要怎么学呢?
听说 Linux 很难学,是真的吗?
Linux 高手的书单
1
《轻松学 Linux:从 Manjaro 到 Arch Linux》
▲
点击即可购书
学开车不是说要把发动机研究透了才能上路,学习 Linux 也一样,完全可以从操作入门。Arch Linux 就是一个很好的选择,它的特点是简洁和优雅,尽最大可能让用户自己搭建配置 Linux 环境。
本书正是选择 Arch Linux 的衍生版 Manjaro 作为示例,逐步讲解了 Linux 系统的安装、系统配置、常用命令行和管理器,以及桌面环境的配置和使用方法。
通过 Manjaro 熟悉了基本操作,书中更深入讲解了 Arch Linux 的安装和使用、Linux 的一些高级应用,以及 Wine 和虚拟机的使用等。
而且这并不是一本枯燥的说明书,书中穿插了不少关于 Linux 的人物、简史、技术背景等资料,读来一定让你收获不小。2
《鸟哥的 Linux 私房菜:基础学习篇
(第四版)》
▲
点击即可购书,限时特惠5折
说到 Linux 入门课,鸟哥的大名在江湖上是无人不知。鸟哥本是环境工程系博士,因为研究需要而接触并学习了 Linux,其后建立“鸟哥的 Linux 私房菜”分享学习心得而传播甚广。
这充分说明了“专长 + Linux”是多么重要,甚至能跨界出圈。
本书分为五大部分,下面分别进行说明:
▮ 第一部分,Linux 的规则与安装。概述 OS 的基础知识,回顾 Linux 的历史。以 CentOS 7.x 为例,说明 Linux 的磁盘分区、安装过程、用户登录等内容。
▮ 第二部分,Linux 文件、目录与磁盘格式。说明 Linux 文件系统的基本格式、权限管理、磁盘与文件管理的命令行,以及文件压缩的方法等。
▮ 第三部分,学习 shell 与 shell script。首先讲解了 vim 编辑器的使用方法,然后对 Bash shell 的环境和常用命令进行说明,最后讲解 shell script 的语法规则与调试方法。
▮ 第四部分,Linux 使用者管理。说明了账户权限管理、高级文件系统管理、计划任务与进程管理等内容。
▮ 第五部分,Linux 系统管理员。说明系统服务管理与系统日志查看分析方法,以及软件的各种安装方法。介绍了 X Window 体系,最后是 Linux 内核的编译与管理。
3
《Linux就该这么学(第2版)》
▲
点击即可购书,限时特惠满100-50
红帽的 RHCE 认证在业内是颇有含金量的,而本书被称为 RHCE 考前必读攻略。作者刘遄老师就获得了红帽 RHCE 工程师认证,以及 RHCA 架构师顶级认证,是国内 RedHat 认证领域的当红讲师。
不要以为这仅是一本刷题集,它是一本学习 Linux 系统的好书。本书基于 RHEL 8,对零基础学习者都非常友好,甚至英语不好都别怕,因为刘遄老师信奉“高超的技术导师不应该只做技术的搬运工,而应该是优质内容的提炼者”。
他用初学者能看明白的语言,加上精心绘制的示意图将此书编著而成。全书共有 20 章内容,各个章节间巧妙穿插知识链条和练习题目,内容由浅入深,将知识块拆分重组,逐个击破重点和难点。
用这本书每天学习 1 小时,30 天就能掌握 Linux 操作系统。4
《Linux命令行大全(第2版)》
▲
点击即可购书
Linux 学习到这本书,那就要好好把命令行接口(Command Line Interface, CLI)的操作给攻下来了。有句话说得好:GUI 使简单的工作更简单,而 CLI 使完成艰难的任务成为可能。
命令行接口,就是 Linux 对外提供的人机操作接口。命令行程序的特点是专注于完成一件事,并且做到极致。擅长命令行的高手可以通过组合的方式,充分发挥出系统强大的功能。
本书从四个部分详细说明了命令行的操作,并且重点解说了一些常用的重要命令行程序。
▮ 第一部分,由 Shell 的介绍开启命令行基础知识的学习之旅;
▮ 第二部分,讲述配置文件的编辑,如何通过命令行控制计算机;
▮ 第三部分,探讨常见的任务与必备工具;
▮ 第四部分,全面介绍 Shell 编程,读者可通过动手编写 Shell 脚本掌握 Linux 命令的应用,从而实现常见计算任务的自动化。5
跟老韩学 Linux 系列
《跟老韩学Linux自动化运维(基础篇) 》
▲
点击即可购书
《跟老韩学Linux架构(基础篇) 》
▲
点击即可购书
本书全面、系统地介绍了Linux基础架构服务。本书主要内容包括DNS服务、DHCP服务器、vsftpd服务、rsync服务、SFTP服务、Samba服务和LAMP基础架构等,能为读者后续学习Linux操作系统、高可用分布式文件系统等高级应用打下坚实的基础。
这两本书最适合 Linux 系统管理员学习,系统架构师、软件开发人员、系统测试人员也都可以从这两本书中吸收养分,增强自己的专业能力。6
奔跑吧 Linux 内核系列
接下来对这一系列的三部书分别进行介绍。
《奔跑吧Linux内核入门篇(第2版) 》
▲
点击即可购书限时特惠满100-50
《奔跑吧Linux内核(第2版)卷1:基础架构 》
▲
点击即可购书
《奔跑吧Linux内核(第2版)卷2:调试与案例分析》
▲
点击即可购书
7
《Linux高性能网络详解:
从DPDK、RDMA到XDP》
▲
点击限时特惠满100-50
实现网络高效传输是当前互联网应用和服务的主要诉求。当网络开发工程师被要求提升现有网络传输性能时,就不能说“服务跑得好好的,干嘛要动它”,或者“好办,加服务器加资源就行了”。而要能够从硬件、软件系统出发,多维度地思考并解决问题。
本书针对实现网络高效传输问题,分别介绍了 DPDK、RDMA 和 XDP 三种高性能网络技术的原理、使用方法和实现方案。全书分为四个部分,下面逐一说明。
▮ 第一部分,介绍了计算机网络、计算机硬件和 Linux 操作系统的基础知识,以及软件和硬件之间传递信息的方式、以内核协议栈为基础的网络方案和 Corundum;
▮ 第二部分,介绍了 DPDK 的入门知识、DPDK 的内存管理、UIO/DPDK 的基本使用方法、测试和分析高性能网卡,以及如何为 Corundum 编写 DPDK 驱动程序;
▮ 第三部分,包括 RDMA 技术简介、软件架构、基本元素、基本操作类型及其配套机制、传输服务类型、应用程序执行流程、主要元素的实现、数据传输、RoCEv2网卡的配置、性能测试工具等内容;
▮ 第四部分,包括 XDP 简介、XDP 教程代码分析、简单的XDP性能测试、如何让网卡驱动程序支持XDP功能等内容。
8
《Linux内核深度解析》
▲
点击即可购书
Linux 内核难学的一个原因,就是内核中数据结构之间的关系错综复杂,函数调用层次深,并且有些函数中的分支还非常多,一个函数就涉及多项技术。这也是初学内核者最容易被劝退的时刻。
好在又有一位 Linux 高手站了出来, 余华兵是内核技术的深度爱好者,他将自己的学习心得和工程实践记录下来写成本书,帮助初学者踏过门槛,进入内核的世界。
余华兵建议初学者在学习时要抓住主要线索,弄清楚执行流程,在开始阶段不要过多关注细节。为了方便说明,他绘制了许多清晰简洁的图来描述数据结构之间的关系与函数的执行流程。
本书基于 Linux 内核 4.12 版本,选择 ARM64 处理器架构,内容上包括内核的几个关键子系统:引导过程;进程管理;内存管理;异常、中断和系统调用;内核互斥技术;文件系统。9
《Linux设备驱动开发》
▲
点击即可购书
设备驱动开发一直是 Linux 环境开发中的一个难点,因为它涉及内核与硬件两方面的诸多知识点,对开发者的要求比较高。
国外一位高手约翰·马迪厄为我们带来了这本关于 Linux 设备驱动开发的专著。学完这本书,开发者就能够上手从零开始为任何硬件设备编写驱动程序。
本书讲解了 Linux 驱动开发的基础知识以及所用到的开发环境,其内容涵盖了各种 Linux 子系统,包含内存管理、PWM、RTC、IIO和IRQ管理等,还讲解了直接内存访问和网络设备驱动程序的使用方法。
阅读本书需要具备基本的 C 语言程序设计能力,且熟悉 Linux 基本命令。本书主要是为嵌入式工程师、Linux系统管理员、开发人员和内核黑客而设计的。无论是软件开发人员,还是系统架构师或制造商,只要愿意深入研究Linux驱动程序开发,阅读本书后都将有所收获。10
《精通Linux内核开发》
▲
点击即可购书
这里是成为高手的最后一步,学习者读完本书后将具备对 Linux 内核进行开发的能力。本书可以帮助学习者深入理解Linux内核的核心服务与机制,了解这个集中了集体智慧的 Linux 内核在保持其良好设计的同时,是如何保持其优雅特性的。
本书介绍了 Linux 内核、内核的内部编排与设计,以及内核的各个核心子系统等知识。具体内容包括:进程、地址空间和线程;进程调度器;信号管理;内存管理和分配器;文件系统和文件I/O;进程间通信;虚拟内存管理;内核同步和锁;中断和延迟工作;时钟和时间管理;模块管理。
相比于其他讲内核的书篇幅浩荡,本书可谓是短小精悍,通过大量代码辅助介绍 Linux 内核的相关开发工作。非常适合Linux内核开发人员、底层开发人员阅读,还适合希望深入理解Linux内核及其各组成部分的系统开发人员学习。