`

linux环境变量

阅读更多

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系统下.doc

    LINUX环境变量的一些设置的说明以及更改方法~~~~

    linux环境变量的配置

    linux系统下环境变量的配置,本文共提供了三种方法。

    Linux环境变量设置总结

    本文基于RedHat 9.0 ,详细讲解了Linux环境变量定制的问题。

    linux环境变量更改

    linux环境变量的更改3种方法,及相互之间的比较。

    Linux环境变量profile

    Linux 环境变量配置文件 profile。。

    Linux环境变量命令说明

    Set env export linux环境变量

    Linux环境变量配置echo PATH

    linux环境变量Linux环境变量是一种在操作系统中存储值的方法,这些值可以用于控制系统行为或为进程提供信息。在Linux操作系统中,PATH变量是最常用的环境变量之一,它指定了操作系统搜索可执行文件的路径。如果您要...

    linux环境变量配置

    linux环境变量详解,常用的三种方法。

    Linux环境变量设置

    Linux环境变量设置,本人精心总结,适合收藏

    linux 环境变量 配置 实用技巧 配置Linux 操作系统 环境变量

    1、linux是一个多用户的操作系统。每个用户登录系统后,都会...通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

    Ubuntu Linux 环境变量PATH设置.doc

    Ubuntu Linux 环境变量PATH设置.doc

    Linux 环境变量

    系统讲述Linux环境变量的设置方法。包括设置、显示、清除等。

    Linux配置JDK环境变量

    # source /etc/profile ##使环境变量生效 # set 要使JDK在所有的用户中使用,可以这样: vi /etc/profile.d/java.sh 在新的java.sh中输入以下内容: #set java environment JAVA_HOME=/usr/java/jdk-1_5_0_02 ...

    linux环境变量介绍

    linux下环境变量的设置,及shell的用法

    Linux 环境变量详解及实例

    Linux环境变量 ~/.bash_profile && ~/.bashrc 用户登陆Linux操作系统的时候,”/etc/profile”, “~/.bash_profile”等配置文件会被自动执行。 执行过程是这样的: 登陆Linux系统时,首先启动”/etc/profile”,...

    linux 环境变量 (二)

    linux环境变量(二) 1、linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行...

    linux环境变量查看及配置

    linux环境变量查看及配置:文档中介绍了linux操作系统中全局环境变量、局部(用户级)环境变量的路径、文件以及修改方式,同时还介绍了linux操作系统常用的一些环境变量名称及说明。

    Linux 环境变量 设置总结

    1、引言 在 linux系统 下,如果你下载并安装了应用程序,很...这涉及到环境变量 PATH 的设置问题,而 PATH 的设置也是在 linux 下定制环境变量的一个组成部分。本文基于 RedHat 9.0 ,详细讲解了环境变量定制的问题。

    JAVA读取环境变量

    JAVA读取环境变量 在windows、linux中都可以运行,可指定任何环境变量

Global site tag (gtag.js) - Google Analytics