当前位置: 首页 > article >正文

Linux source命令详解与应用场景解析

说得好这是一个非常核心且常见的Linux/Unix命令。简单直接的回答是不source命令远不止是加载环境变量虽然这是它最常用的场景之一。它的核心功能是在当前Shell环境中读取并执行指定文件中的命令。让我们来深入分解一下核心原理打破子Shell的隔离要理解source 必须先理解当你普通地运行一个脚本时发生了什么普通执行脚本例如./my_script.sh或bash my_script.sh当前Shell你的终端窗口会启动一个新的子Shell进程。这个子Shell会去执行脚本文件里的所有命令。执行完毕后子Shell进程退出。在子Shell中对环境做的任何改变比如使用export设置的环境变量、改变的目录、定义的函数等都只存在于该子进程中。随着子进程的结束这些改变全部消失不会影响父Shell你的终端。使用source执行脚本例如source my_script.sh或. my_script.sh没有创建新的子Shell。当前Shell会直接打开这个文件并一行一行地执行其中的命令就像你亲手把这些命令敲到终端里一样。因此脚本中所有命令产生的效果环境变量、目录更改、函数定义等都会直接、永久地应用于当前Shell会话。source和.是完全等价的后者是前者的简写形式。source的主要用途不只是环境变量基于“在当前Shell中执行”这个核心source有以下几个典型应用场景1. 加载环境变量最常见的用法这确实是最主要的用途。当你修改了~/.bashrc、~/.bash_profile或~/.zshrc等配置文件后你不会想关闭终端再打开。使用source可以立即让更改生效。1234# 重新加载 bash 配置source~/.bashrc# 或者简写为. ~/.bashrc2. 加载Shell函数如果你在一个脚本文件中定义了一些有用的函数你希望在当前Shell会话中能直接使用它们而不是每次调用都跑一遍完整的脚本。文件my_functions.sh1234#!/bin/bashgreet() {echoHello, $1!}123456# 普通执行函数不会保留./my_functions.shgreetWorld# 报错command not found# 使用 source函数被加载到当前Shellsourcemy_functions.shgreetWorld# 输出Hello, World!3. 在脚本中加载外部库/配置一个复杂的项目可能会将配置变量、公共函数放在单独的文件中。主脚本可以通过source来引入这些文件。文件config.sh12DB_HOSTlocalhostDB_USERmyuser文件main_script.sh1234#!/bin/bash# 引入配置文件source./config.shechoConnecting to database at $DB_HOST with user $DB_USER...4. 修改当前Shell的状态有些命令需要改变当前Shell的工作目录或其他状态。文件go_to_project.sh12#!/bin/bashcd/path/to/my/very/long/project/directory123456# 普通执行cd 在子Shell中发生对你无效./go_to_project.shpwd# 你还是在你原来的目录# 使用 sourcecd 在当前Shell中生效sourcego_to_project.shpwd# 你已经在 /path/to/my/very/long/project/directory 了总结对比特性source script.sh或. script.sh./script.sh/bash script.sh执行环境当前Shell新的子Shell环境变量会影响当前Shell不会影响当前Shell目录更改会改变当前Shell的目录不会改变当前Shell的目录函数定义会在当前Shell中生效不会在当前Shell中生效脚本退出使用exit会关闭你的整个终端使用exit只会退出子Shell终端没事所以source是一个强大的工具它让你能够将外部脚本的代码“注入”到当前的Shell会话中运行。加载环境变量只是这个强大功能的一个具体应用。下次当你需要让一个脚本的改动直接作用于你的终端时记得使用source。

相关文章:

Linux source命令详解与应用场景解析

说得好!这是一个非常核心且常见的Linux/Unix命令。简单直接的回答是:不,source 命令远不止是加载环境变量,虽然这是它最常用的场景之一。它的核心功能是:在当前Shell环境中读取并执行指定文件中的命令。让我们来深入分…...

AI赋能开发:在快马平台让qun329数据处理更智能

在开发过程中,处理复杂数据是每个开发者都会遇到的挑战。最近我在做一个名为qun329的数据处理项目时,就遇到了数据异常检测、缺失值填充和性能优化等一系列问题。幸运的是,通过InsCode(快马)平台的AI辅助开发功能,这些问题都得到了…...

memtest_vulkan显存检测终极指南:从问题识别到健康管理

memtest_vulkan显存检测终极指南:从问题识别到健康管理 【免费下载链接】memtest_vulkan Vulkan compute tool for testing video memory stability 项目地址: https://gitcode.com/gh_mirrors/me/memtest_vulkan 一、显存故障问题识别:图形渲染异…...

AI智能体(Agent)的底层逻辑

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一、核心模块? 二、工作流程 三、关键设计思想 3.1 ReAct 模式 3.2 工具调用(Function Calling) 3.3 记忆管理 3.4 多智能体…...

彻底卸载Windows 10 OneDrive:开源脚本的完整解决方案

彻底卸载Windows 10 OneDrive:开源脚本的完整解决方案 【免费下载链接】OneDrive-Uninstaller Batch script to completely uninstall OneDrive in Windows 10 项目地址: https://gitcode.com/gh_mirrors/on/OneDrive-Uninstaller 你是否曾为Windows 10内置的…...

ai辅助开发新思路:让快马ai为你生成一个notepad++智能编程助手插件原型

今天想和大家分享一个有趣的AI辅助开发思路——如何用InsCode(快马)平台快速构建一个Notepad智能编程助手插件的原型。这个项目特别适合想体验AI与本地编辑器联动的开发者,整个过程不需要复杂的配置,直接在网页上就能完成原型验证。 插件功能设计 这个插…...

新谈设计模式 Chapter 05 — 原型模式 Prototype

Chapter 05 — 原型模式 Prototype灵魂速记:复印机——照着原件复制一份,省得从头再造。秒懂类比 你有一份精心排版的简历模板。每次投不同公司,你不是从头写一份新的,而是复印一份,改几个字。 原型模式就是这个"…...

Qwen3.5-4B模型10分钟快速部署体验:开箱即用的推理服务

Qwen3.5-4B模型10分钟快速部署体验:开箱即用的推理服务 1. 惊艳的开箱即用体验 第一次在星图GPU平台上部署Qwen3.5-4B模型时,我有点不敢相信整个过程如此简单。从选择镜像到完成部署,再到开始第一次对话,全程只用了不到10分钟。…...

Apache DolphinScheduler 三月大动作,你知道几个?

嘿!2026 年 3 月 月报来啦!Apache DolphinScheduler 社区超给力~ 13 位小伙伴踊跃贡献代码,发布了 3.4.1 昕版本,调度增强、任务插件升级,还优化 API 与 UI,修复超 15 个 Bug。 与此同时,基础设…...

【2026年最新600套毕设项目分享】springboot智慧医疗管理系统(14315)

有需要的同学,源代码和配套文档领取,加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码(前后端源代码SQL脚本)配套文档(LWPPT开题报告/任务书)远程调试控屏包运行一键启动项目&…...

突破ComfyUI下载瓶颈:3大秘诀让开源工具效率提升300%实战指南

突破ComfyUI下载瓶颈:3大秘诀让开源工具效率提升300%实战指南 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable variou…...

KOOK艺术馆入门必看:Streamlit缓存机制与大模型加载优化技巧

KOOK艺术馆入门必看:Streamlit缓存机制与大模型加载优化技巧 想象一下,你刚刚部署了璀璨星河艺术馆,这个界面美得像卢浮宫画廊的AI绘画工具。你兴奋地输入了第一个创意描述,点击生成按钮,然后...开始了漫长的等待。界…...

一键搞定完整网页截图:Chrome扩展终极解决方案

一键搞定完整网页截图:Chrome扩展终极解决方案 【免费下载链接】full-page-screen-capture-chrome-extension One-click full page screen captures in Google Chrome 项目地址: https://gitcode.com/gh_mirrors/fu/full-page-screen-capture-chrome-extension …...

cursor ctrl+方法跳转

扩展中安装了python就解决了,...

深朴智能与生数科技达成深度战略合作,共筑物理世界的通用智能

4月2日,通用具身智能机器人企业北京深朴智能科技有限公司(以下简称“深朴智能”)与通用世界模型公司北京生数科技有限公司(以下简称“生数科技”)宣布达成深度战略合作。双方将围绕“通用具身智能大脑”这一核心方向展…...

nVisual设备板卡关联

在线模型库导入:ODF-12x2 这个型号的设备打开模型库点左侧模型搜索需要添加板卡设备型号,点击建模双击板卡搜索板卡名称点击绿色按钮添加添加完成点应用到实例...

D3KeyHelper深度评测:5大实战技巧提升暗黑破坏神3操作效率

D3KeyHelper深度评测:5大实战技巧提升暗黑破坏神3操作效率 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 还在为暗黑破坏神3中复杂的技能…...

QKeyMapper终极指南:如何在不重启Windows的情况下彻底改变你的按键习惯

QKeyMapper终极指南:如何在不重启Windows的情况下彻底改变你的按键习惯 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射到…...

你的微信记忆银行:三分钟学会永久保存珍贵聊天记录

你的微信记忆银行:三分钟学会永久保存珍贵聊天记录 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatMs…...

化疗对女性的杀伤力

化疗人群普遍存在体质虚弱、免疫力下降、食欲差、体力透支、肠胃不适等问题,白之品海参凭借其天然温和的营养特点,能在多个方面提供针对性支持:温和滋补,不刺激肠胃海参性平温和,不燥热、不寒凉,对化疗后敏…...

【AI】AI安全工具:常用AI安全检测工具的使用教程

AI安全工具:常用AI安全检测工具的使用教程📝 本章学习目标:本章介绍实用工具,帮助读者掌握AI安全合规治理的工具使用。通过本章学习,你将全面掌握"AI安全工具:常用AI安全检测工具的使用教程"这一…...

Linunx常用命令

一. 通用1.1系统单元启动# 创建系统用户,不允许登录,不创建 home 目录 sudo useradd -r -s /sbin/nologin xxl-job#将 /data/middleware/xxl-job 目录的归属权改为 xxl-job 用户: sudo chown -R xxl-job:xxl-job /data/middleware/xxl-job#检…...

MRiLab:基于多物理场耦合的磁共振成像全流程仿真平台

MRiLab:基于多物理场耦合的磁共振成像全流程仿真平台 【免费下载链接】MRiLab A Numerical Magnetic Resonance Imaging (MRI) Simulation Platform 项目地址: https://gitcode.com/gh_mirrors/mr/MRiLab MRiLab作为开源数值磁共振成像仿真平台,通…...

高新申报通关指南:资深工程师手把手教你准备全套材料(附清单)

高新技术企业认定不仅是企业税负减免的“金钥匙”,更是研发实力与技术体系的重要证明。很多技术人员觉得这只是财务或行政的事,但实则技术材料的质量直接决定了申报成败。 一、 基础资质与人员结构 这部分是申报的“地基”,务必确保真实且符合…...

为什么要学习大模型?从新手到专家:AI大模型学习与实践完全指南

一、初聊大模型 1、什么是大模型? 大模型,通常指的是在人工智能领域中的大型预训练模型。你可以把它们想象成非常聪明的大脑,这些大脑通过阅读大量的文本、图片、声音等信息,学习到了世界的知识。这些大脑(模型&…...

洛谷P1678烦恼的高考志愿题解

一、题目理解输入:第一行、m所学校,n位学生第二行、m个预计录取分数第三行、n个学生估分成绩输出:最小不满意度之和二、解题思路其实这题就是简单的二分,对于我这种菜鸟来说,咱就用最简单最好理解的方式来写。1、首先观…...

OpenMS终极指南:如何快速掌握专业质谱数据分析的完整方案

OpenMS终极指南:如何快速掌握专业质谱数据分析的完整方案 【免费下载链接】OpenMS The codebase of the OpenMS project 项目地址: https://gitcode.com/gh_mirrors/op/OpenMS 蛋白质组学、代谢组学、质谱数据分析、OpenMS开源平台、生物信息学工具 在生命科…...

文件自动同步软件哪个好?企业级高效安全同步方案测评

文件自动同步软件对于许多中大型企业来说,是不可或缺的底层基础设施。不管是内部的多个服务器系统之间,跨部门团队之间,还是和外部的供应链伙伴、总部分支机构之间,都需要依赖文件自动同步软件来实现安全、自动化的文件传输与数据…...

3分钟快速配置:Boss-Key职场隐私保护终极指南

3分钟快速配置:Boss-Key职场隐私保护终极指南 【免费下载链接】Boss-Key 老板来了?快用Boss-Key老板键一键隐藏静音当前窗口!上班摸鱼必备神器 项目地址: https://gitcode.com/gh_mirrors/bo/Boss-Key 在数字化办公时代,隐…...

新手零压力入门:基于快马平台的ubuntu22.04图文安装实战指南

最近在帮几个朋友入门Linux系统时,发现Ubuntu安装这个看似简单的第一步,对新手来说却充满各种"坑"。从制作启动盘到分区设置,每个环节都可能让初学者手足无措。好在发现了InsCode(快马)平台,它能将复杂的安装过程转化为…...