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
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/83167.shtml
英文地址,請注明出處:http://en.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…