期目录:
从0开始学习Linux------搭建属于自己的Linux虚拟机
从0开始学习Linux------Shell编程详解【01】
从0开始学习Linux------Shell编程详解【02】
从0开始学习Linux------Shell编程详解【03】
上期教程我们学习了定时任务,这期教程我们将学习环境变量。
一、环境变量
环境变量是操作系统中用于存储系统配置和程序设置的变量。环境变量可以在系统级别、用户级别或进程级别进行设置和使用,它们在用户登录、系统启动、进程执行等方面起着重要的作用。
1.1 基本概念
环境变量是存储一些关于操作系统和应用程序运行状态的键值对。这些键值对的作用是向程序传递信息,告诉它们在哪些目录查找文件、如何与其他程序交互等。
常见的环境变量包括:
- PATH:指定可执行文件的搜索路径,决定了哪些目录中的程序可以在命令行中直接运行。
- HOME:当前用户的主目录。
- USER:当前用户的用户名。
- SHELL:当前用户使用的Shell。
- LANG:系统的语言和区域设置。
- PWD:当前工作目录。
例如:
export PATH=$PATH:/opt/myprogram/bin
环境变量主要分为两种类型:
- 系统环境变量:影响整个系统及所有用户。
- 用户环境变量:仅影响当前用户。
1.2 查看环境变量
我们可以使用printenv命令查看当前的环境变量。
当然我们也可以使用echo命令查看特定的环境变量。
1.3 临时设置环境变量
环境变量可以在命令行中临时设置,这些变量在当前终端会话期间有效,当终端关闭时会失效。
下面我们使用root账号重新开启一个会话。
我们可以看到在新会话中VARE_NAME这个临时环境变量不存在。
1.4 永久设置环境变量
为了使环境变量在系统重启或用户注销后依然有效,我们需要将它们添加到特定的配置文件中。
方式1:在/etc/profile中设置系统级环境变量
/etc/profile是一个系统级别的配置文件,用于为所有用户提供环境变量。我们可以将环境变量添加到该文件中,使其在所有用户登录时都生效。
首先我们需要打开/etc/profile文件。
vim /etc/profile
在文件末尾我们可以添加上我们自己的环境变量。
编辑好环境变量文件保存退出以后需要重新加载环境变量以便其生效。
source /etc/profile
方式2:在用户的.bash_profile中设置用户级环境变量
如果我们只想为当前用户设置环境变量,可以在用户的~/.bash_profile文件中进行设置。该文件是每个用户登录时执行的配置文件。
首先我们先使用文本编辑器打开~/.bash_profile文件并在末尾添加自己的环境变量。
vi ~/.bash_profile
我们将~/.bash_profile文件编辑保存好退出来以后需要重新加载环境变量以使其生效。
方式3:在.bashrc中设置环境变量
.bashrc文件是用于设置 Bash shell 会话的配置文件,通常用于设置一些会话相关的变量。如果希望环境变量仅在交互式 shell 会话中有效,可以把它们添加到.bashrc中。
vi ~/.bashrc
首先我们需要先使用文本编辑器打开.bashrc文件并在文件末尾添加自己的环境变量。
我们在编辑完.bashrc文件并保存退出以后,需要重新加载以使其生效。
source ~/.bashrc
方式4:在/etc/environment中设置环境变量
/etc/environment文件用于设置系统范围的环境变量,适用于所有用户。该文件中一般不包含任何 shell 特定的语法,仅包含key=value格式的环境变量。
首先我们先使用文本编辑器打开/etc/environment文件,并在添加我们的环境变量。
vi /etc/environment
配置好环境变量后,我们需要重新加载以使其生效。
source /etc/environment
1.5 环境变量优先级
当多个文件中设置了同一个环境变量时,文件中的优先级从高到低为:
- ~/.bashrc 或 ~/.bash_profile(用户级别)
- /etc/profile (系统级别)
- /etc/environment(系统范围)
- 其他 shell 配置文件
1.6 其它相关文件
-
/etc/profile.d/:该目录包含多个脚本文件,它们在系统启动时会被读取。这些脚本通常用于为某个程序设置环境变量。例如,安装某个软件时,可能会在该目录下创建一个脚本文件来设置该程序的环境变量。
-
~/.bash_logout:当用户退出 Bash shell 时执行的文件。可以在此文件中设置一些退出时需要执行的清理任务。
本节教程内容就暂时先到这里,更多内容将在后续教程中进行讲解。