(一)Linux的历史与环境搭建

【知识预告】

  1. Linux背景介绍
  2. Linux操作系统特性
  3. Linux的应用场景
  4. Linux的发行版本
  5. 搭建Linux环境

1 Linux背景介绍

1.1 什么是Linux?

Linux是一种自由、开源的操作系统。严格来说,它是基于类Unix设计思想,旨在为用户提供稳定、安全、高效的计算环境。Linux诞生于20世纪90年代初,目前已广泛应用于服务器、个人电脑、智能设备等多个领域,成为现代信息社会的重要支撑。

1.2 计算机发展史

1946年2月24日,世界上第一台通用电子计算机——埃尼阿克(ENIAC)正式诞生。彼时,世界正处于美苏冷战时期,技术竞争异常激烈。计算机最初主要用于军事用途,典型应用是计算导弹弹道轨迹。
随着技术不断突破,摩尔定律(每18到24个月芯片上集成的晶体管数量将翻倍)逐渐显现,使得计算机体积迅速缩小、成本下降,计算机逐步走出军事用途,进入科研和工业领域。
由于军队本身缺乏足够的专业技术人才,政府出资,联合高校与研究机构共同进行研发。这种“出资+技术”的合作模式,大大加速了计算机技术的发展,也促进了计算机的产业化。随着技术成熟,越来越多的私人资本(如华尔街的资金和人才)进入,推动了第一批商业化计算机产品和操作系统的诞生。
政府则通过税收回流资金,形成了良性的技术创新和经济增长循环。

1.3 操作系统的故事

1.3.1 计算机硬件

早期计算机硬件主要由两大公司推动:IBM和苹果公司。

  • IBM以生产面向企业、高校和科研机构的大型机和工作站为主,操作系统主要采用UNIX系统,稳定、可靠,但昂贵。
  • 苹果公司则采取“软硬件一体化”的策略,自主开发硬件和操作系统(如Mac OS),以精良的设计和卓越的体验闻名,不过价格同样高昂,主要面向高端用户群体。

1.3.2 计算机软件

在软件领域,微软崛起,与英特尔(Intel)结盟,推出了兼容性更好、成本更低的个人电脑解决方案(即“Wintel联盟”)。微软主要提供操作系统(如DOS、Windows),通过授权模式迅速扩展市场,占领了大众消费市场。

1.4 Linux的诞生

在这样一个硬件和软件格局初步形成的时代背景下(一般的平民百姓都用不起电脑),1991年,芬兰赫尔辛基大学的21岁学生林纳斯·托瓦兹(Linus Torvalds)横空出世。他思考:能否开发一个免费的、人人可用的操作系统?
于是,他开始基于Minix系统的思想,自主开发一个新的内核,并将其命名为Linux(“Linux is not Unix”,取前四个字母,再加上x表示Unix家族)。
托瓦兹将Linux内核的源代码免费发布在互联网上,鼓励全球开发者共同参与修改和完善。这种开源协作模式迅速吸引了大批计算机爱好者、黑客、工程师的参与,推动了Linux快速成长。

1.5 开源 vs 闭源,谁更好

我开始认为闭源好,但是事实上,开源软件在保障质量方面具有天然优势。

首先,开源意味着源代码对所有人开放,任何开发者、黑客、研究人员都可以自由查看、审阅、测试甚至修改代码。这样一来,更多的专业人士参与其中,能够快速发现潜在的问题和安全漏洞。每多一个人审阅,系统的健壮性、安全性就增加一分。就像一个程序,如果只有少数开发者能接触到源代码,那么问题被发现和修复的速度就有限;而如果全球数百万开发者都能参与审阅和贡献,那么漏洞自然更容易暴露并被及时修补。

以Linux为例,由于其完全开源,吸引了全球范围内的优秀开发者持续关注和贡献。不仅有自由软件爱好者,还有许多曾在大型企业工作的高级工程师、研究人员也积极参与。他们有的是出于兴趣,有的是出于对现有商业模式的不满,还有的是为了推动技术进步。无论出于什么动机,开源社区中汇聚了大量具有极高专业水平的人才,这种力量远远超过了单一企业内部有限的资源。

当然,也有人认为闭源软件通过严格的内部管理、专业的测试流程,也能保持较高的软件质量。确实,像苹果、微软这样的公司拥有完善的开发和测试体系,闭源软件在某些特定场景下也非常优秀。但闭源模式下,源代码不能公开接受全球开发者的审视,问题的发现和修复主要依赖内部团队,因此在应对大规模漏洞、尤其是安全漏洞时,可能反应速度较慢,透明度也较低。

综合来看,开源并不是天然完美的,但在长期、大规模协作下,开源软件往往能实现更高的稳定性、安全性和可持续发展。Linux的发展就是最好的例证:从一个学生的小项目,成长为支撑全球互联网基础设施的核心系统,靠的正是开源模式下全球开发者共同打磨的力量。

2 Linux操作系统特性

  • 开源:源代码对所有人开放,允许自由查看、修改和分发。
  • 免费:绝大多数Linux发行版无需付费使用,降低了使用门槛。
  • 稳定可靠:在服务器、高性能计算等应用场景中表现优异,系统崩溃率极低。
  • 安全性高:由于众多开发者共同维护,漏洞能被快速发现和修复,安全性极高。
  • 高效性能:占用资源少,适用于各种硬件环境。

3 Linux的应用场景

  • 互联网公司的服务器后端:绝大多数网站和云服务(如谷歌、Facebook、亚马逊)后端服务器均基于Linux。
  • 智能设备操作系统:如Android系统就是基于Linux内核开发的,广泛应用于手机、智能电视、车载系统等。
  • 嵌入式系统:在工业控制、物联网、智能家居等领域,Linux也被广泛使用,因其高度可定制、资源占用少的特性极具优势。
  • 科研与高性能计算:超级计算机集群大多采用Linux系统,如全球Top500超级计算机中,超过90%运行的是Linux或其衍生系统。

4 Linux的发行版本

4.1 商业化版本

最早,Linux诞生于个人和开源社区,但随着Linux在服务器、超级计算机和企业后台系统中的应用越来越广泛,企业客户对稳定性、安全性、长期支持、合规性等提出了更高要求。于是,许多公司基于Linux内核开发出了商业化版本,以提供更加完善、稳定、可靠的解决方案,同时配套技术支持和服务。
Linux商业化版本的代表有:

  • Red Hat Enterprise Linux(RHEL):由Red Hat公司开发,是最早也是最成功的Linux商业化发行版之一。Red Hat通过提供稳定的软件版本、长期的技术支持、安全补丁和认证服务,构建了完整的企业级解决方案。Red Hat通过订阅制盈利,成为Linux商业化运营的典范。
  • SUSE Linux Enterprise Server(SLES):由德国SUSE公司开发,专注于企业服务器和大型数据中心应用,强调系统的可靠性与灵活性,在欧洲市场尤其受欢迎。
  • Ubuntu(特别是Ubuntu LTS版本):由Canonical公司维护,虽然基础版本免费,但Canonical通过提供企业支持服务(如服务器优化、云平台部署、安全更新)来实现商业变现,尤其在云计算领域影响力巨大。
  • Oracle Linux:由甲骨文公司推出,兼容Red Hat Enterprise Linux,主要面向需要使用Oracle数据库和企业应用的客户群体,强调高性能和高可用性。
  • CentOS(现已演变为CentOS Stream):虽然一开始是社区驱动的免费版本,但它是RHEL的下游版本,被许多企业作为成本更低的选择使用。现在CentOS Stream变成了RHEL的滚动开发版本,为RHEL做前期测试。
  • Amazon Linux:由亚马逊AWS推出,专门针对云环境进行了优化,深度集成了AWS平台,主要用于云服务器实例(EC2)。
    Linux商业版本
    后续我主要用Centos,7.6/7.8/7.9版本。

4.2 技术版本

浏览器搜The Linux Kernel Archives,然后点击HTTP,可以看Linux的技术版本。
在这里插入图片描述

5 搭建Linux环境

5.1 Linux 环境的搭建方式主要有三种

  1. 直接安装在物理机上(双操作系统), 但是由于 Linux 桌面使用起来非常不友好, 不推荐。
  2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上。(不会,bug满天飞)
  3. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器。(氪金,成为人民币玩家,也不贵,可以多个人共用一个账号)

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

5.2 购买云服务器

以阿里云为例, 其他的服务器厂商也是类似。

  1. 浏览器搜索阿里云。
  2. 登陆网站,买个最便宜的服务器。(2G够用了)
  3. 右上角点击控制台,然后更改密码。
  4. 在这里插入图片描述
  5. 记住公网IP地址,再下载一个Xhell 8(必须是最新版本)。

5.3 使用 XShell 远程登陆到 Linux

5.3.1 关于 Linux 桌面

Linux 启动进入图形化的桌面,这个东西以后就可以忘记了。 以后的工作中没有机会使用图形界面。

为什么工作中不使用Linux图形界面?

在实际的生产环境中,大部分Linux服务器、后台系统、云计算平台等几乎都是以命令行界面(CLI, Command Line Interface)为主,而不是图形界面(GUI, Graphical User Interface)。主要原因有:

  1. 图形界面需要消耗大量的系统资源(CPU、内存、硬盘空间等),而服务器的资源非常宝贵,优先要保证业务应用的性能和稳定性。命令行界面非常轻量,不需要加载冗余的图形组件,能够最大程度地节省资源。
  2. 图形界面涉及更多的软件层次(窗口管理器、图形驱动等),意味着潜在的漏洞、崩溃风险也更多。纯命令行系统架构简单,出错概率更低,安全性更高。 在对稳定性要求极高的服务器环境中,去除图形界面可以大幅降低系统故障率。
  3. 在工作中,服务器大多放置在远程机房,管理人员通过SSH等协议进行远程登录。命令行非常适合低带宽、高延迟的远程操作环境,而图形界面需要图像传输,网络开销大,效率低下。
  4. 对于熟悉Linux命令行的工程师来说,CLI操作可以实现更快、更精准、更自动化的管理,比如用脚本批量处理任务、自动化部署等等。命令行体现了专业水平,而图形界面虽然友好,但操作步骤繁琐,不适合大规模、高效率的工作场景。
  5. 在互联网公司、金融系统、云服务提供商等行业,使用命令行管理服务器已经是公认的标准实践。为了与行业规范接轨,新人必须适应无图形界面的环境。

在以后的工作中,我们面对的Linux系统,通常都是“纯净的命令行环境”。虽然在学习初期图形界面可以帮助理解和过渡,但真正走向职业工作,必须彻底掌握并习惯于命令行操作。忘记图形界面,拥抱命令行,是成为一名合格技术人员的重要一步。

5.3.2 使用Xshell登陆主机

Linux命令行

// ssh root@你的公网IP地址,这里我的地址是121.40.223.120
ssh root@121.40.223.120

然后就到了下一步,要你输入密码。
在这里插入图片描述
看到welcome就成功了。
在这里插入图片描述
如果要和别人共用一个账号。

// 命令行输入
adduser HYQ    // 补充用户名,然后按回车键
passwd HYQ     // 给新增的用户名,补充密码
// 然后系统会提示,New password:
// Retype new passworld:

注意:Linux命令行里面,密码不回显(不回显示出来)。
在这里插入图片描述
密码输入成功后,子账号就创建好了。

其它人就可以通过刚才创建的子账号,登陆你的云服务器了。登陆过程和上面一样,只不过这次是:

ssh HYQ@121.40.223.120       // 刚才是ssh root@121.40.223.120

在这里插入图片描述
密码输入成功后,和上面一样看见welcome,就可以正常使用服务器了。

// 按下Ctrl+Alt+],就可以退出子账号,就可以重新登陆root账号了
// 如果嫌弃前面的命令行太多,碍眼睛,可以输入clear清除上面的记录

如果你想更改子账号的密码,登陆root账号后,passwd HYQ就可以改密码。userdel -r HYQ就可以彻底删除这个子账号。
更改/删除子账号密码

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

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

相关文章

光流法:从传统方法到深度学习方法

1 光流法简介 光流(Optical Flow)是指图像中像素灰度值随时间的变化而产生的运动场。 简单来说,它描述了图像中每个像素点的运动速度和方向。 光流法是一种通过分析图像序列中像素灰度值来计算光流的方法。对于图像数据计算出来的光流是一个二…

解决ssh拉取服务器数据,要多次输入密码的问题

问题在于,每次循环调用 rsync 都是新开一个连接,所以每次都需要输入一次密码。为了只输入一次密码,有以下几种方式可以解决: ✅ 推荐方案:设置 SSH 免密登录 最稳最安全的方式是:配置 SSH 免密登录&#x…

web技术与Nginx网站服务

目录 一. web基础 1. 域名概念 2. Hosts 文件 3. DNS 4. 域名注册 5. 网页与 HTML 二. 网页概述 1. HTML 概述 2. HTML 基本标签 3. 网站和主页 三. 静态网页与动态网页 1. 静态网页 2. 动态网页 3. 动态网页语言 四. HTTP 协议 1. HTTP 协议概述 2. HTTP …

信创系统资产清单采集脚本:主机名+IP+MAC 一键生成 CSV

原文链接:信创系统资产清单采集脚本:主机名IPMAC 一键生成 CSV Hello,大家好啊!今天给大家带来一篇在信创终端操作系统上自动批量采集主机名、IP 和 MAC 并导出为 CSV 表格的实战文章!本方案使用 sshpass 和 Bash 脚本…

【dify+docker安装教程】

目录 一、dify安装包下载 二、运行环境配置 1、下载docker 2、安装 2.1 新建文件夹 2.2 安装 2.3 命令安装 3.下载完成后需要重启电脑,注意保存文档!!注意保存!!注意!!(血的教…

HTML 地理定位(Geolocation)教程

HTML 地理定位(Geolocation)教程 简介 HTML5 的 Geolocation API 允许网页应用获取用户的地理位置信息。这个功能可用于提供基于位置的服务,如导航、本地搜索、天气预报等。本教程将详细介绍如何在网页中实现地理定位功能。 工作原理 浏览器可以通过多种方式确定…

协作开发攻略:Git全面使用指南 — 引言

协作开发攻略:Git全面使用指南 — 引言 Git 是一种分布式版本控制系统,用于跟踪文件和目录的变更。它能帮助开发者有效管理代码版本,支持多人协作开发,方便代码合并与冲突解决,广泛应用于软件开发领域。 文中内容仅限技…

毕业设计-基于预训练语言模型与深度神经网络的Web入侵检测系统

项目技术说明 基于预训练语言模型与深度神经网络的Web入侵检测系统,通过预训练模型CodeBert分词,将分词输入给BiGRU的深度学习模型训练。通过sniff函数实时捕获http流量信息,将流量信息输入给模型进行检测,模型可以检测的类别有S…

[计算机科学#4]:二进制如何塑造数字世界(0和1的力量)

【核知坊】:释放青春想象,码动全新视野。 我们希望使用精简的信息传达知识的骨架,启发创造者开启创造之路!!! 内容摘要: 二进制是计算机世界的基石,数学是世界的…

JUC中各种锁机制的应用和原理及死锁问题定位

JUC中各种锁机制的应用和原理及死锁问题定位 在互联网大厂Java求职者的面试中,经常会被问到关于JUC(Java Util Concurrency)中的各种锁机制及其应用和原理的问题。本文通过一个故事场景来展示这些问题的实际解决方案。 第一轮提问 面试官&…

配置Ubuntu18.04中的Qt Creator为中文(图文详解)

配置Qt Creator为中文 1、前言2、先设置Ubuntu系统语言为中文3、配置Qt Creator中文环境2.1 IBus输入法(方法一)2.2、测试IBus输入法2.21IBus输入法终端中测试2.2.2IBus输入法Qt Creator中测试 2.3、Fcitx输入法(方法二)2.3.1安装…

高性能服务器配置经验指南3——安装服务器可能遇到的问题及解决方法

文章目录 1、重装系统后VScode远程连接失败问题2、XRDP连接黑屏问题1. 打开文件2. 添加配置3. 重启xrdp服务 3、VScode远程免密连接问题4、Vim编辑文件时出现不同用户冲突编辑的问题 在完成 服务器基本配置和 深度学习环境准备后,大家应该就可以正常使用服务器了&…

PyQt6基础_QThread

目录 前置 代码: 运行 正常运行 QThread运行报错 视频 前置 1 PySide6.QtCore.QThread - Qt for Python QThread官方文档 2 长时间任务可以放到QThread中执行,避免占用主线程导致界面卡顿无法操作 代码: import traceback,sys fro…

Spring Boot 应用运行指南

🚀 Spring Boot 应用运行指南 ⚙️ 使用 Maven 🔧 运行命令 $ mvn spring-boot:run✨ 启动效果 . ____ _ __ _ _/\\ / ____ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | _ | _| | _ \/ _ | \ \ \ \\\/ ___)| |_)| | | | | || (_…

jeecgboot 3.8.0 集成knife4j问题一文解决

问题描述: ​ 在cloud环境下,若应用系统配置了context-path,则无法通过网关进入后台接口管理系统 原因分析: ​ 查看请求信息发现少拼接了系统的context-path,导致无法正确请求到数据。直接使用正确的地址可以正常通过网关访问。故此确定为集成knife4j的问题。 解决办法…

【Flutter】Flutter + Unity 插件结构与通信接口封装

关联文档:【方案分享】Flutter Unity 跨平台三维渲染架构设计全解:插件封装、通信机制与热更新机制—— 支持 Android/iOS/Web 的 3D 内容嵌入与远程资源管理,助力 XR 项目落地 —— 支持 Android/iOS/Web 的 3D 内容嵌入与远程资源管理&…

推荐 1 款 9.3k stars 的全景式开源数据分析与可视化工具

Orama 是一个开源的数据分析与可视化项目,由askorama团队开发和维护。该项目旨在为用户提供一套强大而易用的工具集,帮助用户轻松处理和理解大规模数据,通过创建交互式且引人入胜的数据可视化图表,揭示隐藏在数据背后的深层次洞察…

关于windows API 的键鼠可控可测

相关函数解释 GetAsyncKeyState 是 Windows API 中的一个函数,用于判断某个虚拟键是否被按下。GetAsyncKeyState(VK_ESCAPE) 专门用于检测 Esc 键的状态。下面为你详细介绍其用法: 函数原型 cpp SHORT GetAsyncKeyState( int vKey ); 参数 vKey&a…

vs 安装完番茄助手visual assist 后 菜单栏不显示

vs 安装完番茄助手visual assist 后 菜单栏不显示 出现原因解决办法: 出现原因 vs安装完番茄助手后,不显示。主要原因是之前安装过,但是试用过期了,卸载后重新安装然后替换破解版的dll 导致的。 解决办法: 关闭vs软件…

论文导读 - 基于边缘计算、集成学习与传感器集群的便携式电子鼻系统

基于边缘计算、集成学习与传感器集群的便携式电子鼻系统 原论文地址:https://www.sciencedirect.com/science/article/abs/pii/S0925400522015684 引用此论文(GB/T 7714-2015): WANG T, WU Y, ZHANG Y, et al. Portable electr…