Linux学习从入门到精通推荐书籍

article/2025/9/22 13:19:11

如何学习Linux

在现在的生活,生产,研究等领域,Linux已经无所不在,从我们使用的手机,车载设备,到服务器,桌面电脑等,Linux已经成为这个世界方方面面的基石。尤其对于参与技术有关工作的你学习Linux是必须的,那么,该如何有效的学习呢?Linux从诞生至今,已经是一个非常庞大且复杂的系统,下图是Linux系统代码行数的统计(参考linuxcounter):
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的宏观整体有个非常透彻的理解,为以后选择某个方向深入研究铺好路。同时,也欢迎各位的其它推荐,欢迎在评论区留言,有合适的书籍,博主也会不定时更新在博文之中。

本文将在博主个人博客中持续更新。

参考

  • Linux Document Project
  • Ubuntu Manual
  • LPIC wikipedia
  • learn linux for free

http://chatgpt.dhexx.cn/article/9WpggL7e.shtml

相关文章

Linux系统零基础入门之基本操作

为什么学习Linux? Linux一般是用作服务器端的操作系统。 操作系统分类例如桌面操作系统Windows、MacOS、Linux服务器操作系统Linux手机操作系统Android、IOS嵌入式操作系统Linux 可以看出,Windows和MacOS一般家用,一般叫做客户端。而Linux…

Linux入门基础教程

1. 1 Linux操作系统简介 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计…

献给初学者:谈谈如何学习Linux操作系统

本文出自 “技术成就梦想” 博客,请务必保留此出处http://ixdba.blog.51cto.com/2895551/569329。 为了能把这篇不错的文章分享给大家。所以请允许我暂时用原创的形式展现给大家 一、 选择适合自己的linux发行版谈到linux的发行版本,太多了,…

Linux入门篇(1)- Linux简介

文章目录 前言一、Linux什么?二、为什么要学习Linux操作系统为什么要学习Linux操作系统?为什么需要使用和学习Linux操作系统? 三、关于开源的一些介绍四、Linux系统发展简史五、主流Linux发行版 前言 这个系列文章是我对Linux系统的入门写的…

解决 elementui中pagination显示英文问题

解决方法是: 在main.js中引入中文语言

antd DatePicker 组件 月份和星期显示英文

两个项目使用了相同的配置,但是日历的显示有差异,一个是全中文,一个是部分中文 在入口文件加了配置,不生效 还尝试了将package-lock.json删除以及将node-modules 删除 后重新安装的方法,都没有生效 最后对moment换了…

flutter在IOS上显示英文

flutter在IOS上显示英文 背景 公司现在正在用纯Flutter作项目。今天测试的妹纸发现在IOS手机上长按文字,弹出的提示框显示的是英文。 我们在用国外的一些Flutter Plugin的时候也经常出现显示不了中文的问题。比如image_picker。 解决 打开Xode “Runner” ->…

命令行操作oracle,显示英文而不是中文

在环境变量,而不是系统变量,平常总用系统变量,这次用环境变量可以解决中文显示问题,增加环境变量,如下: 设置NLS_LANG为SIMPLIFIED CHINESE_CHINA.ZHS16GBK 具体操作如下图: 右键我的电脑,选择…

antd日期组件配置了中文后还是显示英文的解决过程

在使用antd的过程中,遇到了一个展示的问题,日期组件中部分中文部分英文: 按照官方文档的全局配置后还是不行: 到这步在网上搜索了一些答案,有人说把node_modules整个删除再重新安装资源包就能够解决,尝试了后&#xff…

ios调用系统相册显示英文,修改成中文

在 Info.plist 中 Localized resources can be mixed 设为 YES,意思是允许应用获取框架库内语言。 Localization native development region 设为 China 如图所示:

【玩转嵌入式屏幕显示】(四)TFT-LCD屏幕显示英文字符(ASCII)和字符串

1. 简单的显示测试程序 — 帮助理解 使用PCtoLCD对字符取模 无论什么屏幕,都是由一个个像素点组成的,所以显示英文字符’A’的原理如图: 显示一个字符需要确定字符的高度和宽度: 宽度的像素点是高度的一半;高度是16/24/32个像素点,称为字号(上图中是16个像素点)取模…

使用elementUI中的date-picker组件年月日显示英文

date-picker组件从英文转换为中文 一、date-picker显示英文 二、问题原因三、解决办法 -- 引入并注册使用中文版elementUI 一、date-picker显示英文 二、问题原因 全局配置的使用的是英文版elementUI import locale from element-ui/lib/locale/lang/en // lang i18n Vue.use…

Flutter iOS调用系统相机里面的文字显示英文

Xcode版本(12.5) 在iOS里面调用系统相机、相册显示英文,需要修改成中文的方法 1、先把手机的语言模式设置成简体中文 2、在Info.Plist里面把Localization native development region字段修改成China 3、在Info.Plist里面添加字段Localized re…

MessageBox 按钮显示英文或其他语言

由于特殊原因我们需要将 MessageBox 或 Dialog 的按钮“确定”、“取消”用英文或其他语言显示。在网上查找了很多相关内容,但很多要么很麻烦,要么根本就不能实现所需效果。最后发现还是MSDN最好用。 首先是MessageBox中如何将按钮中的文字显示为其他语…

小程序在安卓手机时间格式显示英文的坑

今天说一个关于toLocaleDateString()的坑。 安卓手机picker 时间选择 默认时间显示英文 toLocaleDateString() 方法可根据本地时间把 Date 对象的日期部分转换为字符串,并返回结果。 但是这个方法有毒,在不同浏览器返回的格式是不一样的。 我这里是用来做了一个小程序里面…

element-UI中分页组件显示英文的解决方案

element-UI中分页组件显示英文的解决方案 写vue项目的时候 使用elementUI框架搭建模板 做了一个表格 发现分页控件是英文的 先看图 在看解决方法 出现的问题 解决方法 在main.js中引入中文 第一个是英文 第二个是中文 import locale from element-ui/lib/locale/lang/en im…

解决Echarts的toolbox只显示英文的问题

1、问题描述: echarts的toolbox只显示英文,前几天还是中文,很奇怪。 2、解决方案: 我们为toolbox中每一个配置项都添加title属性,title属性的值就是你想显示的值,随便写。toolbox的配置代码如下&#x…

搜狗输入法明明输入中文却显示英文怎么办

问题情况,下面明明是中文,打出来却显示英文 解决办法: 点击按键shift ctrl e,就可以解决了

在LCD上显示英文和汉字

LCD工作时会在内存中的显存(framebuffer)中取出若干个字节来表示一个像素点,如此循环的把显存中的点阵显示出来 下面直接贴出代码,在代码中有详细的注释: int main(int argc,char **argv) {unsigned char str[] &quo…

Element Plus的分页组件el-pagination显示英文

问题:使用Element Plus的分页组件el-pagination,切换每页显示数量时显示的是英文。原因:Element Plus 组件默认使用的是英语,显示中文的话需要做下配置,就是要引入element-plus里面的中文包。 解决: 第一种…