1. 什么是环境变量?
-
定义: 环境变量是在操作系统级别设置的键值对,用于存储系统范围的配置信息。
-
作用: 环境变量可以影响进程的运行,包括其行为、输出等。它们为系统提供了一种在不同进程之间传递信息的方法。
2. 环境变量的分类:
-
系统环境变量: 在操作系统级别设置的变量,对所有用户和进程都可见。
-
用户环境变量: 特定用户设置的环境变量,仅对该用户及其启动的进程可见。
3. 常见环境变量:
-
PATH: 包含可执行文件的路径,系统通过搜索这些路径来找到可执行文件。
-
HOME: 用户的主目录路径。
-
USER: 当前用户的用户名。
-
LANG: 系统默认语言。
-
SHELL: 用户默认的 Shell。
4. 设置和查看环境变量:
-
设置环境变量: 使用
export
命令(在Unix/Linux)或set
命令(在Windows)来设置环境变量。export MY_VARIABLE="some_value"
或
set MY_VARIABLE="some_value"
-
查看环境变量: 使用
echo
命令(在Unix/Linux)或echo
或printenv
命令(在Windows)来查看环境变量。echo $MY_VARIABLE
或
echo %MY_VARIABLE%
5. 环境变量的使用场景:
-
定制系统行为: 通过设置环境变量,可以定制系统的默认行为,例如更改默认编辑器、语言等。
-
程序配置: 许多应用程序使用环境变量来配置其行为,例如数据库连接信息、API密钥等。
-
系统路径:
PATH
环境变量定义了系统查找可执行文件的路径,影响命令的执行。
6. Shell配置文件:
在Unix/Linux系统中,用户的环境变量通常在Shell的配置文件中设置。例如,~/.bashrc
或 ~/.bash_profile
。
7. 环境变量的持久性:
-
暂时性: 在当前终端窗口中设置的环境变量通常在会话结束后失效。
-
永久性: 在配置文件中设置的环境变量可以在每次登录时持久存在。
8. 注意事项:
-
避免冲突: 当设置环境变量时,应避免与系统或其他应用程序使用的变量发生冲突。
-
安全性: 避免将敏感信息存储在环境变量中,因为它们通常可以被其他进程和用户访问。
9. 实际应用场景:
-
开发环境配置: 开发人员可以使用环境变量来配置开发环境,例如设置编译器路径、库路径等。
-
系统运维: 运维人员可以使用环境变量来配置系统参数,影响系统行为。
-
持续集成和部署: 在CI/CD流水线中,可以使用环境变量来传递配置信息给构建和部署工具。
~/.bashrc
和 ~/.bash_profile
的区别
Linux系统中root下面的两个环境配置文件
1. ~/.bashrc:
-
作用:
~/.bashrc
是每次打开新的 Bash Shell 会话时都会被加载的配置文件。它用于设置用户特定的 Shell 配置,例如别名、函数、命令提示符等。 -
加载时机: 当用户启动一个新的非登录交互式 Bash Shell 时,会执行
~/.bashrc
。这通常发生在打开新的终端窗口时。 -
典型用途: 在
~/.bashrc
中,你可以设置一些仅在交互式 Shell 中有意义的配置,如颜色设置、自定义别名等。 -
例子:
# 设置别名 alias ll='ls -al' # 设置命令提示符颜色 PS1='\[\e[32m\]\u@\h:\w\$ \[\e[0m\]'
2. ~/.bash_profile:
-
作用:
~/.bash_profile
是用户登录时被执行的配置文件,它主要用于设置用户环境变量和执行一次性的初始化任务。 -
加载时机: 当用户登录到系统时,会执行
~/.bash_profile
。这个文件只在用户登录时执行一次,而不是每次打开新的终端窗口时。 -
典型用途: 在
~/.bash_profile
中,你可以设置用户的环境变量、启动一些特定于登录会话的服务、执行初始化脚本等。 -
例子:
# 添加路径到 PATH 环境变量 export PATH=$PATH:/usr/local/bin # 执行初始化脚本 source ~/init_script.sh
3. 交互式 vs. 登录 Shell:
-
交互式 Shell: 交互式 Shell 是用户与 Shell 交互的一种方式,通常通过终端窗口进行。
~/.bashrc
用于配置这种 Shell。 -
登录 Shell: 登录 Shell 是用户登录到系统时启动的 Shell。
~/.bash_profile
用于配置这种 Shell。
4. 推荐做法:
-
通常,
~/.bash_profile
会在登录时执行一次,它可以调用~/.bashrc
,确保在每个新终端窗口中都有相同的配置。# 在 ~/.bash_profile 中调用 ~/.bashrc if [ -f ~/.bashrc ]; then source ~/.bashrc fi
-
如果你仅在一个系统上工作,可能只需要一个配置文件,通常建议使用
~/.bashrc
,并确保在~/.bash_profile
中调用它。
需要添加环境变量时,简单来说需要下面步骤
1.查找路径
which xxx
2.得到路径后,用vim打开.bashrc,然后用export添加
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
export PATH="/usr/local/cbc/bin:$PATH"
- PATH中间是用‘:‘隔开,这段代码可以看成是 将新的路径’usr/local/cbc/bin’插入到旧的路径’$PATH’ 前,然后将其作为新的路径
3.使修改的.bashrc文件生效
source ~/.bashrc
4.查看新的path
echo $PATH