16-Linux背景知识

Linux是一种开源操作系统,与Windows并列,常用于服务器环境。它基于Unix发展,其中CentOS是RedHat的社区免费版本。学习Linux应重视基础命令,因为命令行操作能节省资源和提高效率。在服务器上部署JavaWeb项目是重要实践之一。

目录

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(收费)。

  1. 1969-1970 年,贝尔实验室的 Dennis Ritchie 和 Ken Tompson 开发了 Unix 操作系统。这俩大佬本来是想开发一个操作系统, 但是开发着开发着,发现现有的编程语言不太好使,于是俩人一合计,先整个编程语言出来吧,于是 C 语言就诞生了。 Dennis Ritchie 大佬 2011 年就去天堂写代码了,Ken Tompson 大佬后来在 google,又参与发明了 Go 语言。
  2. Unix 火了之后,衍生出很多的分支,其中有一支为 "Minix",由荷兰的Andrew S. Tanenbaum 教授开发,MINIX 含义为 "小型的UNIX",源代码开放给大学教学和研究工作。
  3. 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 程序,要想让其他的用户能够访问,就需要发布到服务器上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值