Linux下source命令详解

2023-05-16

Linux下source命令详解

source命令用法#


source FileName  

source命令作用#

在当前bash环境下读取并执行FileName中的命令。

*注:该命令通常用命令“.”来替代。

使用范例:


source filename 

# 中间有空格
. filename  

source命令(从 C Shell 而来)是bash shell的内置命令。点命令,就是个点符号,(从Bourne Shell而来)是source的另一名称。

source(或点)命令通常用于重新执行刚修改的初始化文档,如 .bash_profile 和 .profile 这些配置文件。

 

举例说明:

假如在登录后对 .bash_profile 中的 EDITER 和 TERM 变量做了修改,这时就可以用 source 命令重新执行 .bash_profile文件,使修改立即生效而不用注销并重新登录。

再比如您在一个可执行的脚本 a.sh 里写这样一行代码


export KKK=111   

 

假如您用  ./a.sh  执行该脚本,执行完毕后,在当前shell环境中运行 echo $KKK,发现没有值,但是用 source a.sh 来执行 ,然后再 echo $KKK,就会发现 打印 111

原因说明

因为调用./a.sh来执行shell是在一个子shell里运行的,所以执行后,结构并没有反应到父shell里,但是source不同他就是在本shell中执行的,所以能够看到结果。

 

总结#

source命令(从 C Shell 而来)是bash shell的内置命令. 点命令,就是一个点符号,是source的另一名称。这两个命令都以一个脚本为参数,该脚本将在当前shell的环境执行,即不会启动一个新的子shell。所有在脚本中设置的变量都将成为当前Shell的一部分。

 

source命令的一个妙用#

在编译核心时,常常要反复输入一长串命令,如

 


make mrproper
make menuconfig
make dep
make clean
make bzImage
.......  

 

 

  

这些命令既长,又繁琐。而且有时候容易输错,浪费你的时间和精力。如果把这些命令做成一个文件,让它自动按顺序执行,对于需要多次反复编译核心的用户来说,会很方便。

用source命令可以办到这一点。它的作用就是把一个文件的内容当成是shell来执行。

先在/usr/src/mysh目录下建立一个文件,取名为make_command,在其中输入如下内容:

 


make mrproper &&
make menuconfig &&
make dep &&
make clean &&
make bzImage &&
make modules &&
make modules_install &&
cp arch/i386/boot/bzImge /boot/vmlinuz_new &&
cp System.map /boot &&
vi /etc/lilo.conf &&
lilo -v  

 

  

文件建立好之后,以后每次编译核心,只需要在/usr/src/mysh下输入source make_command 就行了。这个文件也完全可以做成脚本,只需稍加改动即可。

shell编程中的命令有时和C语言是一样的。&&表示与,||表示或。把两个命令用&&联接起来,如 make mrproper && make menuconfig,表示要第一个命令执行成功才能执行第二个命令。对执行顺序有要求的命令能保证一旦有错误发生,下面的命令不会盲目地继续执行。

source filename 与 sh filename 及./filename执行脚本的区别#

  1. 当shell脚本具有可执行权限时,用sh filename./filename执行脚本是没有区别得。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。
  2. sh filename 重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。
  3. source filename:这个命令其实只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux下source命令详解 的相关文章

  • CPU明明8个核,网卡为啥拼命折腾一号核?

    中断机制 我是CPU一号车间的阿Q xff0c 我又来了 xff01 我们日常的工作就是不断执行代码指令 xff0c 不过这看似简单的工作背后其实也并不轻松 咱不能闷着头啥也不管一个劲的只管执行代码 xff0c 还得和连接在主板上的其他单位
  • 好久没出去面试了,没想到问这么难...

    好久没出去面试了 xff0c 没想到问这么难 1周前 不知道你们多长时间没有参加过面试了 xff0c 最近这段时间的面试 xff0c 真的是一个比一个严格 xff01 我昨天参加了一线大厂的技术面 xff0c 被问到了一些并发相关的问题 x
  • 救命,Linux正在吃掉我的内存!

    内存发现自己的空闲空间越来越少 xff0c 经过一番调查 xff0c 发现罪魁祸首居然是Linux老大 xff01 内存 xff1a Linux老大 xff0c 这也没几个程序在运行 xff0c 可是你为什么老是占用我的内存啊 xff0c
  • 太高效了!玩了这么久的Linux,居然不知道这7个终端快捷键!

    作为 Linux 用户 xff0c 大家肯定在 Linux 终端下敲过无数的命令 有的命令很短 xff0c 比如 xff1a ls cd pwd 之类 xff0c 这种命令大家毫无压力 但是 xff0c 有些命令就比较长了 xff0c 比如
  • 这样处理Shell脚本参数,爽多了!

    这样处理Shell脚本参数 xff0c 爽多了 xff01 在 shell必备基础知识 中说到了一些入口参数的基本使用 xff1a home shouwang test sh para1 para2 para3 0 1 2 3 脚本名 第一
  • 面试官:kill -9 进程杀不掉,怎么办?

    用ps和grep命令寻找僵尸进 ps A ostat ppid pid cmd grep e 39 Zz 39 命令注解 xff1a A 参数列出所有进程 o 自定义输出字段 我们设定显示字段为 stat xff08 状态 xff09 pp
  • GCC为何如此强大? 动态库与静态库

    做软件开发的读者 xff0c 应该对GCC都不会陌生 xff0c 之所以大家都能知道它 xff0c 了解它 xff0c 是因为它有许多特殊 强大的 功能 一 GCC发展史 GNU 项目计划的主要目的是创建一个名叫 GNU s Not Uni
  • 看完这篇操作系统,和面试官扯皮就没问题了。

    解释一下什么是操作系统 操作系统是运行在计算机上最重要的一种软件 xff0c 它管理计算机的资源和进程以及所有的硬件和软件 它为计算机硬件和软件提供了一种中间层 通常情况下 xff0c 计算机上会运行着许多应用程序 xff0c 它们都需要对
  • extern “C”的作用详解

    extern 34 C 34 的主要作用就是为了能够正确实现C 43 43 代码调用其他C语言代码 加上extern 34 C 34 后 xff0c 会指示编译器这部分代码按C语言 xff08 而不是C 43 43 xff09 的方式进行编
  • Linux 进程与程序区别与联系

    一 xff0c 什么是程序 xff1f 程序是完成特定任务的一系列指令集合 二 xff0c 什么是进程 xff1f 从用户的角度来看进程是程序的一次动态执行过程从操作系统的核心来看 xff0c 进程是操作系统分配的内存 CPU时间片等资源的
  • 软件包的管理(Centos7)

    软件包类型 xff1a rpm软件包的管理 xff1a rpm包格式说明 xff1a span class token punctuation span root 64 aws span class token operator span
  • unix环境编程1 环境变量

    预处理 编译 汇编 连接 cpu中有个MMU xff0c 内存处理单元 xff1a 它的作用是 1 处理物理内存与虚拟内存映射的关系 2 设置修改内存访问级别 xff08 0 3级 xff09 内核空间的访问级别为0 用户空间的访问级别为3
  • RSU NTP时间同步配置方式

    RSU NTP同步配时方式 RSU ntp同步配时是基于一个开源工具chrony实现的 xff0c 这个工具集成在RSU里面了 xff0c 网上也能搜索到教程 xff0c 以下是一个参考链接 xff1a Centos使用chrony做时间同
  • Linux回收子进程

    孤儿进程 孤儿进程 父进程先于子进程结束 xff0c 则子进程成为孤儿进程 xff0c 子进程的父进程成为init进程 xff0c 称为init进程领养孤儿进程 include lt stdio h gt include lt unistd
  • C++内存管理(超长,例子很详细,排版很好)

    导语 内存管理是C 43 43 最令人切齿痛恨的问题 xff0c 也是C 43 43 最有争议的问题 xff0c C 43 43 高手从中获得了更好的性能 xff0c 更大的自由 xff0c C 43 43 菜鸟的收获则是一遍一遍的检查代码
  • c++ string 的常用库函数的用法

    目录 一 初始化 二 获取长度 xff08 length size xff09 三 插入 xff08 insert xff09 四 替换 xff08 replace xff09 五 添加 xff08 append xff09 六 赋值 xf
  • linux学习笔记1

    shutdown 一分钟后关机 shutdown c 取消关机命令 shutdown r 重新启动系统 shutdown 43 10 十分钟后关机 ifconfig 查看 配置计算机当前的网卡配置信息 ping 地址 检测目标ip地址的连接
  • 一道爬楼梯的算法题

    一个小孩爬楼梯 xff0c 每次可以爬1个 2个或3个台阶 xff0c 编程求出这个小孩爬完10个台阶的楼梯一共有多少种走法 def main k 61 0 构建函数1 x 43 2 y 43 3 z 61 10 确定x取值范围 for x
  • 面试技术杂ji——需要解决的问题

    需要搞明白的几个问题 xff1a 1 3次握手和4次挥手 2 TCP与UDP的区别 3 如果TCP连接出现问题该如何排查 xff0c 说明排查的思路 连接断开或者出错 xff0c 会返回一个错误码 xff0c errorNo 最后一次系统调
  •  SHELL 脚本学习笔记

    第十四章 SHELL 脚本 终于到 shell 脚本这章了 xff0c 在以前笔者卖了好多关子说 shell 脚本怎么怎么重要 xff0c 确实 shell 脚本在 linux 系统管理员的运维工作中非常非常重要 下面笔者就带你正式进入 s

随机推荐

  • 软件定义汽车 新一代技术发展

    引言 作为一个技术的爱好者 xff0c 搞算法 xff0c 玩芯片 xff0c 攒系统 xff0c 并不只是工作 xff0c 也是自己所追求的很重要的部分 写这个系列 xff0c 是为了梳理这几年的所学 所思 所想 xff0c 从而形成一个
  • 解压缩 tar命令详解

    1 tar命令进行文档的归档和压缩 归档和压缩文件 归档和压缩文件的好处 xff1a 节约硬盘的资源 xff0c 加快文件传输速率 tar命令 作用 xff1a 打包 压缩文件 xff1b tar文件是把几个文件和 xff08 或 xff0
  • 华测导航GPCHC协议ROS驱动包,CGI610、410接收机,NavSatStatus、GPSFix和普通格式

    目录 一 消息类型1 1 sensor msgs NavSatFix1 2 sensor msgs NavSatStatus1 3 gps common GPSFix1 4 sensor msgs Imu 二 部分源码2 1 相关的依赖和库
  • 淡定地撸了一遍AUTOSAR的基本概念

    1 AUTOSAR的解决方案 之前的文章 老板说项目要上AUTOSAR xff0c 我慌得一批 讲到了 xff0c 面对日益复杂的汽车E E架构 xff0c 在欧洲大地上诞生的AUTOSAR组织 xff0c 提出了解决方案 而且做了标准化
  • 图文并茂,一文讲透C语言结构体内存对齐

    面试官 xff1a 你知道C语言的结构体对齐吗 xff1f 应聘者 xff1a 听说过 平时很少关注 面试官 xff1a 好吧 xff0c 那回去等通知吧 C语言结构体对齐问题 xff0c 是面试必备问题 本文 xff0c 除了用图解的方式
  • 老板说项目要上AUTOSAR,我慌得一批

    莫慌 xff0c 淡定 xff0c 先来看看AUTOSAR是个什么鬼 AUTOSAR是什么 AUTOSAR AUTomotive Open System ARchitecture xff0c 中文是 汽车开放系统架构 xff0c 是一家致力
  • AUTOSAR架构的故事(干货)

    1 AUTOSAR架构概览 在新世纪 xff0c 汽车产业蓬勃发展 xff0c 欧洲大陆的车企们 xff0c 瞄准了这是一块大蛋糕 xff0c 于是在2002年成立了一个联盟 xff0c 搞了个叫AUTOSAR的标准 xff0c 以期一统天
  • 基于PREEvision的AUTOSAR Adaptive设计

    导读 xff1a 为适应汽车智能化 网联化等的发展趋势 xff0c 应对汽车E E系统开发面临的高性能处理器的应用 自动驾驶的软件实现 高带宽通信需求 车与外界的互联互通等的挑战 xff0c AUTOSAR组织推出了AUTOSAR Adap
  • DoIP技术

    首发于汽车控制器 ECU 网络诊断技术交流 DoIP技术 xff08 一 xff09 本文是关于DoIP技术的第一篇文章 xff0c 主要进行一些概念介绍 xff0c 具体的细节会在后续的文章中和大家探讨 DoIP是 Diagnostic
  • 车载以太网 - SOME/IP简介

    SOME IP Scalable service Oriented MiddlewarE over IP 是车载以太网通信引入的一个概念 xff0c 位于OSI 7层模型的层4 传输层 之上 在以CAN总线为主的车载网络中 xff0c 通信
  • AUTOSAR_DCM&DEM(UDS&OBD)

    1 术语与缩写 术语 DCM Diagnostic Communication Manager DEM Diagnostic Event Manager UDS Unified diagnostic services OBD On Boar
  • 精心整理的 CP AUTOSAR科普介绍材料

    一 AUTOSAR的背景介绍 AUTOSAR是AUTOmotive Open System Architecture xff08 汽车开放系统架构 xff09 的首字母缩写 xff0c 是由全球各大汽车整车厂 汽车零部件供应商 汽车电子软件
  • CP AUTOSAR 简介

    嵌入式系统不支持硬件抽象 xff0c 使得我们每次在进行新的处理器更换之后 都需要进行重新进行底层软件的开发 2003年建立autosar 组织 autosar官方文档非常长2万多页 xff0c 从这里可以看出什么 xff1f 1 auto
  • 进程概述和ps管理进程

    什么是进程 xff1a 下图所示是进程的生命周期 xff1a 简单理解 xff1a 父进程退出了子进程没有退出 xff0c 那么这些子进程就没有父进程来管理了 xff0c 就变成僵尸进程 进程的属性 xff1a 使用ps查看进程工具 xff
  • CP AUTOSAR 通信

    现在汽车中 xff0c 车内网络普遍采用CAN LIN FlexRay总线 xff0c CAN FD和车载以太网也将在未来得到更多应用 作为汽车电子软件的主要标准 xff0c AUTOSAR在总线网络通信方面提供了完整的架构 AUTOSAR
  • 二层交换机与三层交换机区别

    我们习惯说 xff0c 在二层网络环境中相同vlan之间可以通信 xff0c 不同vlan之间不可以通信 xff0c 如果想通信必须借助三层设备 xff0c 所以说三层交换机必须要做的事情是路由转发 xff0c 但是二 三层交换机具体有什么
  • Autosar 软件中间件

    我们都知道手机 xff0c 电脑啥的在应用之下 xff0c 硬件之上 xff0c 还有一个东西叫操作系统 xff0c 车辆里也有类似的东西 操作系统 xff0c 中间件 xff0c 应用软件 各司其职分工不同 操作系统 我负责对硬件 xff
  • AUTOSAR和ROS有哪些联系和区别

    AUTOSAR和ROS有哪些联系和区别 xff1f AUTOSAR和ROS有哪些联系和区别 xff1f 用ROS可以实现AUTOSAR的功能吗 xff1f 从Linux和Ros系统转向AP该如何转 xff1f 为什么需要转 xff1f AP
  • Autosar开发人员必知概念

    1 什么是Autosar架构 xff1f 答 xff1a 汽车开放系统架构 xff08 AUTomotive Open System Architecture xff09 是一家致力于制定汽车电子软件标准的联盟 AUTOSAR是由全球汽车制
  • Linux下source命令详解

    Linux下source命令详解 source命令用法 source FileName source命令作用 在当前bash环境下读取并执行FileName中的命令 注 xff1a 该命令通常用命令 来替代 使用范例 xff1a sourc