你知道Linux操作系统的前世今生吗?Linux系统又该如何搭建呢?

news2024/11/15 5:17:17

文章目录

  • 前言
  • 1. Linux 是什么
    • 1.1 Unix & Linux 发展历程图
    • 1.2 Linux 的发展
    • 1.3 Linux 的发行版
  • 2. Linux 环境搭建
    • 2.1 环境搭建方式
    • 2.2 使用云服务器
  • 3. 使用终端软件连接到 Linux
    • 3.1 什么是终端软件
    • 3.2 下载安装 XShell
    • 3.3 使用 XShell 登陆主机
  • 总结


前言

可能很多人都会有一个疑问, 真正的搞出一个网站来, 是如何让这个王章被别人访问到的? 如 Tomcat 服务器, 难道其他人都能使用 127.0.0.1:8080 来访问到你的网站吗? 答案显然不是的. 这就需要我们通过搭建服务器来实现了 (或购买云服务器), 而服务器中的操作系统绝大多数都是使用的 Linux 系统, 与我们通常使用的 Windows 差异很大, 是通过命令行进行操作的. 那么 Linux 是如何诞生的呢? 又是如何发展至今的? 本文来聊一聊.

关注收藏, 开始学习吧🧐


1. Linux 是什么

Linux 是一个操作系统, 和 Windows 是 “齐驱并驾” 的关系.

当今市面上常见的操作系统:

  • Windows
  • Linux
  • macOS
  • Android
  • iOS

与其余系统不同, Linux 系统是一般用户(非计算机专业) 基本不会使用到的, 与别的操作系统(采用的是图形化界面)不同, 它的操作方式全部采用命令行来进行, 并不太适合日常使用, 但是非常适合用于开发. 作为一个开发人员, 无论是搞 后端 / 前端 / 客户端 / 测试 / 运维 / 网络 等等一系列的人员, Linux 都是务必要掌握切要能熟练使用的一个系统.

1.1 Unix & Linux 发展历程图

在这里插入图片描述

  1. 1969-1970 年, 贝尔实验室的 Dennis Ritchie (上图) 和 Ken Tompson (下图) 开发了 Unix 操作系
    统.
    在这里插入图片描述
    在这里插入图片描述

  2. Unix 火了之后, 衍生出很多的分支. 其中有一只为 “Minix”. 由荷兰的Andrew S. Tanenbaum 教授
    开发. MINIX 含义为 “小型的UNIX”, 源代码开放给大学教学和研究工作.
    在这里插入图片描述

  3. 1991 年, 还在读大学的 芬兰人 Linus Benedict Torvalds (1969年12月28日出生, 当时 22 岁) 基于
    Minix 的启发, 开发出了 Linux 的第一个版本.
    在这里插入图片描述

1.2 Linux 的发展

1991年, 可以认为是 “计算机领域奇迹年”, Linux, Python, Qt, Vim, OpenGL…都是出自这一年. Linux 也是这一年诞生, Linus 大佬在读研究生时闲着无聊, 写了个操作系统来玩. 万万没想到, 这个系统就火了, 因为它是开源, 免费的.

Linux 出现之前, 比较火的系统比如 Unix(其实就是 Linux 的前身), 虽然是开源的, 但是收费. 其余操作系统有的闭源, 有的收费, 所以当出现了一个开源免费的 Linux 后, 很多当时的大牛都加入其中, 为 Linux 的发展贡献出自己的一份力量, 这使 Linux 快速迭代, 从刚开始一个并不大, 功能也不是很丰富的系统, 摇身一变, 成一个庞然大物了.

后来, 为了能够很好的进行多人协同开发, Linus 大佬又顺手开发另一个大名鼎鼎的东西, git 开发工具软件, 可以管理代码版本, 协同多人进行开发.

再后来 Linus 大佬还写了一个自传, 叫做 《Just For Fun》, 这书名什么意思就不用我多解释了吧(滑稽).

时过境迁, Linux 已经发展成为 世界第一大操作系统. 连 Android 系统的内核都是基于 Linux 来实现的. 以下领域, Linux 都有参与.

  • 服务器领域.
  • 嵌入式设备, 现在的智能设备, 包括但不限于空调, 洗衣机, 冰箱, 路由器, 里面都需要有一个操作系统来支持.
  • 移动端, Android 本质上就是 Linux.

补充一下:

Linux 也有桌面的版本, 但体验上很差, 使用起来感觉比 Windows 的桌面水平落后十年(不夸张), 所以还是老老实实使用命令行吧.

1.3 Linux 的发行版

Linux 严格意义来说只是一个 “操作系统内核”(提供最核心的功能, 管理硬件设备, 给软件提供稳定的运行环境).

一个完整的操作系统 = 操作系统内核 + 配套的应用程序.

由于 Linux 是一个完全开源免费的内核, 因此有些公司/开源组织又基于 Linux 内核, 提供了不同的配套程序. 这就构成了不同的 “发行版”.

这些发行版也大同小异, 命令几乎都是一样的, 个别不同, 掌握其中一个, 其他的也就很容易快速上手.

在这里插入图片描述
企业中最主要使用的发行版是 RedHat (红帽). 但是 RedHat 是一个收费的系统(报价参考 https://www.redhat.com/en/store/linux-platforms?intcmp=701f20000012m33AAA).

由于红帽是收费的, 不适合我们学习使用, 在此推荐两个别的选择.

CentOS, 和 RedHat 几乎一模一样, 就是拿着 RedHat 的源码换个 logo, 重新编译了一下.

CentOS 和 RedHat 的关系
RedHat一直都提供源代码的发行方式,CentOS就是将RedHat发行的源代码去掉 RedHat 的 logo 商标, 重新编译一次.
RedHat对这种发行版的态度是:“我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务。”
所以,CentOS可以得到RedHat的所有功能,甚至是更好的软件。但CentOS并不向用户提供商业支持,当然也不负上任何商业责任。

Ubuntu, 比较知名的一个老牌系统, 在企业端使用份额虽然不是很高, 但在社区里还是挺火的.

2. Linux 环境搭建

要想学习使用 Linux , 需要先有一个 Linux 的环境. 如何获取 Linux 环境呢?

2.1 环境搭建方式

主要有四种:

  1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好. [不推荐].
  2. 使用虚拟机软件, 用软件去模拟硬件. 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件多多少少存在一些 bug , 会导致环境上出现各种莫名其妙的问题, 比较折腾. 并且虚拟机无法拥有一个外网 IP 地址. [非常不推荐]
  3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能, 在 Windows 系统内集成了一个 Linux. 目前成熟度还是挺高的, 但也无法拥有外网 IP. [暂时不推荐]
  4. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器, 相当于租了一台电脑, 完美解决了怎么获得外网 IP 的问题, 学生购买还有大幅度优惠. [推荐]

使用云服务器不仅环境搭建简单, 避免折腾, 同时还有一个最大的好处, 部署在云服务器上的项目可以直接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别. 也就能让我们自己写的程序真的去给别人去使用.

2.2 使用云服务器

在此我们不具体演示如何去购买一个云服务器, 因为各大云服务器厂商的价格也不相同, 读者可以自行查看购买, 购买也很简单, 挑价格便宜的买就行, 毕竟目前我们的服务器也不需要配置很高.

给大家提供一下三大云服务器厂商的官网, 可自行挑选购买.

  • 腾讯云
  • 阿里云
  • 华为云

3. 使用终端软件连接到 Linux

3.1 什么是终端软件

终端软件是一类工具软件, 可以和远程的主机建立网络连接, 从而对主机进行一些操作.
常见的终端软件:

  • XShell
  • Putty
  • MobaXTerm
  • Iterm2
  • SecureCRT

推荐大家下载使用 XShell, 功能能加丰富.

3.2 下载安装 XShell

下载地址: https://www.xshell.com/zh/xshell/
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
点击下载之后, 就可以一路 next 了.

3.3 使用 XShell 登陆主机

打开 XShell. 通过云服务器提供的外网 IP, 连接云服务器.
在这里插入图片描述
关于XShell 下的复制粘贴

  • 复制: ctrl + insert (有些笔记本的 insert 需要配合 Fn 来按)
  • 粘贴: shift + insert

总结

✨ 本文主要讲解了 Linux 系统的发展历程, 并且讲了如何搭建一个 Linux 环境, 如何使用终端软件连接 Linux.
✨ 想了解更多知识, 请持续关注博主, 本人会不断更新学习记录, 跟随我一起不断学习.
✨ 感谢你们的耐心阅读, 博主本人也是一名学生, 也还有需要很多学习的东西. 写这篇文章是以本人所学内容为基础, 日后也会不断更新自己的学习记录, 我们一起努力进步, 变得优秀, 小小菜鸟, 也能有大大梦想, 关注我, 一起学习.

再次感谢你们的阅读, 你们的鼓励是我创作的最大动力!!!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1235893.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022最新版-李宏毅机器学习深度学习课程-P49 GPT的野望

GPT→类似于Transformer Encoder 训练任务:Predict Next Token 使用MASK-attention,不断预测“下一个token”。 可以用GPT生成文章。 How to use GPT? 给出描述和例子 给出前半段,补上后半段 In-context Learning(no GD) 结果 目前看起…

Jenkins 下载安装

下载 Jenkins 选择Download LTS是稳定版本,尽量选择稳定版本,然后选择你的开发系统. 安装 Jenkins需要JAVA环境,所以安装JAVA环境 Java Jenkins支持17、21等几个版本的Java,OpenJDK JDK 21.0.1 GA Release 安装不要安装到C盘,这个后面会占较大的…

力扣 622.设计循环队列

目录 1.解题思路2.代码实现 1.解题思路 首先,该题是设计循环队列,因此我们有两种实现方法,即数组和链表,但具体考虑后,发现数组实现要更容易一些,因此使用数组实现,因此我们要给出头和尾变量&a…

构建智能医患沟通:陪诊小程序开发实战

在医疗科技的浪潮中,陪诊小程序的开发成为改善医患沟通的创新途径之一。本文将介绍如何使用Node.js和Express框架构建一个简单而强大的陪诊小程序,实现患者导诊和医生咨询功能。 1. 安装Node.js和Express 首先确保已安装Node.js,然后使用以…

TS类型全解

使用TypeScript开发的程序更安全,常见的错误都能检查出来。TS能让程序员事半功倍。而原因在于TS的“类型安全”(借助类型避免程序做无效的事情)。 图 运行程序的过程 但是TS不会直接编译成字节码,而是编译成JavaScript代码。TS编…

MIT_线性代数笔记:列空间和零空间

目录 前言子空间综述列空间 Column space零空间(或化零空间)Nullspaceb 值的影响 Other values of b 前言 本节继续研究子空间,特别是矩阵的列空间(column space)和零空间(nullspace)。 子空间…

如何将Docker的构建时间减少40%

与许多公司类似,我们为产品中使用的所有组件构建docker映像。随着时间的推移,其中一些映像变得越来越大,我们的CI构建花费的时间也越来越长。我的目标是CI构建不超过5分钟——差不多是喝杯咖啡休息的理想时间。如果构建花费的时间超过这个时间…

6.Gin 路由详解 - GET POST 请求以及参数获取示例

6.Gin 路由详解 - GET POST 请求以及参数获取示例 GET POST 请求以及参数获取示例 Get 请求:获取 Quary 参数 // 获取query参数示例:GET /user?uid20&namejack&page1 r.GET("/user", func(c *gin.Context) {// 获取参数// Query获取参…

Java核心知识点整理大全6-笔记

目录 4.1.4. 线程生命周期(状态) 4.1.4.1. 新建状态(NEW) 4.1.4.2. 就绪状态(RUNNABLE): 4.1.4.3. 运行状态(RUNNING): 4.1.4.4. 阻塞状态(BLOCKED)&#xff…

微信小程序如何使用scss,less

搜到很多都是先VSCode安装好…插件…。这都是很久之前的方法了,所以想写这篇文章 一、修改project.config.json配置文件 "setting": {"useCompilerPlugins": ["sass"]},二、然后就可以删除 .wxss 文件了,就用 .scss 文件…

C练习题_15

一、单项选择题(本大题共20小题,每小题2分,共40分。在每小题给出的四个备选项中,选出一个正确的答案,并将所选项前的字母填写在答题纸的相应位置上。) 在下列说法中,()是正确的。 A.C程序从第一个函数开始…

练习7-在Verilog中使用任务task

在Verilog中使用任务task 1,任务目的2,RTL代码,交换3,测试代码4,波形显示 1,任务目的 (1)掌握任务在verilog模块设计中的应用; (2)学会在电平敏感…

小红书全自动加群引流脚本「 软件工具+引流技术教程」

软件介绍: 小红书群聊最新玩法,可自动检测群人数加群,不会加到垃圾群。定时发送广告,红书群聊的引流玩法回来了 功能一、自动搜索关键词加群,比如创业、项目、鞋子、包包、考公、考研… 功能二、自动检测群人数&…

交替最小二乘法

前置概念导入 协同过滤(Collaborative Filtering):这是一种推荐系统的方法,依据用户之间或物品之间的相似性来进行推荐。协同过滤通常分为两种主要类型:用户基于(user-based)和物品基于&#xf…

丐版设备互联方案:安卓linux互联局域网投屏,文件共享,共享剪切板

华为,苹果,甚至小米最近也推出了澎湃OS,发现实在是太方便了,当然这些对硬件,系统的要求还是比较高,我用的主力机是小米12pro和ubuntu,win双系统也…

css取消移动端长按元素背景色

在开发微信小程序的时候,发现有的元素长按之后,出现了讨厌人的背景色,这就很奇怪,就想把它去掉,所以这里教一下方法: 在所在元素添加css样式: // 取消长按的背景色-webkit-tap-highlight-color:…

K8S精进之路-控制器Deployment-(1)

在K8S中,最小运行单位为POD,它是一个逻辑概念,其实是一组共享了某些资源的容器组。POD是能运行多个容器的,Pod 里的所有容器,共享的是同一个 Network Namespace,并且可以声明共享同一个 Volume。在POD中能够hold住网络…

子虔科技亮相2023工业软件生态大会 以先进理念赋能工业软件发展

作为云化工业软件领先企业,子虔科技携多项全新云原生产品亮相2023工业软件生态大会。 本届大会以“共建新一代工业软件体系,引领制造业高质量发展”为主题,集结行业领先企业、行业专家探究工业软件在核心技术、产业链创新和生态建设等方面创…

Git——分布式版本控制工具

一、概述 1.开发中的实际场景 备份代码还原协同开发追溯问题代码的编写人和编写时间 2.版本控制器的方式 集中式版本控制工具 集中式版本控制工具,版本库是集中存放在中央服务器的,team里每个人work时从中央服务器下载代码,是必须联网才能…

Javaweb之Axios的详细解析

1.3 Axios 上述原生的Ajax请求的代码编写起来还是比较繁琐的,所以接下来我们学习一门更加简单的发送Ajax请求的技术Axios 。Axios是对原生的AJAX进行封装,简化书写。Axios官网是:https://www.axios-http.cn 1.3.1 Axios的基本使用 Axios的…