1.1. Why Do We Learn Linux?

  1. 使用标准C/C++编写运行在 Linux上的应用程序
  2. 编写部署在Linux上的应用程序,如Python,Java Web服务程序 其实Python有Python解释器,Java有Java虚拟机,它们实际上对于Linux的需求没有C/C++来的高,不过对于这些开发者仍然需要掌握一定的Linux使用能力并可以通过Linux知晓系统底层.为何呢?因为不管是工作需要,还是线上日志的查看/准确定位/端口被占用等,还是对于网络模型实现及学习新的如虚拟化技术等,都需要Linux的相关掌握.

1.2. The Several way of Linux

  • 运维、维护Linux服务器①
  • 开发Linux服务程序②
  • 底层开发(*************)③

1.3. How to Learn Linux

1.3.1. The Periiod of Linux

Linux的学习很多以命令为主,初学者学多了之后可能觉得没意思,那么Linux为什么这样做?

  • 省略GUI,节省资源
  • 命令行通过将一系列操作写入脚本,可代替手动操作自动化

对应学习Linux的几个方向,学习Linux也有几个阶段,首先开关机得会吧?还有如何上网?如何用命令行安装/卸载/修改软件,如何创建/移动/修改文档…之后呢,就进入到开发者要干的事:如何编写Linux应用程序,如何编译,如何定位程序bug?再进阶呢?

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

1.3.2. Real Steps

第一阶段

  1. 选择一个主流的发行版,如ubuntu,centos等 值得一提的是,Windows上目前已经有了Linux子系统,WSL(WindowsSubsystem for Linux),并且今年推出了WSL2,试图内置一个完整的Linux内核
  2. 在windows下安装虚拟机随便折腾Linux
  3. 学会使用apt-get还有yum安装或卸载软件,还有各种其他的操作入门

第二阶段

建议给自己定一个目的:如何在Linux中写一个程序

为了达成这个目的,其实需要学习很多,包括但不限于: ![@编程珠玑|300*400](_v_images/20191124164315327_21707.png =400x) 先学再说后面!

1.4. 注意!!

Linux运行可能不稳定,因此不要长期开启缺乏维护,要及时保存快照.