目录
1.Linux是什么?
2.Unix & Linux 发展历程图
3.Linux 发行版
PS:CentOS 和 RedHat 的关系
4.关于 Linux 学习什么?
4.1.基础命令(重点)
PS:使用命令相比于使用图形界面的主要好处
4.2.系统编程 & 网络编程
4.3.部署 JavaWeb 项目(重点)
1.Linux是什么?
Linux 是一个操作系统,和 Windows 是 "并列" 的关系。
- 开发环境(Windows服务器)有UI图形化界面,操作方便。
- 生产环境(Linux服务器)没有UI图形化界面,性能高,资源丰富。
目前三大主流操作系统:Windows、Linux、MacOS(基于Linux,但又有UI图形化界面)。
2.Unix & Linux 发展历程图
Linux诞生于Unix(收费)。
- 1969-1970 年,贝尔实验室的 Dennis Ritchie 和 Ken Tompson 开发了 Unix 操作系统。这俩大佬本来是想开发一个操作系统, 但是开发着开发着,发现现有的编程语言不太好使,于是俩人一合计,先整个编程语言出来吧,于是 C 语言就诞生了。 Dennis Ritchie 大佬 2011 年就去天堂写代码了,Ken Tompson 大佬后来在 google,又参与发明了 Go 语言。
- Unix 火了之后,衍生出很多的分支,其中有一支为 "Minix",由荷兰的Andrew S. Tanenbaum 教授开发,MINIX 含义为 "小型的UNIX",源代码开放给大学教学和研究工作。
- 1991 年,还在读大学的芬兰人 Linus Benedict Torvalds (1969年12月28日出生,当时 22 岁) 基于 Minix 的启发,开发出了 Linux 的第一个版本。值的一提的是,Linus 在开发 Linux 的时候,觉得现有的版本管理工具并不太方便,于是开发了一个新的版本管理工具,也就是现在最广泛使用的 git。Linus 大佬现在 50 多岁了,但是仍然在互联网上非常活跃,经常会拍一些视频, 在油管或者 B站 上就可以找到。
经过这么多年的发展,Linux 已经成为世界第一大操作系统。安卓系统本质上就是 Linux。
- 服务器领域
- 嵌入式设备
- 移动端
3.Linux 发行版
Linux 严格意义来说只是一个 "操作系统内核"。
一个完整的操作系统 = 操作系统内核 + 配套的应用程序。
由于 Linux 是一个完全开源免费的内核,因此有些公司/开源组织又基于 Linux 内核,提供了不同的配套程序,这就构成了不同的 "发行版"。
企业中最主要使用的发行版是 RedHat (红帽),但是 RedHat 是一个收费的系统,因此这里使用的是基于红帽系统的的社区免费版本 CentOS。
PS:CentOS 和 RedHat 的关系
RedHat一直都提供源代码的发行方式,CentOS就是将RedHat发行的源代码去掉 RedHat 的 logo 商标,重新编译一次。
RedHat对这种发行版的态度是:“我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务。”
所以,CentOS可以得到RedHat的所有功能,甚至是更好的软件。但CentOS并不向用户提供商业支持,当然也不负上任何商业责任。
4.关于 Linux 学习什么?
4.1.基础命令(重点)
Linux 虽然也有图形化界面,但是在服务器 / 嵌入式设备上往往都是通过命令行的方式操作的。
因此学习 Linux 命令就是使用 Linux 的重要基础。
PS:使用命令相比于使用图形界面的主要好处
- 节省系统资源:运行图形界面需要让系统付出一些额外的资源开销,尤其是对于配置比较低的嵌入式设备,这一点至关重要。
- 节省网络带宽:如果通过网络访问服务器,使用图形界面需要传输一帧一帧的图像,而使用命令只需要传输简单的字符串。
- 便于批量执行任务:可以通过一些 "脚本" 代码 (比如 Linux Shell) 来批量执行一些任务,完成一些简单的编程工作。(比如定时备份文件,删除文件等)
Windows 也有命令(也就是 cmd),只是对于普通用户来说很少使用。
4.2.系统编程 & 网络编程
Linux 自身提供了一些 API,供程序猿调用来完成一些更复杂的编程任务(比如文件操作,多线程编程,socket 编程等)。
但是由于 Java 跨平台的特性,这部分功能已经被 Java 自身封装好了 (流对象,Thread 对象,Socket 对象等)。所以这部分内容就不必再学习了。
4.3.部署 JavaWeb 项目(重点)
我们自己写的 web 程序,要想让其他的用户能够访问,就需要发布到服务器上。