linux source 点命令

本文介绍如何在不注销并重新登录的情况下,使修改后的/etc/profile文件立即生效,通过使用`source`命令来实现。同时,还介绍了`source`命令的基本用法及在编译Linux内核时的应用,以及如何利用它自动化执行一系列命令。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


让/etc/profile文件修改后立即生效
 
方法1:   www.2cto.com  
让/etc/profile文件修改后立即生效 ,可以使用如下命令: 
# .  /etc/profile 
注意: . 和 /etc/profile 有空格 
方法2: 
让/etc/profile文件修改后立即生效 ,可以使用如下命令: 
# source /etc/profile 
 
附:Linux中source命令的用法 
source命令: 
source命令也称为“点命令”,也就是一个点符号(.)。source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。 
用法: 
source filename 或 . filename 
source命令除了上述的用途之外,还有一个另外一个用途。在对编译 系统核心时常常需要输入一长串的命令,如: 
make mrproper 
make menuconfig 
make dep 
make clean 
make bzImage 
………… 
如果把这些命令做成一个文件,让它自动顺序执行,对于需要多次反复编译系统核心的用户来说会很方便,而用source命令就可以做到这一点,它的作用就是把一个文件的内容当成shell来执行,先在linux的源代码目录下(如/usr/src/linux-2.4.20)建立一个文件,如make_command,在其中输入一下内容:   www.2cto.com  
make mrproper && 
make menuconfig && 
make dep && 
make clean && 
make bzImage && 
make modules && 
make modules_install && 
cp arch/i386/boot/bzImage /boot/vmlinuz_new && 
cp System.map /boot && 
vi /etc/lilo.conf && 
lilo -v 
文件建立好之后,每次编译核心的时候,只需要在/usr/src/linux-2.4.20下输入: 
source make_command 
即可,如果你用的不是lilo来引导系统,可以把最后两行去掉,配置自己的引导程序来引导内核。 
顺便补充一点,&&命令表示顺序执行由它连接的命令,但是只有它之前的命令成功执行完成了之后才可以继续执行它后面的命令。
<think>我们正在讨论Linux中的source命令source命令用于在当前Shell环境中执行指定文件中的命令,而不是在子Shell中执行。这使得文件中设置的变量和函数在当前Shell会话中可用。 常见用途包括:重新加载配置文件(如.bashrc)、设置环境变量等。 基本语法: source filename [arguments] 或 . filename [arguments] (注意号后面有空格) 其中,`filename`是要执行的脚本文件名,`[arguments]`是传递给脚本的参数。 示例: 1. 重新加载.bashrc文件: source ~/.bashrc 或 . ~/.bashrc 2. 执行一个设置环境变量的脚本: 假设我们有一个脚本env_setup.sh,内容如下: #!/bin/bash export MY_VAR="Hello World" 然后我们执行: source env_setup.sh 之后,变量MY_VAR就在当前Shell中可用了,可以通过echo $MY_VAR查看。 3. 传递参数给脚本: 假设脚本test.sh内容如下: #!/bin/bash echo "First arg: $1" echo "Second arg: $2" 执行: source test.sh arg1 arg2 注意事项: - 使用source执行的脚本不需要有可执行权限(即不需要chmod +x),因为它是被当前Shell读取并执行的。 - 与直接运行脚本(如./script.sh)不同,source不会创建子Shell,因此脚本中定义的变量和函数在脚本执行完毕后仍然存在于当前Shell中。 另外,source命令是bash的内置命令,所以可以使用`help source`来查看帮助。 引用说明:上述内容参考了Linux bash手册以及常见的Shell编程实践[^1]。 §§相关问题§§ 1. source命令和直接执行脚本有什么区别? 2. 如何在脚本中使用source命令来包含其他脚本? 3. source命令在哪些场景下特别有用? 4. 如何检查一个脚本是否被source执行(而不是在子Shell中执行)?</think>### Linuxsource命令的用法与示例 `source`是Linux/Unix系统中的内置Shell命令,用于**在当前Shell环境中执行脚本文件**(而非创建子Shell)。其核心功能是使脚本中的变量、函数或环境设置立即生效,常用于配置文件加载或环境初始化。 #### ✅ 基本语法 ```bash source 文件名 [参数] # 或简写为 . 文件名 [参数] # 注意号后有空格 ``` #### 🔧 主要用途 1. **加载配置文件**(如`.bashrc`、`.profile`) 2. **设置环境变量**(对当前终端生效) 3. **定义函数**(可在当前会话直接调用) 4. **激活虚拟环境**(如Python的`venv`) --- ### 📝 实用示例 #### 示例1:重新加载Shell配置 ```bash # 修改.bashrc后立即生效(无需重启终端) source ~/.bashrc # 等效命令 . ~/.bashrc ``` #### 示例2:设置持久环境变量 创建脚本`env_vars.sh`: ```bash # 内容:设置API密钥 export API_KEY="12345-abcde" export PATH="$PATH:/opt/myapp/bin" ``` 加载并验证: ```bash source env_vars.sh echo $API_KEY # 输出 12345-abcde echo $PATH # 包含/opt/myapp/bin ``` #### 示例3:定义并调用函数 创建`math_functions.sh`: ```bash add() { echo $(($1 + $2)) } multiply() { echo $(($1 * $2)) } ``` 使用函数: ```bash source math_functions.sh add 5 3 # 输出 8 multiply 4 6 # 输出 24 ``` #### 示例4:激活Python虚拟环境 ```bash # 创建环境 python -m venv myenv # 激活环境 source myenv/bin/activate # 退出环境 deactivate ``` #### 示例5:带参数执行脚本 创建`greet.sh`: ```bash echo "Hello, $1!" ``` 运行: ```bash source greet.sh Alice # 输出 Hello, Alice! ``` --- ### ⚠️ 注意事项 1. **与`./script.sh`的区别**: - `./script.sh`:在子Shell中执行,变量/函数不保留 - `source script.sh`:在当前Shell执行,修改会持久化 ```bash ./set_var.sh && echo $VAR # 变量不存在 source set_var.sh && echo $VAR # 输出变量值 ``` 2. **权限要求**: - 被`source`的文件**无需执行权限**(`chmod +x`不是必须的) 3. **错误处理**: - 脚本中的错误会中断当前Shell会话(如`exit`命令) - 建议用`set -e`提前终止错误执行[^1] --- ### ❓ 相关问题 1. `source`和`export`在设置环境变量时的区别是什么? 2. 如何在脚本中检测当前是否被`source`执行? 3. 使用`source`加载配置有哪些安全风险? 4. 为什么修改`/etc/profile`后建议用`source`而非重启?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值