1.1. Why Do We Learn Linux?
- 使用标准C/C++编写运行在 Linux上的应用程序
- 编写部署在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
第一阶段
- 选择一个主流的发行版,如ubuntu,centos等 值得一提的是,Windows上目前已经有了Linux子系统,WSL(WindowsSubsystem for Linux),并且今年推出了WSL2,试图内置一个完整的Linux内核
- 在windows下安装虚拟机⇒随便折腾Linux
- 学会使用apt-get还有yum安装或卸载软件,还有各种其他的操作入门
第二阶段
建议给自己定一个目的:如何在Linux中写一个程序
为了达成这个目的,其实需要学习很多,包括但不限于: ![@编程珠玑|300*400](_v_images/20191124164315327_21707.png =400x) 先学再说后面!
1.4. 注意!!
Linux运行可能不稳定,因此不要长期开启缺乏维护,要及时保存快照.