学Linux到底学什么

2021-04-19 08:04 Linux 85 梁俊威

我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么?

为什么要学Linux

在回答学什么之前,我们先看看为什么要学。首先我们需要认识到的是,很多服务器使用的是Linux系统,而作为服务器应用程序的开发者或者维护者,如果不了解Linux的基本使用,该如何进行开发或者维护呢?

当然,也有可能你听说Linux更高大上,或者是说Linux对开发者更加友好(Windows用户把刀放下),这都是题外话了。

在我看来,学习Linux主要有以下两点原因

  • 使用标准C/C++ 编写运行在Linux上的应用程序

  • 编写部署在Linux上的应用程序,如Python,Java web服务程序

  • 一探究竟。众所周知,Linux开源,windows并非如此。

而对于Python,它有Python解释器,Java有Java虚拟机,他们实际上对Linux的需求是没有C/C++来的高。即便如此,Linux也是值得Python/Java开发者去学习的。如果你是做C/C++开发,那么Linux是必备的,还记得当前被VC6支配的恐惧吗?

Linux学习方向

那么一般说的学Linux是要学什么呢?方向不同,要学习的内容也不同,可以大致分为这么几个方向:

  • 运维,维护Linux服务器

  • 应用开发,开发Linux应用程序

  • 底层开发

我本人是做PHP应用开发的,因此对于运维方向和底层方向不是很了解,这里仅简单说一下。

运维Linux主要需要学会对服务器的基本部署,监控,配置,管理等等, 你可以认为,这些机器归你管了,7*24小时保障它能正常提供服务(删库跑路就别做了),所以7月24日请对运维的朋友好点。也欢迎运维的朋友留言纠正或者补充我的说法。

底层开发需要了解uboot,文件系统,内核等底层相关内容,主要工作可能涉及文件系统裁剪,驱动开发,内核模块定制(如内存管理,进程调度)等等。底层开发总体来说要求比较高。

应用开发自然是需要学习如何开发在Linux上运行的应用程序,如何定位Linux应用程序问题等等。

Linux应用开发学什么

Linux的学习很多会以命令为主,因而初学会觉得枯燥甚至疑惑,鼠标点点点就能完成的事,为什么要劈里啪啦敲这么多?这里给出两点理由,也欢迎你补充:

  • 出于资源的考虑,绝大部分Linux服务器没有图形界面

  • 命令行便于自动化,将一系列操作写入脚本,可代替手动操作

而它的学习我把它分为这么几个阶段:

  • 基本使用

  • 开发调试

  • 系统认识

这三个阶段对知识积累的要求不一样,但总体来说并没有严格的先后之分。

类于windows,当年你学习windows的时候学了什么?

  • 开关机?

  • 安装卸载软件?如安装视频播放器,音乐播放器(为啥要安这玩意?)。

  • 如何打开安装的软件?如打开浏览器上网,打开编辑器写文档

  • 如何存放自己的资料?移动,创建,删除等等

  • 如何使用office 办公软件

  • ……

是不是想想好像也没有特意地去学习?

那么对于学习Linux来说也是类似的,就是学会这些最普通的使用,

  • 如何开关机

  • 如何上网

  • 如何打开命令行

  • 如何使用命令行安装卸载软件

  • 如何编辑文本

  • 如何创建,移动,删除文件

  • 如何查看文件内容,解压缩文件

  • ……

这个阶段最难的就是从图形界面到命令行的转换。

那么第二阶段呢,就需要学会:

  • 如何编写Linux应用程序

  • 如何编译或者构建你的程序

  • 如何运行你的程序

  • 如何定位程序bug

而第三阶段,则是一个需要漫长的学习过程,但都是为开发服务,包括:

  • 理解并践行一切皆文件

  • ELF文件,Linux主要可执行文件格式

  • Linux各大机制的基本原理,如进程调度,内存管理,虚拟内存,文件系统等,既然要写Linux应用程序,怎么能不了解它所在平台的主要机制呢?

越是疑难问题,越需要这些最基本的知识。

若无特殊说明,本站点所有内容均为原创,转载请说明出处!

原文链接:https://www.ljwei.com.cn/read/247.html

QQ客服

QQ客服

微信客服

微信客服

微信客服二维码
意见反馈

意见反馈

一键置顶