当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • 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.
✨ 想了解更多知识, 请持续关注博主, 本人会不断更新学习记录, 跟随我一起不断学习.
✨ 感谢你们的耐心阅读, 博主本人也是一名学生, 也还有需要很多学习的东西. 写这篇文章是以本人所学内容为基础, 日后也会不断更新自己的学习记录, 我们一起努力进步, 变得优秀, 小小菜鸟, 也能有大大梦想, 关注我, 一起学习.

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

相关文章:

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

文章目录 前言1. Linux 是什么1.1 Unix & Linux 发展历程图1.2 Linux 的发展1.3 Linux 的发行版 2. Linux 环境搭建2.1 环境搭建方式2.2 使用云服务器 3. 使用终端软件连接到 Linux3.1 什么是终端软件3.2 下载安装 XShell3.3 使用 XShell 登陆主机 总结 前言 可能很多人都…...

674. 最长连续递增序列

给定一个未经排序的整数数组&#xff0c;找到最长且 连续递增的子序列&#xff0c;并返回该序列的长度。 连续递增的子序列 可以由两个下标 l 和 r&#xff08;l < r&#xff09;确定&#xff0c;如果对于每个 l < i < r&#xff0c;都有 nums[i] < nums[i 1] &a…...

DS5上ARM编译器样例工程改为GCC编译

想问一下&#xff0c;DS5上ARM编译器通过的样例工程&#xff0c;换成aarch64-none-elf-gcc工具链&#xff0c;是不是需要把startup.S改成gcc支持的格式呀&#xff1f;怎么改呢&#xff0c;求助大神们指点一下&#xff01;谢谢&#xff01;...

关于Unity Time.deltaTime的理解和使用

Unity中的Time.deltaTime是一个表示上一帧到当前帧所用时间的浮点数。 它可以让Unity应用程序能够以平滑的方式在不同的帧率下运行。 要深刻理解Time.deltaTime&#xff0c;首先得了解Unity引擎得工作原理。 Unity引擎以每秒帧数&#xff08;FPS&#xff09;的形式运行。 比…...

Vue3 配置全局 scss 变量

variables.scss $color: #0c8ce9;vite.config.ts // 全局css变量css: {preprocessorOptions: {scss: {additionalData: import "/styles/variables.scss";,},},},.vue 文件使用...

45.120.101.X 如何找出网站建设中弱点和漏洞

漏洞扫描服务&#xff08;Vulnerability Scan Service&#xff09;集Web漏洞扫描、操作系统漏洞扫描、资产内容合规检测、配置基线扫描、弱密码检测五大核心功能&#xff0c;自动发现网站或服务器在网络中的安全风险&#xff0c;为云上业务提供多维度的安全检测服务&#xff0c…...

linux 下打印堆栈信息 jstack pstack gstack 有啥区别?分别的使用场景是啥?

jstack、pstack和gstack是在Linux系统下用于打印堆栈信息的工具&#xff0c;它们的使用场景和功能略有不同。 jstack&#xff1a;jstack是Java虚拟机自带的工具&#xff0c;用于打印Java进程的堆栈信息。它可以显示Java线程的状态、锁信息、线程堆栈等。jstack主要用于诊断Java…...

Vue 3实战:打造交互丰富的任务管理应用

Vue 3实战&#xff1a;打造交互丰富的任务管理应用 前言搭建Vue 3项目步骤 1: 安装Vue CLI 3步骤 2: 创建Vue 3项目步骤 3: 进入项目目录步骤 4: 启动项目步骤 5: 查看项目结构 组件设计与复用1. **组件的职责单一化:**2. **Props传递:**3. **插槽&#xff08;Slots&#xff09…...

python之列表

列表常用操作 l [1,2,3,4,5]# 列表之切片 l1 l[:3] print(l1) # [1, 2, 3],结果为下标0到2 l2 l[3:] print(l2) # [4, 5] ,从下标3开始直到结束 l3 l[1:-1] print(l3) # [2, 3, 4] , 去头去尾...

想要保护服务器的安全,使用哪个软件比较好?

随着互联网的发展普及&#xff0c;网络安全问题也越发凸显&#xff0c;相信不少使用服务器的用户&#xff0c;有遇到过或是听过服务器被入侵导致数据丢失或是被植入病毒木马程序被用来挖矿的情况。那么面对这类情况&#xff0c;我们该如何做好安全工作来保障我们服务器的使用安…...

gitlab图形化界面使用

gitlab使用 创建用户 上面是创建用户基本操作 修改密码 创建组 给组添加用户 创建项目 选择空白项目 退出root用户&#xff0c;切换其他用户 在服务器上创建ssh密钥 使用ssh-ketgen 命令 新服务器上创建的 [rootgitlab ~]# ssh-keygen Generating public/private rsa key …...

Vue使用基本教程(基本介绍及对比,初步使用,构建项目,编辑器等)

一、Vue及与其他前端框架的异同。 Vue.js&#xff08;通常简称为Vue&#xff09;是一个用于构建用户界面的渐进式JavaScript框架。它专注于视图层&#xff0c;采用简单的API设计&#xff0c;使得开发者能够更轻松地构建交互式的单页面应用&#xff08;SPA&#xff09;和用户界…...

基恩士软件的基本操作(四,快速编辑plc技巧)

目录 单元软原件注释快速添加 双击单元配置&#xff0c;进入单元编辑器 KV一键添加注释 双击软元件注释 进入软元件编辑界面 &#xff0c;对弹出的列表中软元件打勾点击登录 元件注释就自动添加了 注释收索&#xff0c;快速编辑软元件 自定义注释收索 空软元件快速查找 …...

通达信的ebk文件

我们在通达信软件中 调出 “自定义板块设置” 这个菜单&#xff0c;点击“导出”&#xff0c;会提示你存储 “自选股.EBK”&#xff0c;其实就是对自定义板块里的目录进行备份的一种方式&#xff0c; 当我们打开 这个文件&#xff0c;你会发现其实就是存储了 股票代码&#xff…...

城市易涝点怎么安装万宾科技内涝积水监测仪?

城市内涝是多个城市广泛存在的问题&#xff0c;经常给城市的居民和基础设施带来一些安全威胁。暴雨引发的道路积水和交通中断、财产损失&#xff0c;甚至公共安全威胁都是城市管理者需要提前预防的问题。为了解决这些问题&#xff0c;内涝积水监测仪的应用是一大重要的举措&…...

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

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

inBuilder低代码平台新特性推荐-第九期

各位知乎的友友们&#xff0c;大家好~ 今天来给大家带来的是inBuilder低代码平台特性推荐系列第九期——子表弹出新增&#xff01; 01 概述 子表弹出新增&#xff0c;是低代码平台提供的一种前端输入组件&#xff0c;在子表字段较多的场景中&#xff0c;有时为了方便…...

C语言——递归实现汉诺塔游戏

归纳编程学习的感悟&#xff0c; 记录奋斗路上的点滴&#xff0c; 希望能帮到一样刻苦的你&#xff01; 如有不足欢迎指正&#xff01; 共同学习交流&#xff01; &#x1f30e;欢迎各位→点赞 &#x1f44d; 收藏⭐ 留言​&#x1f4dd; 比别人多一点努力&#xff0c;你…...

使用MONAI轻松加载医学公开数据集,包括医学分割十项全能挑战数据集和MedMNIST分类数据集

在深度学习中&#xff0c;使用公开数据集具有以下优点&#xff1a; 提供了一个标准化的基准来比较不同算法或模型的性能&#xff0c;因为这些公共数据集被广泛使用&#xff0c;许多研究人员都使用它们来评估他们的方法。可以节省大量的时间和金钱&#xff0c;因为这些数据集已…...

dvwa 代码注入impossible代码审计

dvwa 代码注入impossible代码审计 <?phpif( isset( $_POST[ Submit ] ) ) {// Check Anti-CSRF tokencheckToken( $_REQUEST[ user_token ], $_SESSION[ session_token ], index.php ); // 检查token值是否正确// Get input$target $_REQUEST[ ip ]; $target stripslas…...

基于算法竞赛的c++编程(28)结构体的进阶应用

结构体的嵌套与复杂数据组织 在C中&#xff0c;结构体可以嵌套使用&#xff0c;形成更复杂的数据结构。例如&#xff0c;可以通过嵌套结构体描述多层级数据关系&#xff1a; struct Address {string city;string street;int zipCode; };struct Employee {string name;int id;…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误

HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误&#xff0c;它们的含义、原因和解决方法都有显著区别。以下是详细对比&#xff1a; 1. HTTP 406 (Not Acceptable) 含义&#xff1a; 客户端请求的内容类型与服务器支持的内容类型不匹…...

React hook之useRef

React useRef 详解 useRef 是 React 提供的一个 Hook&#xff0c;用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途&#xff0c;下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...

盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来

一、破局&#xff1a;PCB行业的时代之问 在数字经济蓬勃发展的浪潮中&#xff0c;PCB&#xff08;印制电路板&#xff09;作为 “电子产品之母”&#xff0c;其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透&#xff0c;PCB行业面临着前所未有的挑战与机遇。产品迭代…...

大语言模型如何处理长文本?常用文本分割技术详解

为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

Linux 内存管理实战精讲:核心原理与面试常考点全解析

Linux 内存管理实战精讲&#xff1a;核心原理与面试常考点全解析 Linux 内核内存管理是系统设计中最复杂但也最核心的模块之一。它不仅支撑着虚拟内存机制、物理内存分配、进程隔离与资源复用&#xff0c;还直接决定系统运行的性能与稳定性。无论你是嵌入式开发者、内核调试工…...