unix/linux source 命令,其发展历程详细时间线、由来、历史背景

追本溯源,探究技术的历史背景和发展脉络,能够帮助我们更深刻地理解其设计哲学和存在的意义。source 命令(或者说它的前身和等效形式)的历史,与 Unix Shell 本身的发展紧密相连。

让我们一起踏上这段追溯之旅,探索 source 命令的由来和发展历程。

早期 Unix Shell 与命令执行 (20世纪70年代初 - 中期)

在 Unix 的黎明时期,第一个重要的 Shell 是 Thompson Shell (sh),由 Ken Thompson 在贝尔实验室开发,大约在 1971 年左右。

  • 基本的命令执行: Thompson Shell 已经具备了执行外部命令(通过 forkexec 系统调用创建新进程)和内置命令的能力。
  • 脚本执行: 它可以执行包含一系列命令的脚本文件。然而,此时的脚本执行方式,主要是通过创建一个新的 Shell 进程来解释和运行脚本中的命令。这意味着脚本对环境的修改(如变量设置)在脚本结束后就会丢失,无法影响父 Shell。
  • “.” 命令的雏形: 此时,Thompson Shell 还没有明确的 source 命令。但是,引入命令来执行脚本内命令并在当前上下文中生效的概念,其需求已经开始显现。例如,登录时需要执行一些初始化命令来设置环境。

Bourne Shell (sh) 的诞生与 “.” 命令 (1977 - 1979年)

真正的转折点来自于 Bourne Shell (sh),由 Stephen Bourne 在贝尔实验室开发,并在 Unix Version 7 (大约 1979 年) 中作为默认 Shell 发布。Bourne Shell 带来了许多至今仍在使用的重要特性,其中就包括了我们今天讨论的主角—— . (点) 命令

  • source 的前身/等效形式:. (点命令)
    • 时间点: 大约在 1977-1979年 间,随着 Bourne Shell 的开发和完善,. 命令被引入。
    • 由来与历史背景:

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

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

相关文章

720全景展示:VR全景的技术原理及应用

VR720全景展示:技术原理及应用探索 720全景技术,作为当前全球范围内迅速崛起流行的视觉新技术,为用户带来了全新的真实现场感和交互式的体验。凭借全方位、无死角的视觉展示特性,在VR(虚拟现实)领域中得到…

Python爬虫实战:研究Requests-HTML库相关技术

1. 引言 1.1 研究背景与意义 随着互联网数据量的爆炸式增长,网络爬虫已成为数据获取的重要工具,广泛应用于市场调研、舆情分析、学术研究等领域。传统爬虫技术在面对现代 JavaScript 动态渲染网页时面临挑战,而 Requests-HTML 库通过集成浏览器渲染引擎,为解决这一问题提…

VectorStore 组件深入学习与检索方法

考虑到目前市面上的向量数据库众多,每个数据库的操作方式也无统一标准,但是仍然存在着一些公共特征,LangChain 基于这些通用的特征封装了 VectorStore 基类,在这个基类下,可以将方法划分成 6 种: 相似性搜…

【PyQt5】从零开始的PyQt5 - QLabel篇

从零开始的PyQt5 - QLabel篇 引言一、简述二、例程2.1 显示到QWidget窗口上2.2 重新设置Label大小和对齐方式2.3 添加内容,设置边框2.4 显示富文本 三、参考 引言 QLabel主要用于显示文本或图像,不提供用户交互功能。本文主要简述PyQt5中的QLabel以及展…

论文略读:Uncertainty-Aware Graph Structure Learning

WWW 2025 1 intro 传统GNN忽视了图结构自身存在的缺陷: 图结构常常会出现错误边和缺失边等数据问题,从而限制模型的效果 —>为了解决上述问题,产生了图结构学习算法(GSL) 目的在于优化结点连接和边权重来生成新的邻接矩阵主流…

HCIE-STP复习

文章目录 STP STP 🏡作者主页:点击! 🤖Datacom专栏:点击! ⏰️创作时间:2025年05月31日13点17STP通过三要素选举消除环路: 根桥(BID最小,建议设优先级为0&…

leetcode17.电话号码的字母组合:字符串映射与回溯的巧妙联动

一、题目深度解析与字符映射逻辑 题目描述 给定一个仅包含数字 2-9 的字符串 digits,返回所有它能表示的字母组合。数字与字母的映射关系如下(与电话按键相同): 2: "abc", 3: "def", 4: "ghi", …

【Unity】模型渐变技术 BlendShapes变形

模型fbx拖拽到场景并赋予脚本上SkinnedMeshRenderer参数 按下空格即可演示渐变 可去到3DsMax 或 Blender等软件制作 这种带有BlendShapes的模型 (Sphere002)是另一个模型,3DsMax叫变形器。 可参考:【技术美术百人计划】美术 3.5 BlendShape基础_哔哩哔哩…

CTFHub-RCE 命令注入-无过滤

观察源代码 判断是Windows还是Linux 源代码中有 ping -c 4 说明是Linux 查看有哪些文件 127.0.0.1|ls 发现除了index.php文件外,还存在一个可疑的文件 打开flag文件 我们尝试打开这个文件 127.0.0.1|cat 19492844826916.php 可是发现 文本内容显示不出来&…

DrissionPage ChromiumPage模式:浏览器自动化的高效利器

引言 在Python自动化领域,Selenium与Requests是开发者耳熟能详的工具,但二者在功能侧重上存在明显割裂。DrissionPage的出现打破了这一局面,其创新的ChromiumPage模式通过整合浏览器自动化与HTTP请求能力,为网页操作提供了全新解…

uniapp分包配置,uniapp设置subPackages

在使用uniapp开发过程中,由于项目比较大,无法直接上传,需要分包后才可以上传。 步骤: 1、在pages同级目录下创建分包的目录(pages_second),把要分包的文件放到该目录下; 2、在pag…

零基础一站式端游内存辅助编写教程(无密)

目录如下: 基础理论篇 内存基础概念(如内存地址、数据类型、读写原理)端游内存机制简介(游戏进程与内存分配) 工具与环境搭建 常用内存分析工具介绍(如 Cheat Engine、x64dbg 等)开发环境配…

汽车售后诊断数据流详细分析

一、引言 随着汽车电子化程度的不断提升,电控系统已成为车辆运行的核心支撑。据罗兰贝格 2025 年智能汽车白皮书数据显示,中央计算 区域控制架构(Zonal EEA)的普及率已突破 58%,推动整车线束成本下降 41%12。与此同时…

智能守护电网安全:探秘输电线路测温装置的科技力量

在现代电力网络的庞大版图中,输电线路如同一条条 “电力血管”,日夜不息地输送着能量。然而,随着电网负荷不断增加,长期暴露在户外的线路,其线夹与导线在电流热效应影响下,极易出现温度异常。每年因线路过热…

设计模式——单例设计模式(创建型)

摘要 本文详细介绍了单例设计模式,包括其定义、结构、实现方法及适用场景。单例模式是一种创建型设计模式,确保一个类只有一个实例并提供全局访问点。其要点包括唯一性、私有构造函数、全局访问点和线程安全。文章还展示了单例设计模式的类图和时序图&a…

Lyra学习笔记 Experience流程梳理

目录 前言1 创建2 加载3 Deactivate4 总结与图示 前言 这篇主要将视角放在Experience的流程,所以不会涉及一些更深的东西 之后ULyraExperienceManagerComponent简称为EMC 1 创建 完事开头难,首先找到了管理Experience的组件,那么它的初始化…

Ubuntu下编译mininim游戏全攻略

目录 一、安装mininim 软件所依赖的库(重点是allegro游戏引擎库)二、编译mininim 软件三、将mininim打包给另一个Ubuntu系统使用四、安卓手机运行mininim 一、安装mininim 软件所依赖的库(重点是allegro游戏引擎库) 1. 用apt-get…

SMT贴片制造流程关键环节解析

内容概要 现代电子制造领域中,SMT(表面贴装技术)作为核心工艺,其流程的精密性与稳定性直接决定产品性能与生产良率。本文以SMT贴片制造流程为主线,系统解析焊膏印刷、元器件贴装、回流焊接三大核心工艺的技术要点。其…

HTTP/2与HTTP/3特性详解:为你的Nginx/Apache服务器开启下一代Web协议

更多服务器知识,尽在hostol.com 嘿,各位站长和服务器管理员朋友们!咱们天天跟网站打交道,都希望自己的网站能像火箭一样快,用户体验“嗖嗖”的。但你知道吗?除了服务器硬件配置、代码优化、CDN加速这些“常…

pytest 常见问题解答 (FAQ)

pytest 常见问题解答 (FAQ) 1. 基础问题 Q1: 如何让 pytest 发现我的测试文件? 测试文件命名需符合 test_*.py 或 *_test.py 模式测试函数/方法需以 test_ 开头测试类需以 Test 开头(且不能有__init__方法) Q2: 如何运行特定测试? pytest path/to/t…