每一种编程语言中,我们都会碰到变量的作用域的问题。(比如在函数中定义的变量在函数外不能使用的) 
BASH 中也有类似的问题,局部变量和环境变量(全局变量)。 
局部变量是普通的变量,仅在创建它的Shell中有效。 
环境变量。我们更多的使用“环境变量”而不是“全局变量”,因为这个名称更 
能体现它的特点。环境变量对创建它的Shell及其派生出来的子进程都有效。或者说环境变量可以继承,但它对其它与创建它的Shell没有关系的Shell并不可见。其实重启一个终端就是重新启动了一个shell

Linux的变量可分为两类:环境变量和本地变量

环境变量,或者称为全局变量,存在与所有的shell中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了。Linux的环境变量具有继承性,即子shell会继承父shell的环境变量。 
#env 显示环境变量 
本地变量,当前shell中的变量,很显然本地变量中肯定包含环境变量。Linux的本地变量的非环境变量不具备继承性。 
#set显示本地变量 
Linux中环境变量的文件

当你进入系统的时候,linux就会为你读入系统的环境变量,这些环境变量存放在什么地方,那就是环境变量的文件中。Linux中有很多记载环境变量的文件,它们被系统读入是按照一定的顺序的。

1.    /etc/profile:

此文件为系统的环境变量,它为每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。

这个文件,是任何用户登陆操作系统以后都会读取的文件(如果用户的shell是csh、tcsh、zsh,则不会读取此文件),用于获取系统的环境变量,只在登陆的时候读取一次。

假设用户使用的是BASH,那么

2.    /etc/bashrc:

在执行完/etc/profile内容之后,如果用户的SHELL运行的是bash,那么接着就会执行此文件。另外,当每次一个新的bash shell被打开时,该文件被读取。

每个使用bash的用户在登陆以后执行完/etc/profile中内容以后都会执行此文件,在新开一个bash的时候也会执行此文件。因此,如果你想让每个使用bash的用户每新开一个bash和每次登陆都执行某些操作,或者给他们定义一些新的环境变量,就可以在这个里面设置。

3.    ~/.bash_profile:

每个用户都可使用该文件输入专用于自己使用的shell信息。当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,执行用户的.bashrc文件。

单个用户此文件的修改只会影响到他以后的每一次登陆系统。因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么它在每次登陆的时候都会去获取这些新的环境变量或者做某些特殊的操作,但是仅仅在登陆时。

4.    ~/.bashrc:

该文件包含专用于单个人的bash shell的bash信息,当登录时以及每次打开一个新的shell时,该该文件被读取。

单个用户此文件的修改会影响到他以后的每一次登陆系统和每一次新开一个bash。因此,可以在这里设置单个用户的特殊的环境变量或者特殊的操作,那么每次它新登陆系统或者新开一个bash,都会去获取相应的特殊的环境变量和特殊操作。

~/.bash_logout:

当每次退出系统(退出bash shell)时,执行该文件。

几个命令

env和printenv

unset

用于清除变量。不管这个变量是环境变量还是本地变量,它都可以清除。

Linux环境变量和本地变量的更多相关文章

  1. linux环境变量与本地变量

    两者不同的是. 环境变量可以在shell的子进程中使用, 而本地变量不同. 每当连接上服务器时,服务器就会通过帐号密码运行一个SHELL,我们所做的工作都在这个SHELL上,特殊方法除外(如,守护进程 ...

  2. Java中的变量之成员变量、本地变量与类变量

    Java中的变量: 1.成员变量(实例变量,属性) 2.本地变量(局部变量) 3.类变量(静态属性) 一.成员变量(实例变量,属性) 1.1-成员变量:(在类中定义,    访问修饰符   修饰符   ...

  3. linux环境变量(转)

    转自: http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html Linux 的变量可分为两类:环境变量和本地变量 环境变量 或者称为 ...

  4. (转载)linux环境变量

    转自:http://www.cnblogs.com/growup/archive/2011/07/02/2096142.html Linux 的变量可分为两类:环境变量和本地变量 环境变量,或者称为全 ...

  5. LINUX环境变量(一)

    Linux 的变量可分为两类:环境变量和本地变量 环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了.Linux 的环境变量具有继承性,即子 ...

  6. linux环境变量 【转】

    Linux 的变量可分为两类:环境变量和本地变量 环境变量,或者称为全局变量,存在与所有的shell 中,在你登陆系统的时候就已经有了相应的系统定义的环境变量了.Linux 的环境变量具有继承性,即子 ...

  7. LINUX环境变量(二)

    一.Shell变量分为本地变量和环境变量. 1.本地变量:在用户现有运行的脚本中使用 a) 定义本地变量 格式: variable-name=value b) 显示本地变量 格式: set  c) 清 ...

  8. Java基础加强之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

  9. Java基础之多线程篇(线程创建与终止、互斥、通信、本地变量)

    线程创建与终止 线程创建 Thread类与Runnable接口的关系 public interface Runnable { public abstract void run(); } public ...

随机推荐

  1. 第8章 用SQL语句操作数据

    SQL的组成: (1)DML(Data Manipiation Language ,数据操作语言,)用来插入,修改和删除数据库中的数据,如:INSERT,UPDATE,DELETE等. (2)DDL( ...

  2. TCP/IP具体解释--TCP首部的TimeStamp时间戳选项

    TCP应该是以太网协议族中被应用最为广泛的协议之中的一个,这里就聊一聊TCP协议中的TimeStamp选项.这个选项是由RFC 1323引入的,该C建议提交于1992年.到今天已经足足有20个年头.只 ...

  3. 用CSS来画空心三角形的方法

    画这里三角形的方法: 用CSS来实现:整个弹框的ID是#favoriteOptionMenus,对于#favoriteOptionMenus这个元素设置:before和:after的样式,让:befo ...

  4. Ubuntu上Xilinx ARM交叉编译器安装

    1,Windows中下载交叉编译器 2,在ubuntu中创建zedboard目录,并将交叉编译器复制进来 3,将该交叉编译器设置成可执行程序 chmod  a+x  xilinx-2011.09-50 ...

  5. 【托业】【新托业TOEIC新题型真题】学习笔记8-题库五->P7

    ———————————————————单词———————————————————— minister 部长 construction contractor 施工方 commence 开始:着手 bac ...

  6. 微信和WeChat合并月活跃数达8.89亿,移动支付月活跃账户超过6亿

    3月22日,腾讯公布2016年年度业绩报告,微信和WeChat合并月活跃用户数达8.89亿,同比增长28%:2016年12月,腾讯移动支付的月活跃账户及日均支付交易笔数均超过6亿.腾讯主席兼首席执行官 ...

  7. unix下命令窗分屏工具

    运行 sudo apt-get install terminator 效果 新建分屏窗口:右键鼠标选择

  8. 20180323 DataTable增加DataRow方式优化

    1. 我开始开发程序时,很多问题考虑不周期,不断的在改进中 最开始我的写法,创建一个DataTable 的Columns,采用语句 dt2.Columns.Add("ID"); 这 ...

  9. 运维自动化ansible基础

    云计算三种服务架构 IAAS: 不提供OS  只购买硬件(网络,存储,计算) PAAS: 提供硬件和OS和开发和运行环境  只需要开发应用软件 SAAS: 提供 硬件 os 软件   相当于直接购买软 ...

  10. 【adaboost】周志华