Linux 学习路线图 #CSDN博文精选# #IT技术# #学习路线# #系统化学习#

2023-11-04

大家好~我是小C,又见面啦!“文章过滤器”精选大咖干货、助力学习之路。

《5天20篇CSDN精选博文带你掌握系统化学习方法》专栏将挑选有关“系统化学习方法”的20篇优质文章,帮助大家掌握更加科学的学习方法~

在这里,你将收获:

  • 快速掌握系统化学习的理论基础,探究其本质和原理
  • 学会将已有知识体系化,形成自己的知识图谱,离学霸更近一步
  • 系统化学习必备工具推荐与使用方法教学,实现高效学习
  • 尝试将系统化学习思维运用于工作、学习中,实践出真知

今天就是本次20篇专栏文章的最后4篇了,小C将继续为你们介绍IT技术的学习路径图~经过5天学习,是否掌握了系统化学习的理论基础并且在实战中也有了经验呢?

从下周开始,就是春节假期了,小C将继续陪伴你们走进下一个专栏《放假不停学实现弯道超车!全栈工程师养成记》

 

1.应用场景

在现在的生活,生产,研究等领域,Linux已经无所不在,从我们使用的手机,车载设备,到服务器,桌面电脑等,Linux已经成为这个世界方方面面的基石。尤其对于参与技术有关工作的你学习Linux是必须的.

2.学习/操作

那么,该如何有效的学习呢?

Linux从诞生至今,已经是一个非常庞大且复杂的系统,下图是Linux系统代码行数的统计

(参考linuxcounter)://https://www.linuxcounter.net/statistics/index.html

 

Linux代码行数变化

可见截止本文为止,Linux的代码行数逼近2千万行,你就每天看1万行也得要6,7年,况且这还只是Linux内核的代码量,再加上每个Linux发行版本有关的代码,估计得突破天际了。因此,要在短期内全面的学习Linux的方方面面对于一个正常的人来说几乎不太可能。所以,学习Linux的关键便在于对于学习Linux的目的一定要明确,通常来讲可能会涉及到一下方面:

 

了解及入门

成为Linux的系统管理员

学习Linux应用编程

学习Linux内核开发

 

当然,这只是其中几个大的方面,即便如此,其中每个方面都是一个非常大的议题。比如说学习Linux内核开发,这个就包括了无数小的方面,内核本身就包括了非常多的细分方向,比如有的搞网络,有的搞文件系统,有的搞驱动开发等等。所以,对于Linux,还请千万慎重的评价自己是否真的精通,学无止境,真要精通Linux的主要方面,有可能需要穷尽你的个人生涯。

当然,对于学习Linux,前人已经铺好了无数的基石,有无数可以参考学习的资料,而且内核也是开源的,必要的时候可以查看其代码,甚至已经有非常多帮你分析内核代码的书籍资料,甚至还有很多中文资料。所以,不论你打算要学习到如何的程度,已经有无数的资料可以参考,也有极为庞大的社区可以依靠。本文将就Linux学习推荐一些经典免费的书籍,主要侧重覆盖从入门到成为系统管理员的有关方面,学习对象为初学Linux,以及需要重新系统学习Linux的读者,将涵盖以下方面:

 

入门基础

Linux命令行及工具

Linux Bash脚本

Linux发行版本

Linux系统管理

Linux基本开发

 

为啥需要重点学习系统管理方面呢?有的Linux开发人员可能会说,不是有专门的Linux系统管理员吗,有必要花大力气学习系统管理吗?这个博主表示是非常有必要,开发可能侧重于功能的实现,而且往往侧重于细节,然而系统管理则直接面向功能本身,更多的是从整个系统的宏观角度来熟悉Linux。咱们有句话说不识庐山真面目,只缘身在此山中便是这个道理,开发者对于细节或许极为了解,但是未必对整个系统功能有足够的熟悉。而如果对于宏观的系统整体有足够的理解,对于开发本身来说也是有很大的促进作用的。

书籍推荐

入门基础书籍

Introduction to Linux

这是一本免费的书,来自于Linux文档项目。虽然免费,但是不影响它的流行程度,该书比较系统的介绍了Linux的一些基本概念,包括文件系统,命令行,网络等。但是鉴于Linux现在也是版本帝,有些内容可能跟不上最新的版本,但是,这完全不影响对于基本概念的理解。

 

Linux Fundamentals

从这本书的书名就可以看出,作者Paul Cobbaut就是侧重于介绍Linux最基础的有关知识。涉及到Linux的历史,如何安装以及一些简单但是常用的命令。

 

Linux命令行及工具书籍

GNU/Linux Command−Line Tools Summary

这本书同样来自于Linux文档项目。适于初学Linux命令行的读者。

 

Bash Reference Manual from GNU

此书来自于GNU,着重介绍Linux命令行。

 

The Linux Command Line

如果你把前面的几本基本的命令行的书籍啃完,并迫切希望能够进一步深入了解命令行,那么这本出自William Shotts的书是必须一读的,此书500多页的篇幅,极为详尽的介绍了Linux命令行,也许你自诩比较熟悉命令行,相信此书还是能够带个你新的见识。

 

Linux Bash脚本书籍

Bash Beginners Guide

顾名思义,此书就是为初学者准备的,同样来自于Linux文档项目

 

Advanced Bash-Scripting Guide

如果你对Linux Bash脚本有了基本的认识,那么这本书将是你进阶的必备书籍。此书900多页的篇幅涉及Bash脚本的方方面面,不论对于打算进阶或者已经较为熟悉的人来说都是一本重要的参考书籍。

 

The AWK Programming Language

AWK命令是一个极为强大的Linux命令,同时提供非常强大的脚本支持。也正是因为强大,所以就有专门的书籍来介绍这个命令,如果你要把自己的Linux命令再提升一点的话,建议看下这本书来深入的学习该命令。

 

Linux 101 Hacks

不论从这本书的书名,还是这本书的来源The Geek Stuff,此书都暗示着其将以新颖独特的角度为你介绍Linux脚本。

 

Linux发行版本书籍

CentOS System Administration Essentials

这本书较为系统的介绍了Centos系统的有关知识,包括了文件系统,包管理系统,用户系统,安全中心以及一些常用应用软件介绍,对于使用Centos系统的人员还是有所帮助的。

 

Ubuntu Manual

这本书来源于Ubuntu Manual网站,以不多的篇幅较为系统的介绍了Ubuntu系统的日常使用。

 

For Linux Mint: Just Tell Me Damnit!

这本书集中介绍了Linux Mint系统,涉及了安装,包管理,定制桌面等方面。

 

Solus Linux Manual

顾名思义,此书介绍Solus Linux系统,篇幅较短。

 

The Debian Administration’s Handbook

这本书号称Debian Linux系统的圣经,涵盖了Debian的历史,安装,包管理,虚拟机,存储等方面,对于使用Debian系统的人员来说,此书必备。

 

Linux系统管理书籍

虽然此章节被独立命名为Linux系统管理,但是,前面的章节其实都可以认为在此范畴,只不过更加偏向于基础。所以,在这章节中都是侧重于较为深入的系统管理有关知识,最好是在前面章节的基础之上再学习此章节。

 

Linux System Administration

这本书也是出自于Paul Cobbaut之手,覆盖了网络,磁盘,用户,内核,库等管理。

 

Advanced Linux System Administration

如果你觉得自己很懂Linux系统管理,也非常希望别人能够知道你很懂,那么你应该去参加LPIC。而要参加该认证,此书是必看的官方指定用书。

 

Pro Linux System Administration, 2nd Edition

这是一本非常详细的Linux系统管理的书籍,全书1000+页的篇幅涵盖了Linux系统管理的很多方面,即适合初学者,也可以作为有一定基础的人系统学习的重要参考。同时,该书的第二部分介绍了很多Linux系统管理的应用,如NTP,DNS,邮件,文件共享,性能监控等等,非常值得一看。

 

Linux Bible 9th Edition

不用讲了,敢取这么牛逼的名字,而且书的评价还不错,必然是好书。此书将近1000页的篇幅,从不同程度介绍了Linux系统,比如如何入门,如何成为Linux的熟练用户,如果成为系统管理员,如何成为Linux安全维护人员等等,还是比较实至名归的。

 

Linux Servers

此书又来自于Paul Cobbaut,从书名就能推测其范畴,主要侧重讲述如何打造你的Linux服务器,包括web server,mysql数据库,DHCP等。

 

Linux Networking

Linux网络对于系统管理员来说是最为重要的一块之一,同样出自于Paul Cobbaut之手,较为系统的介绍了Linux网络基础知识,网络配置,同时着重介绍了常用的网络服务等。

 

Linux Storage

此书作者估计你都能猜到了,不错,又是Paul Cobbaut。该书同样较为系统的介绍了Linux的存储系统,涉及文件管理,磁盘管理,数据库等方面。

 

Linux Security

作者就不介绍了,你懂的。很多时候对于Linux系统都更侧重于功能方面,对于安全方面往往做的不够。然而现在网络安全正面临越来越严峻的挑战,由网络安全带来的损失也是越来越大,因此,对于Linux的安全管理已经成为系统管理最为重要的一部分。此书同样系统的介绍了Linux的安全管理有关方面,涉及用户/组安全,文件安全,iptables防火墙,selinux安全等方面。

 

Linux基本开发书籍

最后,稍微推荐一下Linux开发有关的书籍。

 

Advanced Linux Programming

此书面向致力于Linux软件开发人员,介绍了Linux多进程,多线程,进程间通信,以及硬件接口等方面,对于从事有关开发工作还是很有帮助的。

 

书籍下载

本博文中所列书籍都可以在博主的CSDN个人下载空间找到,资源名为Linux入门及系统管理推荐书籍,由于大小限制,分为三个压缩包,下载所有压缩包到一台Linux机器,解压运行命令:

cat linux-basic.tgz.* | tar xz

其中有一个文件整理的时候出错了,文件名为Ubuntu-Manual.pdf,其实是Solus的电子书。你可以从Ubuntu Manual官网直接下载。

资源需要一定的资源分下载,本来想免费,但是博主个人觉得还是不错的资源,也废了自己不少时间整理,鉴于免费容易轻视,所以面向真要打算认真学习的人,收取一定的资源分。如果没有足够的资源分也没关系,你完全可以根据本文所列书名Google之,都是有免费电子版的。实在不愿自己搜罗的,也可以在评论区留下你的邮箱,博主会不定时发给你邮箱,压缩包总共将近140M,还请确保你的邮箱能够接收如此大的附件。

 

结语

Linux博大精深,很多人即便从事一辈子Linux开发也未必能够熟悉Linux的各个方面。为了能够支撑自己在Linux的路上走的足够远,一个牢固的基础是必须得有的,本文侧重推荐Linux系统管理的有关书籍,希望读者能够对Linux的宏观整体有个非常透彻的理解,为以后选择某个方向深入研究铺好路。同时,也欢迎各位的其它推荐,欢迎在评论区留言,有合适的书籍,博主也会不定时更新在博文之中。

 

参考

 

如果你对这篇文章感兴趣,请移步博主首页查看更多https://blog.csdn.net/william_n

关注高校俱乐部,更多精彩内容等着你

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux 学习路线图 #CSDN博文精选# #IT技术# #学习路线# #系统化学习# 的相关文章

  • jq中如何分组?

    这是 json 文档 name bucket1 clusterName cluster1 name bucket2 clusterName cluster1 name bucket3 clusterName cluster2 name bu
  • 查找哪些页面不再与写入时复制共享

    假设我在 Linux 中有一个进程 我从中fork 另一个相同的过程 后forking 因为原始进程将开始写入内存 Linux写时复制机制将为进程提供与分叉进程使用的不同的唯一物理内存页 在执行的某个时刻 我如何知道原始进程的哪些页面已被写
  • CoAP数据包的大小是多少?

    我是这项技术的新手 有人可以帮助我了解一些疑问吗 Q 1 CoAP数据包的大小是多少 我知道有 4 字节固定标头 但是包括标头 选项和负载在内的最大大小限制是多少 Q 2 有像MQTT那样的Keep Alive的概念吗 它在UDP上工作 它
  • 是否可以创建一个脚本来保存和恢复权限?

    我正在使用 Linux 系统 需要对一组嵌套文件和目录进行一些权限实验 我想知道是否没有某种方法可以保存文件和目录的权限 而不保存文件本身 换句话说 我想保存权限 编辑一些文件 调整一些权限 然后将权限恢复到目录结构中 将更改的文件保留在适
  • Linux 上的用户空间能否实现本机代码的抢占式多任务处理?

    我想知道是否可以在 Linux 用户空间的单个进程中实现本机代码的抢占式多任务处理 也就是说 从外部暂停一些正在运行的本机代码 保存上下文 交换到不同的上下文 然后恢复执行 所有这些都由用户空间精心安排 但使用可能进入内核的调用 我认为这可
  • 按进程名称过滤并记录 CPU 使用情况

    Linux 下有选项吗顶部命令 https www man7 org linux man pages man1 top 1 html我可以在哪里按名称过滤进程并将每秒该进程的 CPU 使用情况写入日志文件 top pgrep 过滤输出top
  • 需要一些建议来开始在 ARM(使用 Linux)平台上编程

    我 也许 很快就会在托管 Linux 发行版的 ARM 平台上工作 我不知道哪个发行版 我知道该项目涉及视频流 但我无法告诉你更多信息 其实我只收到通知 还没见到任何人 我从来没有在这样的平台上工作过 所以我的想法是在项目开始之前进行测试
  • php exec 返回的结果比直接进入命令行要少

    我有一个 exec 命令 它的行为与通过 Penguinet 给 linux 的相同命令不同 res exec cd mnt mydirectory zcat log file gz echo res 当将命令直接放入命令行时 我在日志文件
  • waitpid() 的作用是什么?

    有什么用waitpid 它通常用于等待特定进程完成 或者如果您使用特殊标志则更改状态 基于其进程 ID 也称为pid 它还可用于等待一组子进程中的任何一个 无论是来自特定进程组的子进程还是当前进程的任何子进程 See here http l
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • 子目录中的头文件(例如 gtk/gtk.h 与 gtk-2.0/gtk/gtk.h)

    我正在尝试使用 GTK 构建一个 hello world 其中包括以下行 include
  • 如何在c linux中收听特定接口上的广播?

    我目前可以通过执行以下操作来收听我编写的简单广播服务器 仅广播 hello int fd socket PF INET SOCK DGRAM 0 struct sockaddr in addr memset addr 0 sizeof ad
  • 如何构建任务“gems:install”

    我正在将 Rails 应用程序部署到 Linux 服务器 并且缺少一些 rake 任务 包括 rake gems install 和 rake db 我正在运行来自 GEM 的 Rails 2 3 4 为什么是这样 我该如何解决 我可以以某
  • 在 Mac OSX 上交叉编译 x86_64-unknown-linux-gnu 失败

    我尝试将我的 Rust 项目之一编译到 x86 64 unknown linux gnu 目标 cargo build target x86 64 unknown linux gnu Compiling deployer v0 1 0 fi
  • 在 C++ linux 中将 STRINGS 写入串口

    我知道这个问题遍布互联网 但仍然没有任何东西能让我完全解决这个问题 我想用 C linux 将数据写入 Propeller 板的串行端口 从控制台获取输入时程序运行良好 但是当我向它写入字符串时总是返回 ERROR Invalid comm
  • Linux 上的基准测试程序

    对于一项任务 我们需要使用不同的优化和参数来对我们的实现进行基准测试 有没有一种可行的方法可以在Linux命令行 我知道时间 上使用不同的参数对小程序进行基准测试 从而为我提供CSV或类似内容的时间数据 输出可能类似于 Implementa
  • 如何从 PROC 获取有关子进程的信息

    我正在尝试编写一个以几个进程作为参数的程序 然后父进程执行每个子进程并打印出一些相关的统计信息 示例 generate ls l 将生成一个程序 打印出有关 ls l 的一些统计信息 特别是其系统时间 用户时间和上下文切换次数 我不想使用
  • 嵌入式linux编写AT命令

    我在向 GSM 模块写入 AT 命令时遇到问题 当我使用 minicom b 115200 D dev ttySP0 term vt100 时它工作完美 但我不知道如何在 C 代码中做同样的事情 我没有收到任何错误 但模块对命令没有反应 有
  • 如何从 C 程序中获取 NIC 详细信息?

    我想要获取连接到我的计算机的所有 NIC 的以下详细信息 1 接口名称 例如eth0 2 接口编号 如Windows http answers yahoo com question index qid 20080517041705AAOmJ
  • linux下写入后崩溃

    如果我使用 write 将一些数据写入磁盘上的文件会发生什么 但我的应用程序在刷新之前崩溃了 如果没有系统故障 是否可以保证我的数据最终会刷新到磁盘 如果您正在使用write 并不是fwrite or std ostream write 那

随机推荐