一、什么是环境变量

环境变量是用来存储有关shell会话和工作环境的信息。这项特性用来在内存中存储数据,以便程序或shell中运行的脚本能够轻松访问到他们。这也是存储持久数据的一种简便方法。

1.1全局环境变量

全局环境变量对shell会话和所有生成的子shell都是可见的。

通过env或者printevn命令可以查看所有的全局变量

如果显示个别环境变量,可以使用printenv 变量名

显示个别环境变量,还可以使用echo $变量名

环境变量还可以作为变量命令行参数

1.2局部环境变量

局部环境变量是只能在定义他们的进程中可见的变量

二、设置用户定义变量

2.1设置局部用户定义变量

如上图所示,通过等号给环境变量赋值,值可以是数值或者字符串。

如果要给变量赋值一个含有空格的字符串,必须单引号或者双引号来界定字符串的首位,没有引号的话,bash shell会以为下一个词是另一个要执行的命令

建议:

系统定义的全局变量名称默认全是大写,在涉及到用户定义的局部变量时,坚持使用小写字母,这样可以避免重新定义系统环境变量可能带来的冲突。

2.2设置全局环境变量

在设置全局环境变量的进程所创建的子进程中,所有的变量都是可见的。创建全局环境变量的方法是先创建一个局部环境变量,然后再把它导出到全局环境中。

将局部环境变量导入到全局环境变量的时,通过export来实现,如上图所示,变量名称前不带$符号

三、删除环境变量

如上图所示,删除环境变量使用unset命令,unset后面的环境变量名称前不带$符号

如果在子进程中删除了一个全局环境变量,这只对子进程有效。该全局环境变量在子进程中依然可用。

四、默认的shell环境变量

HOME  # 当前用户的主目录PATH  # shell查找命令的目录列表,由冒号分隔BASHPID  # 当前BASH进程的PIDBASH  # 当前shell实例的全路径名HOSTFILE  # shell在补全主机名时的文件名称HOSTNAME  # 当前主机的名称PPID  # bash父进程的PIDPWD  # 当前工作目录RANDOM  # 返回一个0~32767的随机数SHELL  # bash shell的全路径名称

系统默认的shell环境变量还非常多,此处不一一列举

五、设置PATH环境变量

当在shell命令行中输入一个外部命令时,shell必须搜索系统来找到对应的程序,PATH环境变量定义了用于进行命令和程序查找的目录。

PATH环境变量的内容如下图所示:

上图输出中显示的多个可供shell用来查找命令的路径,路径之间用冒号隔开。

如果命令或者程序的位置没有包括在PATH变量中,那么如果不使用绝对路径的话,shell是没法找到的。

六、定位系统环境变量

登录到linux系统中,启动一个bash shell时,默认情况下bash会在几个文件中查找命令,这些文件叫做启动文件或者环境文件

bash检查的启动文件取决于启动bash shell的方式。启动bash shell有3种方式:

  • 登录时作为默认登录shell

  • 作为非登录shell的交互式shell

  • 作为运行脚本的非交互式shell

6.1登录shell

当登录linux系统时,bash shell会作为登录shell启动。登录shell会从5个不同的启动文件里面读取命令:

  • /etc/profile

  • $HOME/.bash_profile

  • $HOME/.bashrc

  • $HOME/.bash_login

  • $HOME/.profile

/etc/profile文件是系统默认的bash shell的主启动文件。系统上的每个用户登录时都会执行这个启动文件

剩下的启动文件都起着同样的一个作用:提供一个用户专属的启动文件来定义该用户所用到的所有的环境变量。

这四个环境变量都以点号开头,说明他们都是隐藏文件。shell会按照顺序,运行第一个找到的文件,余下的则被忽略。

七、数组变量

shell的环境变量可以使用数组,数组是能够存储多个值的变量。这些值可以单独引用,也可以作为整个数组来引用

数组中的值放在一对小括号中,调用时如果直接调用变量的名称,会获得第一个变量的名称

${变量名[n]}来获得数组中第n个元素

${变量名[@]}或者${变量名[*]}获得所有变量

${#变量名[@]}或者${#变量名[*]}获得数组个数

linux 环境变量_linux的环境变量相关推荐

  1. linux java 环境配置_Linux开发环境配置——java

    概述 效果图: 如果需要在Linux下进行JavaEE的开发,我们需要安装如下软件: 搭建JavaEE环境 1.安装jdk 原生的centos 7会自带jdk,但自带的openjdk不好用(例如jps ...

  2. weka的java环境配置_Linux(ubuntu)环境下配置weka

    下载java vm.在命令行输入 wget --no-cookie --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F" ...

  3. linux查看python环境变量_Linux中添加PYTHONPATH配置anaconda环境变量方法

    因为最近开发多智能体模型需要把自己写的环境打包import,环境是统一的,如果不加入环境变量,每次测一个算法都要把包作为附属脚本和算法脚本放一起非常麻烦.所以就想把这些写的环境加入到python的环境 ...

  4. linux设置环境变量_Linux怎么设置系统环境变量之export命令详解

    请关注本头条号,每天坚持更新原创干货技术文章. 如需学习视频,请在微信搜索公众号"智传网优"直接开始自助视频学习 1. Linux export命令简介 Linux export命 ...

  5. linux设置java环境变量_linux配置java环境变量

    一. 解压安装jdk 在shell终端下进入jdk-8u5-linux-x64.gz文件所在目录, 执行命令 tar zxvf jdk-8u5-linux-x64.gz 解压出一个目录 jdk1.8. ...

  6. linux修改mysql的环境变量_Linux环境变量配置全攻略

    Linux环境变量配置 在自定义安装软件的时候,经常需要配置环境变量,下面列举出各种对环境变量的配置方法. 下面所有例子的环境说明如下: 系统:Ubuntu 14.0 用户名:uusama 需要配置M ...

  7. 【Linux】Shell三类变量的作用域——linux shell “永久环境变量”、“临时环境变量”和普通变量之完全解读...

    2015-05-08 00:15 3896人阅读 评论(10) 收藏 举报 本文章已收录于: 分类: 软件开发进阶(419) 作者同类文章X Unix/Linux杂项(118) 作者同类文章X 版权声 ...

  8. Linux 执行文件 path,linux可执行文件添加到PATH环境变量的方法

    linux命令行下面执行某个命令的时候,首先保证该命令是否存在,若存在,但输入命令的时候若仍提示:command not found 这个时候就的查看PATH环境变量的设置了,当前命令是否存在于PAT ...

  9. linux为用户配置java环境变量

    一. 解压安装jdk  在shell终端下进入jdk-6u14-linux-i586.bin文件所在目录,  执行命令 ./jdk-6u14-linux-i586.bin 这时会出现一段协议,连继敲回 ...

  10. linux crontab环境变量,Linux下crontab内环境变量与Shell环境变量的关系【转】

    crontab,总是不会缺省的从用户profile文件中读取环境变量参数 经常导致在手工执行某个脚本时是成功的,但是到crontab中试图执行时就会报错. 解决办法如下: 方法一:在shell文件中获 ...

最新文章

  1. 拥有「人类智能」的全球首款有「思想」的机器人,活细胞培养的神经元
  2. 在Service中通过WindowManger添加View的方式来把UI界面显示出来
  3. linux kref详解
  4. 最早的电子计算机艾尔妮,这些看似没用的NPC 却是我们最早的回忆
  5. 机器手六维坐标怎么定义_机器人学——2.4-坐标系的旋转和运动增量
  6. python 注销一大段_Django框架用户注销功能实现方法分析
  7. eclipse里面配置热部署,tomcat配置
  8. 斯坦福大学博士后王鸿伟: 知识图谱辅助的个性化推荐系统
  9. 【转贴】ListView控件学习系列2-编辑ListView
  10. [转载]Oracle监听器安装与设置(2)
  11. oracle单行函数有哪些,oracle篇 之 单行函数
  12. Bit、Byte、kb、KB、MB、KiB、MiB各表示什么意思?
  13. 大数据新闻推送你怎么看_如何看待大数据精准推送,使人的视界越来越窄?
  14. 双显示器设置鼠标上下移动
  15. 真心推荐8个高质量Java学习网站,一起从入门到精通java语言,大厂java面试真题分享,建议码住!...
  16. 75佳精美的 CSS 网页设计作品欣赏(系列一)
  17. kaggle新手入门第一篇——Titanic
  18. 大数据学习环境搭建系列(二)虚拟机软件Vmware的安装
  19. 高精度算法求阶层详解
  20. ping6 之 unknown host 解决方法

热门文章

  1. 父子类中静态方法和属性实现
  2. Python return语句 函数返回值
  3. IOS Video Tool Box后台解码失败
  4. jQuery als.js 跑马灯
  5. 转发 eclipse 取消javascript 验证
  6. 偶然翻开旧日记本,发现了好多的情诗!!!!
  7. asp.net定时自动执行控制台程序
  8. .Net Remoting与Web Service
  9. Dubbo服务治理(一):限流策略
  10. 我不曾忘记的初心-大厂小厂