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

news/2025/10/6 13:05:38/文章来源:https://www.cnblogs.com/yxysuanfa/p/19127513

追本溯源,探究技术的历史背景和发展脉络,能够帮助我们更深刻地理解其设计哲学和存在的意义。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.mzph.cn/news/929340.shtml

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

相关文章

基于AXI模块的视频流传输(硬件连接篇)

初来乍到,先自我介绍,我是一所双非学校集成电路专业的学生,目标是成为一个合格的FPGA,数字ic设计,验证工程师,目前大三,此篇章仅以记录我打FPGA创新创业大赛过程的一些学习经验,是基于zynq7020开发板的开发项目…

四、函数调用具备单个参数之Double类型-mmword,movsd,mulsd,addsd指令,总结汇编的数据类型

四、函数调用具备单个参数之Double类型-mmword,movsd,mulsd,addsd指令,总结汇编的数据类型2025-10-06 12:55 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !impo…

商丘网站建设的公司哪家好企业所得税什么时候交

#include指令和头文件 例如#include <stdio.h>&#xff0c;我们经常看到C文件最上面会有类似这样的语句&#xff0c;它的作用相当于把stdio.h文件中的所有内容都输入该行所在的位置。实际上&#xff0c;这是一种“拷贝-粘贴”的操作。 #include这行代码是一条C预处理器…

深圳网站建设 利科技有限公司购物网站建设服务

如果对于二叉搜索树不是太清楚&#xff0c;为什么要使用二叉搜索树&#xff1f;作者推荐&#xff1a;二叉搜索树的初步认识_加瓦不加班的博客-CSDN博客 定义节点 static class BSTNode {int key; // 若希望任意类型作为 key, 则后续可以将其设计为 Comparable 接口Object val…

[GDOUCTF 2023]泄露的伪装

打开题目,根据题目提示扫描题目所在目录扫描完成后访问扫描到的两个文件 在压缩包文件中看到php文件直接访问php文件后,看到源码使用写入协议 ?cxk=data://text/plain;base64,Y3RybA==得到flag

仿射密码

前言 在密码学的发展历程中,从简单的凯撒密码到更具安全性的加密方式,仿射密码是重要的进阶。它基于数论知识,通过线性变换为信息加密,既保留了替换加密的简洁,又大幅提升了保密性,是理解现代加密算法的关键基础…

写作网站有哪些深圳建设工程交易平台

阻塞I/O Socket设置为阻塞模式&#xff0c;当socket不能立即完成I/O操作时&#xff0c;进程或线程进入等待状态&#xff0c;直到操作完成。如下图&#xff1a; 这种模型非常经典&#xff0c;也被广泛使用&#xff0c;优势在于非常简单&#xff0c;等待的过程中占用的系统资源微…

网站建设从入门pdfwordpress文章出问题

什么是二进制&#xff1f; 数字电路 中 只有 高电平 和低电平 就是 1 和0 进位规则是“逢二进一”&#xff0c;借位规则是“借一当二”。 二进制、八进制 、十进制、十六进制 二进制 有两个数来表示 &#xff1a; 0、1 八进制 有8个数来表示 &#xff1a; 0、1、2、3、4、…

压铸东莞网站建设中国站长之家

结合单元测试框架pytest数据驱动模型allure 目录 api&#xff1a; 存储测试接口 conftest.py :设置前置操作 目前前置操作&#xff1a;1、获取token并传入headers&#xff0c;2、获取命令行参数给到环境变量,指定运行环境 commmon&#xff1a;存储封装的公共方法 connect_mysq…

AtCoder Regular Contest 207 (Div.1) 游记

赛时一个半小时没出题,赛后再来三个小时终于搞出 A。省流 赛时一个半小时没出题,赛后再来三个小时终于搞出 A。10.5 内含剧透,请vp后再来。 不是题解!!!!!!! 赛前 本来发现要补的东西还剩很多,结果当天上午…

kubeadm续约k8s 1.23.14所有证书

[root@zy-nph-skg-fat-k8s-master01 kubernetes-1.23.14-0]# kubeadm certs renew all [renew] Reading configuration from the cluster... [renew] FYI: You can look at this config file with kubectl -n kube-sys…

Linux或者Windows下PHP版本查看便捷的方法总结

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

详细介绍:云原生时代 Kafka 深度实践:05性能调优与场景实战

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

深入解析:AI破局:饿了么如何搅动即时零售江湖

深入解析:AI破局:饿了么如何搅动即时零售江湖pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

从零开始学Flink:数据输出的终极指南

本文详细介绍了Flink数据输出(Sink)的核心概念、各种连接器的使用方法、配置选项及可靠性保证机制。基于Flink 1.20.1的DataStream API,通过丰富的代码示例展示了如何将处理后的数据输出到Kafka、Elasticsearch、文件…

asp 企业网站dw制作一个手机网站模板下载地址

初识RPC RPC VS REST HTTP Dubbo Dubbo 特性&#xff1a; 基于接口动态代理的远程方法调用 Dubbo对开发者屏蔽了底层的调用细节&#xff0c;在实际代码中调用远程服务就像调用一个本地接口类一样方便。这个功能和Fegin很类似&#xff0c;但是Dubbo用起来比Fegin还要简单很多&a…

六盘水网站建设求职简历杭州公司网站建设套餐

FPGA-结合协议时序实现UART收发器&#xff08;四&#xff09;&#xff1a;串口驱动模块uart_drive、例化uart_rx、uart_tx 串口驱动模块uart_drive、例化uart_rx、uart_tx&#xff0c;功能实现 文章目录 FPGA-结合协议时序实现UART收发器&#xff08;四&#xff09;&#xff1…

数据编织平台实现AI代理自助数据访问

数据管理初创公司发布即时数据编织平台重大更新,支持AI代理自助数据访问。平台采用自然语言处理与自动化数据准备技术,无需ETL流程即可跨数百个数据源提供统一访问,并配备上下文引擎和对话式AI助手。数据编织初创公…

高水平的锦州网站建设厦门网站设计大概多少钱

目录 一、简介 二、BeanFactory 三、FactoryBean 四、区别 五、使用场景 总结 一、简介 在Spring框架中&#xff0c;IOC&#xff08;Inversion of Control&#xff09;容器是一个核心组件&#xff0c;它负责管理和配置Java对象及其依赖关系&#xff0c;实现了控制反转&a…

广州设计公司网站磁县邯郸网站建设

是将若干个学习器(分类器&回归器)组合之后产生一个新学习器。弱分类器(weak learner)指那些分类准确率只稍微好于随机猜测的分类器(errorrate <。 集成算法的成功在于保证弱分类器的多样性(Diversity)。而且集成不稳定的算法也能够得到一个比较明显的性能提升。 常见的…