01. 【Linux教程】Linux 简介

简介: 01. 【Linux教程】Linux 简介

image.png

1. 初识 Linux

Linux,全称 GNU/Linux,是一套免费使用和自由传播的类 UNIX 操作系统,其内核由林纳斯·本纳第克特·托瓦兹于 1991 年第一次释出,它主要受到 MINIX 和 UNIX 思想的启发,是一个基于 POSIX 和 UNIX 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 UNIX 工具软件、应用程序和网络协议。它支持 32 位和 64 位硬件。Linux 继承了 UNIX 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux 有上百种不同的发行版,如基于社区开发的 Debian、Arch Linux,和基于商业开发的 Red Hat Enterprise Linux、SUSE、Oracle Linux 等。


2. Linux 简介

Linux 操作系统性能稳定,并且是开源的操作系统软件。它的防火墙相关的组件保证了系统的安全,且配置简单、性能高效。Linux 在很多企业网络中,追求速度和安全,它不仅仅是被网络运维人员当作服务器使用,也可以作为网络防火墙。Linux 开放源码并且没有版权,技术社区用户多等特点 ,开放源码使得用户可以自由裁剪,灵活性高,功能强大,成本低。尤其系统中内嵌网络协议栈 ,经过适当的配置就可实现路由器的功能。这些特点使得 Linux 成为开发路由交换设备的理想开发平台。


3. Linux 发展史

  • Linux 操作系统的诞生、发展和成长过程始终依赖着五个重要支柱:UNIX 操作系统、MINIX 操作系统、GNU 计划、POSIX 标准和 Internet 网络。
  • 20 世纪 80 年代,计算机硬件的性能不断提高,PC 机的市场不断扩大,UNIX、DOS、MacOS。UNIX 操作系统价格昂贵且不能在一般的 PC 机上面运行,DOS 操作系统相对来说比较简陋,且源代码被软件厂商严格保密,MacOS 是一种专门用于苹果计算机的操作系统。


  • 因此,计算机应用领域需要更加完善、强大、价格低廉和开源的操作系统。由于供教学使用的典型操作系统很少,当时荷兰一位美国人教授 AndrewS.Tanenbaum 编写了一个操作系统,名为 MINIX,为了向学生讲述操作系统内部工作原理。


  • MINIX 虽然很好,但只是一个用于教学为目的的简单操作系统,它最大的好处就是公开了源代码。全球计算机领域的学生都可以通过钻研 MINIX 源代码来了解和学习 MINIX 操作系统,其中芬兰赫尔辛基大学的学生 Linus Torvalds 就是其中一个,他在吸收了 MINIX 精华的基础上,在 1991 年写出了属于自己的操作系统 Linux,并且版本为 Linux0.01,是 Linux 时代开始的标志。他利用 UNIX 的核心,去掉了那些复杂难处理的核心程序,把它改写成适用于普通计算机的操作系统放在网络上免费供其他学习者下载。


  • 1994 年推出完整的核心 Version1.0,至此,Linux 逐渐成为功能完善、稳定的操作系统,并被广泛使用。


4. Linux 特性和优点

4.1 Linux 特性

基本思想

Linux 的基本思想有两点:第一,一切都是文件;第二,每个文件都有确定的用途。其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件。至于说 Linux 是基于 UNIX 的,很大程度上也是因为这两者的基本思想十分相近。


完全免费

Linux 是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的。正是由于这一点,来自全世界的无数程序员参与了 Linux 的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变,这让 Linux 吸收了无数程序员的精华,不断壮大。


完全兼容 POSIX1.0 标准

这使得可以在 Linux 下通过相应的模拟器运行常见的 DOS、Windows 操作系统中的软件程序。这为用户从 Windows 转到 Linux 奠定了基础。许多用户在考虑使用 Linux 时,就想到以前在 Windows 下常见的程序是否能正常运行,这一点就消除了他们的疑虑。


多用户、多任务

Linux 支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响。多任务则是现在计算机最主要的一个特点,Linux 可以使多个程序同时并独立地运行。


良好的界面

Linux 同时具有字符界面和图形界面。在字符界面用户可以通过键盘输入相应的指令来进行操作。它同时也提供了类似于 Windows 图形界面的 X-Window 系统,用户可以使用鼠标对其进行操作。在 X-Window 环境中就和在 Windows 中相似,可以说是一个 Linux 版的 Windows 操作系统。


支持多种平台

Linux 可以运行在多种硬件平台上,如具有 x86、680x0、SPARC、Alpha 等处理器的平台。此外 Linux 还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上。2001 年 1 月份发布的 Linux 2.4 版内核已经能够完全支持 Intel64 位芯片架构。同时 Linux 也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。

4.2 Linux 优点

  • Linux 由众多微内核组成,其源代码完全开源;
  • Linux 继承了 UNIX 的特性,具有非常强大的网络功能,其支持所有的因特网协议,包括 TCP/IPv4、 TCP/IPv6 和链路层拓扑程序等,并且可以利用 UNIX 的网络特性开发出新的协议栈;


  • Linux 系统工具链完整,简单操作就可以配置出合适的开发环境,可以简化开发过程,减少开发中仿真工具的障碍,使系统具有较强的移植性;


5. Linux 发行版本

由于最初 Linux 操作系统开源免费,所有的学习者都可以将 Linux 操作系统优化和拓展,所以 Linux 操作系统发展迅猛,当前发行版非常多,这里简单介绍一下六种常见的 Linux 操作系统。

5.1 Debian

Debian 计划是一个致力于创建一个自由操作系统的合作组织。我们所创建的这个操作系统名为 Debian。操作系统是使计算机运行的基本程序和工具的集合,其中最主要的部分称为内核(kernel)。内核是计算机中最重要的程序,负责一切基本的调度工作,并让您运行其他程序。Debian 系统目前采用 Linux 内核或者 FreeBSD 内核。


然而,让 Debian 支持其他内核的工作也正在进行,最主要的就是 Hurd。Hurd 是一组在微内核(例如 Mach)上运行的、提供各种不同功能的守护进程。Hurd 是由 GNU 工程所设计的自由软件。官方所创建的这个操作系统中的大部分基本工具来自于 GNU 工程;因此我们把它们命名为 GNU/Linux、GNU/kFreeBSD 和 GNU/Hurd。


这些工具同样都是自由的,当然,人们真正需要的是应用软件,也就是帮助他们完成工作的程序:从文档编辑,到电子商务,到游戏娱乐,到软件开发。Debian 带来了超过 51000 个软件包(为了能在您的机器上轻松地安装,这些软件包都已经被编译包装为一种方便的格式),一个软件包管理器(APT),以及其他帮助您在上千台计算机上管理数千个软件包的工具,过程就如安装一个应用程序那么简单。而这些全都是自由软件。这有点像一个高塔:在最底层的是内核,在内核上面的是所有的基本工具,然后是所有您在计算机上运行的软件。


最后,在这个高塔顶端的就是 Debian 把每件事情谨慎地组织和配合在一起,使得它们能够在一起和谐地运作。

5.2 RedHat

红帽在 2014 年 6 月发布了最新旗舰版企业操作系统,红帽企业 Linux 7。基于红帽企业 Linux 7 操作系统,企业可整合裸机服务器、 虚拟机、基础设施即服务(IaaS)和平台即服务(PaaS),以构建一个强大稳健的数据中心环境,满足不断变化的业务需求。红帽卫星是一个综合性解决方案,它通过配置软件分发、补丁和配置管理,以及物理、虚拟和云环境的订阅管理为红帽系统提供完整的生命周期管理,为管理构建、部署、运行和淘汰系统所需的工具提供了单独的管理控制台和方法论。



5.3 CentOs

CentOS(Community Enterprise Operating System,中文意思是社区企业操作系统)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同,在于 CentOS 完全开源。



5.4 Slackware

Slackware Linux 是由 Patrick Volkerding 开发的 GNU/Linux 发行版。与很多其他的发行版不同,它坚持 KISS(Keep It Simple Stupid) 原则。一开始,配置系统会有一些困难,但是更有经验的用户会喜欢这种方式的透明性和灵活性。 Slackware 的很多特性体现出了 KISS 原则,最为有名的例子就是不依赖图形界面的文本化系统配置,传统的服务管理方式和不解决依赖的包管理。



5.6 Ubuntu

Ubuntu 是一个以桌面应用为主的 Linux 操作系统,其名称来自非洲南部祖鲁语或豪萨语的 “ubuntu” 一词,意思是 “人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观。Ubuntu 基于 Debian 发行版和 Gnome 桌面环境,而从 11.04 版起,Ubuntu 发行版放弃了 Gnome 桌面环境,改为 Unity。从前人们认为 Linux 的难以安装、难以使用,在 Ubuntu 出现后这些都成为了历史。Ubuntu 也拥有庞大的社区力量,用户可以方便地从社区获得帮助。


Tips:本套教程演示学习使用的是 CentOs 操作系统,也有部分小节使用其他的操作系统。


6. 为什么要学习 Linux?

Linux 操作系统在服务器、云计算、大数据、嵌入式等等领域发展日益增大,几乎所有的开发、运维工程师必须都要使用和接触 Linux 操作系统,学习 Linux 操作系统基础教程将会帮助你很好的管理 Linux 服务器、项目部署、服务搭建,为你学习 Linux 高级功能打下基础。


7. 本课程的大致规划

本教程将会介绍 Linux 操作系统安装和配置、基本的命令使用、文件和目录管理、磁盘管理、权限管理等等,学完本课程,您将会对 Linux 的基本操作有了一定的理解和认识,并且能像操作 Windows 一样去操作 Linux,会为你学习更加高级的 Linux 知识打下坚实的基础。


8. 本课程的学习基础

  • 对计算机网络有基本的认识。
  • 会在指定的网址上下载软件包。
相关文章
|
2天前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
9天前
|
Ubuntu Linux C++
Win10系统上直接使用linux子系统教程(仅需五步!超简单,快速上手)
本文介绍了如何在Windows 10上安装并使用Linux子系统。首先,通过应用商店安装Windows Terminal和Linux系统(如Ubuntu)。接着,在控制面板中启用“适用于Linux的Windows子系统”并重启电脑。最后,在Windows Terminal中选择安装的Linux系统即可开始使用。文中还提供了注意事项和进一步配置的链接。
28 0
|
1月前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下文件数量是常见的需求。本文介绍了四种方法:使用 `ls` 和 `wc` 组合、`find` 命令、`tree` 命令以及编程实现(如 Python)。每种方法都附有详细说明和示例,适合不同水平的用户学习和使用。掌握这些技巧,可以有效提升系统管理和日常使用的效率。
534 6
|
1月前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
49 4
|
2月前
|
Linux Docker 容器
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
本篇博客重在讲解Centos安装docker,经博主多次在不同服务器上测试,极其的稳定,尤其是阿里的服务器,一路复制命令畅通无阻。
2219 4
Centos安装docker(linux安装docker)——超详细小白可操作手把手教程,包好用!!!
|
2月前
|
存储 数据可视化 Java
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
如何在Linux系统下部署和运行Java项目jar包,包括传输文件到Linux、使用nohup命令运行jar包、查看端口状态、杀死进程和查看项目运行状态,以及如何解决“没有主清单属性”的错误。
664 1
震惊!如何在linux下部署项目,部署/运行jar包 超详细保姆级教程!
|
2月前
|
Unix 关系型数据库 MySQL
Linux 简介
Linux 简介
62 2
Linux 简介
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
470 3
|
2月前
|
Linux C语言 C++
vsCode远程执行c和c++代码并操控linux服务器完整教程
这篇文章提供了一个完整的教程,介绍如何在Visual Studio Code中配置和使用插件来远程执行C和C++代码,并操控Linux服务器,包括安装VSCode、安装插件、配置插件、配置编译工具、升级glibc和编写代码进行调试的步骤。
391 0
vsCode远程执行c和c++代码并操控linux服务器完整教程
|
2月前
|
大数据 Linux 开发工具
【Linux】命令简介------迅速掌握Linux命令
【Linux】命令简介------迅速掌握Linux命令