Linux第一节课——初识Linux

目录

前言:

1.Linux的历史

2.Linux的特点与优势

3.认识Linux的不同版本

一、主要发行版

二、其他发行版

三、选择建议

4. Linux的应用场景

5.Linux的环境安装


前言:

    随着我们c语言和c++的深入学习,另一门课程——Linux也要开始新的篇章了,我们学习的c和c++语言,很多时候在实际开发中,都偏向于后端开发方向,而我们今天要了解的Linux是一个在生态上,环境上都比Windows更加适合后端开发的操作系统。Linux在服务器,云计算和嵌入式操作系统等领域都有广泛的应用,是许多开源软件和项目的基础平台。

1.Linux的历史

   Linux的历史可以概括为以下几点:

  1. 起源:Linux起源于1991年,由芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)开发。最初,他只是想学习操作系统内核的开发,并为自己的个人计算机编写一个操作系统。他将这个内核发布在Internet上,并开放源代码,吸引了全球各地的程序员参与开发。

  2. 早期发展:随着全球程序员的贡献,Linux内核变得更加完善和稳定。这个内核最终被命名为Linux(Linus和Unix的组合),并形成了一个开放、自由和协作的社区。社区成员通过互联网交流、分享代码和经验,共同推动了Linux的快速发展。

  3. 重要事件

    • 1992年,Linux的第一个发行版Slackware发布,这是由帕特里克·沃尔夫创建的。
    • 1993年,Linux的第一个商业公司Softlanding Linux System成立,发布了基于Slackware的商业发行版。同年,Debian GNU/Linux项目开始,这是第一个完全由志愿者开发的Linux发行版。
    • 1995年,Red Hat公司成立,并发布了基于Red Hat Linux的商业发行版,成为Linux商业领域的领先者之一。同年,Linux也开始进入政府领域,德国慕尼黑市政府成为第一个采用Linux作为主要操作系统的政府机构。
  4. 广泛应用:随着时间的推移,Linux在商业、政府、教育等领域的应用越来越广泛。它成为服务器、云计算和嵌入式系统的重要选择之一。许多公司开始看到Linux的商业潜力,并开始投入开发和支持Linux。

  5. 开源特性:Linux的开源特性是其成功的重要原因之一。任何人都可以自由地获取Linux的源代码、修改代码和重新发布。这种开放和协作的模式促进了Linux的快速发展和广泛应用。

  6. 现代发展:近年来,Linux在云计算、大数据、人工智能等领域的应用越来越广泛。许多云计算平台如Amazon Web Services、Microsoft Azure、Google Cloud Platform等都基于Linux。同时,Linux也是许多开源软件和项目的基础平台之一。

综上所述,Linux的历史是一个开放、自由和协作的历史。它从一个个人项目发展成为世界上最流行的操作系统之一,并在多个领域发挥着重要作用。

Linux之父——林纳斯·托瓦兹(Linus Torvalds)

2.Linux的特点与优势

1、特点与优势

(1)开源免费:Linux遵循GPL(GNU General Public License)协议,源代码公开,任何人都可以自由获取、修改和分发。在开源模式下,软件的源代码是开放的,这意味着开发者可以查看软件的内部实现,理解其工作原理,并根据自己的需求进行定制和修改。同时,开源软件也鼓励社区的合作与贡献,开发者可以将自己的修改和改进回馈给社区,促进软件的共同发展和完善。

为什么要开源

答:

开源的主要原因包括:

a.促进技术创新:开源允许开发者共享代码,加速新技术和新功能的研发。

b.提高软件质量:开源项目通常经过众多开发者的审查和测试,有助于发现和修复漏洞,提高软件的安全性和稳定性。

c.降低开发成本:开源软件可以免费获取和使用,降低了企业和个人的开发成本。

d.增强社区合作:开源项目鼓励开发者之间的合作与交流,共同推动软件的进步和发展。

开源和闭源项目对比

     开源项目:优点包括透明度高、协作性强、成本低、自由度大、安全性可审查等;缺点可能包括技术支持不如商业软件稳定、质量参差不齐、可能存在版权和许可争议等。

    闭源项目:优点包括保护商业利益和技术安全、提供稳定的技术支持、质量可控等;缺点包括成本高、灵活性差、透明度低、可能限制软件的发展和改进等。

(2)多用户、多任务:支持多个用户同时使用系统,并能高效管理多个任务。

(3)网络功能强大:内置TCP/IP协议栈,支持所有基于Internet的通用协议,适用于Web服务器、邮件服务器等场景。

(4)高度稳定性与安全性:Linux在稳定性方面表现出众,能长时间运行而不崩溃;同时提供多层次的安全性保护,如文件访问控制、防火墙等。

(4)良好的硬件兼容性:支持多种硬件平台,包括Intel、AMD等主流处理器架构。

3.认识Linux的不同版本

认识Linux的不同版本,可以从以下几个方面进行了解:

一、主要发行版

Linux拥有众多发行版,每个发行版都有其独特的特点和适用场景。以下是一些主要发行版:

  1. Ubuntu

    • 是最受欢迎且广泛使用的Linux发行版之一。
    • 注重易用性和用户友好性,提供了简单的图形界面和易于安装的软件管理工具。
    • 有长期支持(LTS)版本,适合用于服务器和企业级环境。
  2. CentOS

    • 基于Red Hat Enterprise Linux(RHEL)源代码的克隆版本。
    • 提供与RHEL相同的功能和兼容性,并提供长期支持和安全更新。
    • 主要面向需要稳定性和企业级支持的用户,适用于服务器和大型企业部署。
  3. Debian

    • 是一个稳定且具有广泛社区支持的发行版。
    • 注重软件的稳定性和安全性,并采用了APT(Advanced Package Tool)作为软件包管理工具。
    • Debian是许多其他发行版的基础,如Ubuntu、Linux Mint等。
  4. Fedora

    • 由红帽公司支持的一个社区驱动的发行版。
    • 注重引入最新的功能和特性,采用RPM软件包管理系统。
    • 开发重点在于为开发者提供创新平台和尝试新技术。
  5. openSUSE

    • 一个由社区驱动的发行版,注重可用性和易用性。
    • 提供了Leap和Tumbleweed两个主要版本,前者固定和稳定,后者滚动更新。
  6. Red Hat Enterprise Linux (RHEL)

    • 红帽公司的核心产品,是一个经过测试和认证的商业版Linux操作系统。
    • 被广泛应用于企业级服务器环境,提供稳定性、安全性和高性能。

二、其他发行版

除了上述主要发行版外,还有许多其他Linux发行版,如Arch Linux(面向技术用户)、Gentoo(高度可定制)、Linux Mint(简单易用,带有自定义界面)等。每个版本都有其独特的目标受众和特点。

三、选择建议

用户可以根据自己的需求、技术水平和使用场景来选择合适的Linux版本。例如,对于需要稳定性和企业级支持的用户,可以选择CentOS或RHEL;对于注重易用性和用户友好性的用户,Ubuntu和Linux Mint可能是更好的选择。

总之,Linux的不同版本为用户提供了多样化的选择,以满足各种需求和偏好。

4. Linux的应用场景

Linux有非常广泛的应用场景,其中在以下具体场景中表现最为出色:

  1. 服务器运维

    • Web服务器:如Apache、Nginx等著名的Web服务器软件都是基于Linux系统开发的,Linux以其高度稳定性和安全性,成为许多大型网站和企业首选的Web服务器操作系统。
    • 数据库服务器:支持MySQL、PostgreSQL等数据库管理系统,以及企业级数据库如Oracle、IBM DB2等,提供稳定的数据存储和管理服务。
    • 邮件服务器:如Sendmail、Postfix等邮件服务器软件在Linux上运行稳定,满足企业和政府部门的邮件服务需求。
  2. 云计算与大数据

    • 云计算平台:Linux是许多云服务提供商如Amazon Web Services (AWS)、Google Cloud Platform (GCP) 和 Microsoft Azure 的基础设施操作系统。
    • 大数据处理:支持Hadoop、Spark、Hive、HBase等大数据框架和工具,提供高效的数据处理和分析能力。
  3. 嵌入式系统

    • 智能设备:在智能手机、平板电脑、网络路由器、物联网设备、机顶盒和汽车嵌入式系统等设备上广泛应用,提供灵活、可定制的嵌入式解决方案。
    • 工业控制:由于其高可靠性和稳定性,Linux也被用于工业控制系统中,确保生产流程的连续性和安全性。
  4. 超级计算机与高性能计算

    • 超级计算机操作系统:许多世界顶级的超级计算机都使用Linux作为操作系统,支持大规模并行计算和高性能数据处理。
  5. 科研与教育

    • 科研平台:Linux提供强大的计算能力和丰富的科学计算工具,成为科研工作的理想平台。
    • 教学与研究:许多学校和研究机构使用Linux进行教学和研究活动,提供稳定、安全的学习环境。
  6. 开发与测试

    • 开发环境:Linux提供强大的命令行界面和丰富的开发工具集,是软件开发和测试的理想平台。
    • 开源社区:Linux上的开源社区为开发者提供了大量的库和框架,促进软件产品的快速构建和迭代。

    综上所述,Linux以其高度的稳定性、安全性、可定制性和开源特性,在服务器运维、云计算与大数据、嵌入式系统、超级计算机与高性能计算、科研与教育以及开发与测试等多个场景中表现最为出色。

5.搭建Linux环境

Linux 环境的搭建方式

主要有三种
1. 直接安装在物理机上. 但是由于 Linux 桌面使用起来非常不友好, 不推荐.
2. 使用虚拟机软件, 将 Linux 搭建在虚拟机上. 但是由于当前的虚拟机软件(如 VMWare 之类的)存在一些 bug , 会
导致环境上出现各种莫名其妙的问题, 比较折腾.
3. 使用云服务器, 可以直接在 腾讯云, 阿里云或华为云 等服务器厂商处直接购买一个云服务器.

如腾讯云阿里云等为在校学生提供了优惠, 只要通过学生认证, 最低可以 10 块钱一个月. 还是非常划算的.
甚至同学们可以 4 , 5 个人共用一台服务器, 平均下来一个人一个月 2 块钱.

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

购买云服务器

  我们以腾讯云为例, 其他的服务器厂商也是类似.
1. 进入官方网站 https://cloud.tencent.com/act/campus (直接在百度上搜 "腾讯云校园计划")
2. 登陆网站(可以使用 qq 或者 微信 登陆)

3. 右侧的操作系统选择 CentOS 7.6 64位. 购买时长根据需要选择(建议1年), 点击立即购买即可. 这个步骤需要实名认证, 否则会提示 :

点击立即认证, 按照系统提示, 完成实名认证即可(认证速度很快).

4. 购买完成后, 可以在控制台中找到自己买的服务器. 点进去能够看到服务器的 IP 地址.

蓝色方框为公网 ip 地址, 稍后我们就会使用这个 ip 登陆服务器.

5. 设置 root 密码: 勾选服务器, 点击重置密码(这个环节可能需要手机短信验证). root 密码建议设置的稍微复杂一些, 否则容易被黑客入侵. 

小结:
在这个环节我们最重要的是得到三个信息:
1. 服务器的外网 IP
2. 服务器的管理员账户 (固定为 root)
3. 管理员账户密码(在腾讯云网站上设置的)
通过这三个信息就可以使用 XShell 远程登陆了.

6.使用 XShell 远程登陆到 Linux 

关于 Linux 桌面

很多同学的 Linux 启动进入图形化的桌面. 这个东西大家以后就可以忘记了. 以后的工作中没有机会使用图形界面.
思考: 为什么不使用图形界面?

下载安装 XShell

XShell 是一个远程终端软件. 下载官网
https://www.netsarang.com/products/xsh_overview.html
下载安装的时候选择 "home/school" 则为免费版本.

查看 Linux 主机 ip

参考上面的 "购买云服务器" 部分

使用 XShell 登陆主机

在 XShell 终端下敲

ssh [ip]

p 为刚才看到的 ifconfig 结果.
如果网络畅通, 将会提示输入用户名密码. 输入即可正确登陆
备注: 这里的用户名密码都是在最初购买服务器的时候设置的用户名密码

XShell 下的复制粘贴 

复制: ctrl + insert (有些同学的 insert 需要配合 fn 来按)
粘贴: shift + insert
ctrl + c / ctrl + v 是不行的.

本章完。