1. 环境变量

环境变量也称为全局变量,可以在创建他们的Shell及其派生出来的任意子进程Shell中使用,环境变量又可以分为自定义环境变量和bash内置的环境变量,环境变量可以在命令行中设置和创建,用户退出命令行时这些变量值就会丢失,想要永久保存环境变量,可写在文件中

全局文件为/etc/profile,对所有用户有效;用户文件为~/.bash_bash_profile,仅对指定的用户有效

局部变量
普通变量也可成为局部变量,只能在创建它们的Shell函数或Shell脚本中使用,普通变量一般由开发者在开发脚本程序时创建,

变量的查看

  1. 查看所有变量
    set命令输出所有的变量,包括全局变量和局部变量
 1  [root@king ~]# set2     APACHEERR=hello world3     BASH=/bin/bash4     BASH_ALIASES=()5     BASH_ARGC=()6     BASH_ARGV=()7     BASH_CMDS=()8     BASH_LINENO=()9     BASH_SOURCE=()
10     BASH_VERSINFO=([0]="4" [1]="1" [2]="2" [3]="1"
11     中间和结尾省略若干代码

2 查看环境变量
env命令只显示全局变量

1 [king@king~]$ env
2 HOSTNAME=king
3 SHELL=/bin/bash
  1. 查看所有的变量,函数,整数,和已经导出的变量
    declare命令输出所有的变量,函数,整数,和已经导出的变量
    set -o命令显示bashShell的所有参数配置信息

自定义环境变量

  1. 暂时设定环境变量
    如果想设置环境变量,就要给在给变量赋值后或在设置变量时使用export命令,export命令和declare命令的格式:
export 变量名=value
变量名=value ; export 变量名
declare - x 变量名=value

eg:定义环境变量并赋值的方法:

export NAME=qzlking
declare -x NAME=qzlking
NAME=qzlking ; exprot NAME

以上定义环境变量的方法都是暂时的,若想让环境变量永久生效,可以进行如下操作:

2 永久设定环境变量
a)用户环境变量配置

1 [root@king scripts]# ls /root/.bashrc
2 /root/.bashrc
3 [root@king scripts]# ls /root/.bash_profile
4 /root/.bash_profile

说明: 对于用户的环境变量设置,常见的是用户家目录下的.bashrc和.bash_profile

b)全局环境变量的配置

常见的全局环境变量配置文件,/etc/profile;/etc/bashrc;/etc/profile.d这三个配置文件,如果想要在登陆后初始化或者显示加载的内容,只需要把脚本文件放在/etc/profile.d文件下即可(不需要加执行权限)。

在Java环境中,自定义环境变量,通常放在/etc/profile全局环境变量里,

1 export JAVA_HOME=/application/jdk
2 export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
3 export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
4 export RESIN_HOME=/application/resin 

查看/取消环境变量
我们通常在工作中要查看一下环境变量中都配置了什么,需要做什么更改,所以我们就有了ehco或printf命令来打印查看环境变量。

$HOME:用户登录时进入的目录
$UID:当前用户的uid( 也就是用户的标识,相当于人的身份证)相当于id -u

1 [king@king ~]$ echo $HOME
2 /home/king
3 [king@king ~]$ echo $UID
4 300

我们可以用unset来消除本地变量和环境变量

1 [king@king ~]$ echo $USER
2 nane
3 [king@king ~]$ unset $USER
4 [king@king ~]$ echo  $USER  #<这里输出是个空行

小结:

变量名一定要大写,可以在自身的Shell及子Shell中使用,常用export来定义环境变量
执行enc默认可以显示所有的环境变量名称及对应的值
输出时用“$变量名”,取消用“unset 变量名”

登陆Shell读取环境变量文件的流程


用户登录系统后首先会加载/etc/profile全局环境变量文件,加载完后,执行/etc/profile.d目录下的脚本文件(如:系统的字符集设置/etc/sysconfigil8n),然后再运行$HOME/.bash_profile(用户环境变量文件),在这文件里会找$HOME/.bashrc(用户环境变量文件),有就执行,没有就不执行。再$HOME/.bashrc找/etc/bashrc(全局环境变量文件)有就执行,没有就不执行。如果希望用户的Shell不是登陆时启动的(如:手动敲下bash时启动或者远程ssh连接情况),非登陆Shell只会加载$HOME/.bashrc(用户环境变量文件),并会去找/etc/bashrc(全局环境变量文件)。即非登陆Shell想读到设置的环境变量,需要将变量设定等写入$HOME/.bashrc(用户环境变量文件)或etc/bashrc(全局环境变量文件)不是$HOME/.bash_profile或/etc/profile。

shell中的环境变量设置相关推荐

  1. osx中的环境变量设置

    osx中的环境变量设置 打开Terminal(终端) 输入:vi ~/.bash_profile 设置PATH:export PATH=/usr/local/mysql/bin:$PATH 输入::w ...

  2. oracle环境变量配置教程,oracle_window中oracle环境变量设置方法分享,window server中Oracle的环境变量设 - phpStudy...

    window中oracle环境变量设置方法分享 window server中Oracle的环境变量设置 1.右击"我的电脑"->选择"属性"->选择 ...

  3. linux shell 获取环境变量,bash shell中的环境变量

    环境变量--bash shell使用环境变量来存储系统相关数据,并允许将数据存储在内存中. 环境变量分为:全局环境变量 本地环境变量 目录全局环境变量 本地环境变量 设置全局环境变量 删除环境变量 P ...

  4. JAVA中配置环境变量设置方法大全

    JAVA中常用需要设置的三个环境变量: JAVA_HOME .CLASSPATH.PATH (一) 配置环境变量:(相对路径) 1. JAVA_HOME=x:\jdk1.6.0 JAVA_HOME 2 ...

  5. 怎么设置oracle变量环境变量,window中oracle环境变量设置方法分享

    window server中Oracle的环境变量设置 1.右击"我的电脑"->选择"属性"->选择"高级"->单击&qu ...

  6. shell脚本基础(环境变量、重定向、数学运算、退出脚本)

    一.使用环境变量 1.环境变量 所谓环境变量,就是用来存储有关shell会话和工作环境信息的特性,这项特性允许你在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到它们.这也是存储持久数据 ...

  7. linux环境配置以后生效,Linux中修改环境变量及生效方法

    Linux中修改环境变量及生效方法 在/etc/profile文件中添加变量[对所有用户生效(永久的)] 用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且 ...

  8. linux的环境变量设置

    linux下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户: 一:用于当前终端: 在当前终端中输入:export PATH=$PATH:<你的要加入的路径> ...

  9. Linux系统中Jena环境变量配置及使用

    前言:最近在使用jena开发知识图谱,总结一下最近的使用过程. 文末有 apache-jena-3.6.0,Apache-jen.a-fuseki-3.6.0以及d2rq-0.8.1tar 文件.因为 ...

最新文章

  1. php页面刷新$_session会变化,每次刷新页面都会生产新的session_id
  2. sql server management studio 查询的临时文件路径
  3. 中国大学mooc慕课python答案_中国大学MOOC(慕课)Python编程基础题目答案
  4. C++静态成员和静态成员函数
  5. 优化Hibernate所鼓励的7大措施
  6. JSF之经常使用注解
  7. html静态页面实现微信分享思路
  8. 8192 oracle,ORA-39095: 转储文件空间已耗尽: 无法分配 8192 字节
  9. 2018 Wannafly summer camp Day8--区间权值
  10. 云计算的概念 (搬运自common craft)
  11. Xftp连接Linux 虚拟机
  12. 傅里叶变换,拉普拉斯变换和小波变换
  13. 第五次作业:Excel制作英文课程表
  14. 浅析芝麻信用分征信体系
  15. 怎样自建邮件服务器,简单快速搭建邮件服务器
  16. java2实用教程第三版
  17. 安卓pdf阅读器_推荐一款手机PDF阅读器、编辑器xodo docs安卓版
  18. 英语单词复数到底读s还是z?
  19. 微信浏览器浏览,后台编辑器添加视频
  20. 工业互联网成为的智能制造核心驱动力

热门文章

  1. 笔记:APDrawingGAN: Generating Artistic Portrait Drawings From Face Photos With Hierarchical GANs
  2. 那些可爱到不行的句子
  3. java九阴真经_九阴真经Java
  4. 暴风集团发布2017年财报营收同比增长16.25%
  5. 计算机教育多元化,高校非计算机专业计算机教育多元化
  6. Krpano - XML文件所有标签中文说明
  7. sentence_transformers 语义搜索,语义相似度计算,图片内容理解,图片与文字匹配。
  8. rx6900xt显卡水冷版怎么样
  9. 【leetcode刷题】16.环形链表——Java版
  10. [Python] Python获取当前年月日时分秒