Linux 的变量可分为两类:环境变量和本地变量
环境变量:或者称为全局变量,存在于所有的shell中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了。Linux 的环境变量具有继承性,即子shell 会继承父shell 的环境变量。
本地变量:当前shell 中的变量,很显然本地变量中肯定包含环境变量。Linux 的本地变量的非环境变量不具备继承性。
Linux 中环境变量的文件
当你进入系统的时候,linux就会为你读入系统的环境变量,这些环境变量存放在环境变量的文件中。Linux 中有很多记载环境变量的文件,它们被系统按照一定的顺序读入。
1. /etc/profile :
此文件为系统的环境变量,它为每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d 目录的配置文件中搜集shell 的设置。
这个文件,是任何用户登陆操作系统以后都会读取的文件(如果用户的shell 是csh 、tcsh 、zsh ,则不会读取此文件),用于获取系统的环境变量,只在登陆的时候读取一次。
或者source /etc/profile
假设用户使用的是BASH ,那么
2. /etc/bashrc :
在执行完/etc/profile 内容之后,接着就会执行此文件。另外,当每次一个新的bash shell 被打开时, 该文件被读取。
用户在登陆后执行完/etc/profile 中内容以后都会执行此文件,在新开一个bash 的时候也会执行此文件。
因此,如果你想让每个使用bash的用户每新开一个bash和每次登陆都执行某些操作,或者给他们定义一些新的环境变量,就可以在这个里面设置。
3. ~/.bash_profile :
每个用户都可使用该文件输入专用于自己使用的shell信息。当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,执行用户的.bashrc 文件。
单个用户此文件的修改只会影响到他以后的每一次登陆系统。
因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么它在每次登陆的时候都会去获取这些新的环境变量或者做某些特殊的操作,但是仅仅在登陆时。
4. ~/.bashrc :
该文件包含专用于单个人的bash shell 的bash 信息,当登录时以及每次打开一个新的shell 时, 该该文件被读取。
单个用户此文件的修改会影响到他以后的每一次登陆系统和每一次新开一个bash 。
因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么每次它新登陆系统或者新开一个bash ,都会去获取相应的特殊的环境变量和特殊操作。
~/.bash_logout :
当每次退出系统( 退出bash shell) 时, 执行该文件。
几个命令
env 和printenv
这两个变量用于打印所有的环境变量:
set
用于显示与设置当前本地变量。单独一个set就显示了当前环境的所有的变量,它肯定包括环境变量和一些非环境变量
unset
用于清除变量。不管这个变量是环境变量还是本地变量,它都可以清除。
-- 下面是清除本地变量
[admin@localhost Documents]$ set|grep mytt
mytt=xxx
[admin@localhost Documents]$ unset mytt
[admin@localhost Documents]$ set|grep mytt
-- 下面是清除环境变量
[admin@localhost Documents]$ env|grep MYTT
MYTT=xxx
[admin@localhost Documents]$ unset MYTT
[admin@localhost Documents]$ env|grep MYTT
export --自定义变量转成环境变量
用于把变量变成当前shell 和其子shell 的环境变量,存活期是当前的shell 及其子shell ,因此重新登陆以后,它所设定的环境变量就消失了。
如何将环境变量永久化?修改上面介绍的那几个环境变量的配置文件。
source
当直接执行一个脚本的时候,其实是在一个子shell 环境运行的,即开启了一个子shell 来执行这个脚本,脚本执行完后该子shell 自动退出。
有没有办法在当前shell 中执行一个脚本呢?使用source 命令就可以让脚本在当前shell 中执行。如:
[oracle@localhost NBU]$ cat test.sh -- 查看脚本内容,显示变量内容
echo $myname
[oracle@localhost NBU]$ echo $myname -- 变量存在,内容是ilonng
ilonng
[oracle@localhost NBU]$ set |grep myname -- 变量是本地变量
myname=ilonng
[oracle@localhost NBU]$ env |grep myname -- 变量不是环境变量
[oracle@localhost NBU]$ sh test.sh -- 直接执行,新开子shell ,非环境变量的本地变量不具备继承性,在子shell 中不可见
-- 这里什么都没有输出
一、Shell变量分为本地变量和环境变量。
1、本地变量 --在用户现有运行的脚本中使用
1) 定义本地变量 格式: variable-name=value
[root@localhost /root]# LOCALTEST="test"
[root@localhost /root]# echo $LOCALTEST test
2) 显示本地变量 格式: set
例子:[root@localhost root]# set
3) 清除本地变量 格式:unset variable-name
例如:[root@localhost /root]# unset LOCALTEST
此时再执行echo $LOCALTEST将看不到变量LOCALTEST的输出。
2、环境变量 --在所有的子进程中使用
1) 定义环境变量 格式: export variable-name=value (与本地变量的定义相比,多了一个export关键字)
[root@localhost /root]# export DOMAIN="baidu"
[root@ localhost shell]# vi testenv.sh
#!/bin/bash
echo $DOMAIN
[root@localhost shell]# chmod +x testenv.sh
[root@localhost shell]# ./testenv.sh
baidu
2) 显示环境变量
格式: env (本地变量的显示使用set,环境变量的显示使用env)
例子: [root@localhost test]# env
3) 清除环境变量 格式:unset variable-name (用法与本地变量相同,都使用unset)
例子: [root@localhost shell]# unset DOMAIN
此时再执行./testenv.sh将看不到变量DOMAIN的输出。
相关推荐
总的来说,理解并掌握Linux环境变量的设置和管理是提高效率和解决问题的关键。通过正确设置环境变量,可以确保系统能够顺利找到并执行所需命令,同时优化软件的工作流程。对于开发人员和系统管理员来说,这是一项...
### Linux环境变量设置详解 #### 一、理解Linux环境变量 在Linux系统中,环境变量是一种重要的配置方式,用于向程序传递系统级别的信息。这些变量包括路径信息、语言设置、用户主目录等,它们对系统的运行起着至关...
Linux 环境变量设置总结 Linux 环境变量是 Linux 操作系统中一个重要的概念,它决定了系统的行为和用户的体验。环境变量是由一系列的名称和值组成的,它们可以影响系统的行为和应用程序的运行。 1. 环境变量的分类...
### Linux环境变量配置实用技巧详解 #### 一、概述 Linux作为一款强大的开源操作系统,以其稳定性和灵活性著称。其中一个重要的特性就是环境变量的管理。环境变量是在操作系统中定义的一组特殊的变量,它们用于存储...
本文主要聚焦于Linux环境变量的设置,特别是关于`PATH`变量的配置,这对于有效地使用安装的应用程序至关重要。 环境变量是系统中预定义的一系列变量,它们包含了系统配置、用户偏好以及其他关键信息。例如,`HOME`...
Linux 环境变量介绍 在 Linux 中,环境变量是一个非常重要的概念,它可以影响用户和操作系统之间的交互方式。 shell 是用户和操作系统之间的命令解释器,负责接受用户输入的命令并将其翻译成操作系统能够理解的指令...
linux系统下环境变量的配置,本文共提供了三种方法。
在深入探讨Linux环境变量配置这一主题前,我们首先需理解环境变量在Linux系统中的核心作用。环境变量在操作系统中扮演着桥梁的角色,它们是进程间通信的一种方式,用于存储和传递程序运行时所需的信息,如路径、语言...
### Linux环境变量设置详解 在Linux系统中,环境变量扮演着至关重要的角色,它们是操作系统与用户、应用程序之间沟通的桥梁。通过环境变量,我们可以控制程序的行为,改变系统的默认设置,甚至解决某些软件的兼容性...
### Linux环境变量更改详解 #### 一、临时终端有效法 **定义与适用场景:** 在Linux系统中,可以通过临时更改环境变量的方式让当前终端会话中的某些设置生效。这种方式适用于临时测试或调试某些功能,不会对其他...
### Linux环境变量命令详解 #### 一、环境变量概述 在Linux系统中,环境变量扮演着极其重要的角色,它们不仅定义了用户的工作环境,还决定了应用程序的行为方式。环境变量是一组特殊的变量,由一系列键值对组成,...
本文将深入探讨Linux环境变量的分类、设置方法以及常见用途。 首先,根据生存周期,Linux环境变量分为两类:永久性和临时性。永久性的环境变量通过修改系统配置文件实现,如`/etc/profile`,这样设置的变量对所有...
Linux 环境变量配置文件 profile。。
### Linux环境变量详解 #### 一、环境变量概述 在Linux操作系统中,环境变量是一种非常重要的配置机制,它主要用于存储一些系统级别的配置信息,比如路径、语言环境等。环境变量通常由一系列键值对组成,其中键是...
Linux 环境变量配置及 vi 基本操作详解 Linux 环境变量配置是 Linux 系统中一个非常重要的概念,它允许用户自定义环境变量,以便更好地控制系统的行为。环境变量可以在系统中设置多个文件中,例如 /etc/profile、/...
### Ubuntu Linux 环境变量 PATH 设置详解 #### 一、概述 在 Ubuntu Linux 系统中,环境变量 `PATH` 的设置对于程序查找和执行至关重要。本文将详细介绍 Ubuntu Linux 系统中环境变量 `PATH` 的配置方法,并对相关...
Linux环境变量设置是每个系统管理员和开发者必须掌握的基础技能,因为它们对软件的可执行性和用户的交互体验至关重要。环境变量是Linux系统中的关键元素,它们提供了系统如何运行和交互的信息。当我们在终端输入命令...
以下是对Linux环境变量查看及配置的详细讲解: 一、查看环境变量 1. 全局环境变量:全局环境变量对系统中的所有用户都可见,通常设置在 `/etc/profile` 文件中。这个文件包含了系统级别的环境变量配置,对所有登录...
linux环境变量Linux环境变量是一种在操作系统中存储值的方法,这些值可以用于控制系统行为或为进程提供信息。在Linux操作系统中,PATH变量是最常用的环境变量之一,它指定了操作系统搜索可执行文件的路径。如果您要...
Linux环境变量设置总结 Linux 环境变量是一组动态命名的值,可以影响 shell 的行为和系统的执行环境。在 Linux 系统中,环境变量可以分为两类:全局环境变量和局部环境变量。全局环境变量是指对所有用户和shell都...