Linux网络操作系统知识归集


编辑 GUID:38f0adeb-3bff-428d-861d-6c11fdc2d886
编辑 UTC 日期和时间: 2025-07-27T02:07:39Z
编辑 UNIX 时间戳:1753582064


Linux网络操作系统知识归集


项目1 Linux操作系统的安装与使用


1.Linux操作系统的起源与发展
• Linux操作系统的诞生与unix操作系统息息相关
• Linux系统起源与unix,unix操作系统是1969年由肯·汤普森和丹尼斯·里奇两位博士在贝尔实验室开发的一款操作系统
• 1991年10月5日,诞生了Linux内核,并诞生了第一个Linux操作系统,由林纳斯·托瓦兹和其他开发人员完成

GitHub代码块预览示例

GNU与GPL分别是什么?


# GNU 和 GPL 核心概念解析

1. GNU

全称:GNU’s Not Unix(递归缩写,意为 “GNU 不是 Unix”)

定义:GNU 是一个由理查德・斯托曼(Richard Stallman)于 1983 年发起的自由软件项目,目标是开发一个完全自由、与 UNIX 兼容的操作系统(即 GNU 操作系统),确保用户对软件拥有使用、修改、复制和分发的自由。

核心理念

  • 倡导 “自由软件”(Free Software),这里的 “自由” 指用户拥有四大自由:
    • 自由运行软件(无论目的);
    • 自由研究软件工作原理并修改它(获得源代码是前提);
    • 自由再分发副本(帮助他人);
    • 自由改进软件并公开发布改进版(让整个社区受益)。

主要成果
GNU 项目开发了大量自由软件工具,构成了操作系统的核心组件,例如:

  • 编译器(GCC)
  • 编辑器(Emacs)
  • shell(Bash)
  • 文件工具(coreutils)等。

这些工具后来与 Linux 内核结合,形成了我们通常所说的 “Linux 操作系统”(严格来说应称为 “GNU/Linux 操作系统”,因为内核是 Linux,其他大部分工具来自 GNU)。

2. GPL

全称:GNU General Public License(GNU 通用公共许可证)

定义:GPL 是由 GNU 项目制定的软件许可证协议,旨在保护自由软件的 “自由”,确保软件及其修改版始终保持开源和自由可分发。

核心条款

  • copyleft(著佐权):与传统版权(copyright)限制传播不同,copyleft 要求软件的修改版或衍生作品必须以相同的 GPL 许可证发布,且必须公开源代码,确保自由的 “传染性”。
  • 允许商业使用、修改和分发,但禁止将软件闭源或限制他人的自由权利。
  • 例如,若你修改了一个 GPL 许可的程序并发布,必须同时提供修改后的源代码,且衍生作品也需遵循 GPL。

版本

  • 常见版本包括 GPLv2(1991 年)和 GPLv3(2007 年,增加了对数字版权管理、专利授权等问题的约束)。

GNU 与 GPL 的关系

GPL 是 GNU 项目为实现其自由软件理念而设计的核心许可证。GNU 项目开发的软件几乎都采用 GPL 许可,通过法律条款确保软件的自由属性不被剥夺。简单来说:

  • GNU 是项目和理念,目标是创建自由操作系统;
  • GPL 是法律工具,保障这一理念的实现。

二者共同推动了自由软件社区的发展,也是 Linux 等开源系统能够广泛传播的重要基础(Linux 内核采用 GPLv2 许可)。



2.Linux操作系统的发行版本
• Linux操作系统的发行版本主要分为两类,分别是由商业公司维护的商业版本,代表版本为(Red Hat Enterprise Linux),另一类是由社区维护的社区版本,代表版本为debian
• 由社区维护的分支版本,常见的有Fedora、Centos、Debian、Unbuntu、Gentoo


3.Linux操作系统的特点
• 完全免费、完全兼容POXIX 1.0标准、支持多用户多任务、良好的界面、强大的网络功能、安全稳定、支持多平台


4.Linux操作系统的应用领域
• 服务器领域、嵌入式应用领域、个人桌面领域


5.Linux图形用户界面
• 常用的图形用户界面分为KDE和GNOME两种


5.Linux的shell
• 常见的shell界面有bsh、csh、ksh、bash,以下是详细介绍

BSH (Bourne Shell)

  • 起源:由Stephen Bourne于1977年在贝尔实验室开发,是UNIX系统上最早流行的shell之一。
  • 特点
    • 语法简洁:设计初衷是提供高效脚本执行,语法较为基础,适合简单任务自动化。
    • 变量处理:变量无需类型声明,通过$符号引用(如$VAR)。
    • 控制结构:支持基本的条件判断(if-then-else)和循环(forwhile)。
    • 兼容性:许多现代shell(如Bash)保留了对Bourne语法的兼容。
  • 局限性
    • 交互性差:缺乏命令历史、命令补全等人性化功能。
    • 数组支持有限:仅支持简单变量,无内置数组类型。
  • 典型应用场景:在早期UNIX系统中广泛使用,现常用于需要最小依赖的脚本(如系统启动脚本)。

CSH (C Shell)

  • 起源:由Bill Joy于1978年开发,语法类似C语言,故得名。
  • 特点
    • C风格语法:支持foreachif-else等结构,更接近编程语言的语法习惯。
    • 交互式功能:引入命令历史(history命令)、别名(alias)等增强交互体验的功能。
    • 作业控制:支持后台任务管理(如&jobsfgbg命令)。
  • 局限性
    • 脚本编程弱:变量处理和流程控制不如Bourne系列灵活,不适合复杂脚本。
    • 兼容性问题:语法与Bourne Shell差异较大,脚本移植性差。
  • 典型应用场景:曾广泛用于BSD系统,现多用于交互式会话(如快速命令测试)。

KSH (Korn Shell)

  • 起源:由David Korn于1983年开发,融合了Bourne Shell的功能和C Shell的交互特性。
  • 特点
    • 功能增强:支持数组、关联数组、函数、正则表达式等高级特性。
    • 脚本效率:执行速度快,适合高性能计算和复杂脚本。
    • POSIX兼容:严格遵循POSIX标准,脚本可移植性强。
    • 交互功能:集成命令历史、命令补全、行编辑等功能。
  • 版本分支
    • ksh88:最初版本,强调兼容性。
    • ksh93:添加更多高级特性(如浮点运算)。
    • pdksh:开源实现,用于许多UNIX和Linux发行版。
  • 典型应用场景:企业级脚本开发、需要高性能的系统工具。

BASH (Bourne Again SHell)

  • 起源:由Brian Fox于1989年为GNU项目开发,作为Bourne Shell的替代品。
  • 特点
    • 兼容性强:完全兼容Bourne Shell语法,支持大多数Korn Shell特性。
    • 交互性优化:提供高级命令补全、命令历史搜索(如Ctrl+R)、语法高亮等。
    • 脚本功能:支持函数、数组、数学运算、正则表达式匹配等。
    • 环境定制:通过.bashrc.bash_profile实现个性化配置。
  • 版本演进:从Bash 1.0到最新的Bash 5.x,不断添加新功能(如mapfilereadarray)。
  • 典型应用场景:几乎所有Linux发行版的默认shell,广泛用于日常交互和脚本编程。

对比总结

特性 BSH CSH KSH BASH
语法兼容性 基础Bourne语法 C语言风格 兼容Bourne+扩展 兼容Bourne+KSH
命令历史 ✅(更强大)
数组支持 有限支持 ✅(多维数组) ✅(一维数组)
函数支持 有限
POSIX兼容性 部分支持
默认系统 早期UNIX BSD系统 Solaris、AIX Linux、macOS
脚本性能 高效 中等 高效 高效
学习难度 中等(C语法) 高(功能复杂) 中等(功能丰富)

选择建议

  • 初学者:Bash(易用性和社区支持最佳)。
  • 脚本开发:Bash或KSH(功能全面,兼容性好)。
  • BSD系统用户:C Shell(传统选择)。
  • 高性能需求:KSH或Bash(避免C Shell)。


• 博客评论系统使用的是GitHub的issues,用户评论只需要登录你的GitHub账号即可评论

• 博客文章,可以直接在评论区进行相关的评论

• 博客文章,如果需要进一步交流讨论的,可以加入Telegram频道以及Telegram群组



Telegram群组[点击下方链接即可跳转Telegram群组页面]


网络安全技术栈交流群


Telegram频道[点击下方链接即可跳转Telegram频道页面]


网络安全技术栈社区


文章Bug反馈


文章Bug反馈


• 对文章提出Bug可以点击上方链接进行Bug反馈的直达,如果不会参照Bug反馈格式例子自己编写Markdown代码的话,可以复制下面提供的代码进行Bug的提交,只有在按照Bug反馈格式进行提交的Bug才会进行处理,否则不处理
GitHub代码块预览示例

Bug反馈例子 Markdown 源码


|Bug名称|Bug链接指向|Bug严重性|Bug是否已修复|
|-|-|-|-|
|-|-|-|-|
    

文章作者: 落日与晚风
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 落日与晚风 !