一、环境变量解释

环境变量是什么?

引用百度百科里面的解释:环境变量是操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。例如Windows系统中的path环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还可以到path中指定的路径去找。用户通过设置环境变量,来更好的运行进程。

为什么需要环境变量?

windows系统下,假如我们安装了某一款软件,安装结束后,在安装目录会生成一个该软件的.exe文件,双击该文件,我们就能启动软件。但是难道我们每次要运行该软件的时候都要先找到该.exe文件所在的路径,然后双击吗,显然是不可能的,因为我们根本不可能记住所有已安装软件的路径。 这时候就需要环境变量了。下来我们通过例子了解一下。

QQ举例

首先安装好QQ,我们不用桌面快捷方式打开它,用Windows的dos窗口打开,进入dos界面后,直接输入QQ回车发现:

你想要让系统运行一个程序,你首先得告诉它这个程序在哪。所以我们要将QQ的可执行文件位置告诉系统,也就是说将该文件路径给系统。

将此路径给系统后:

然后你的QQ就打开了;接着你关掉dos后重新进入,输入QQ发现,又是上面的问题,这就意味着你要从dos打开QQ的话,必须每次进入QQ.exe文件所在路径,每次都得给系统QQ.exe文件的绝对路径;

所以,就很麻烦,那怎么解决呢?一个一劳永逸的方法就是将QQ.exe的文件路径放在Path环境变量里面,以后要打开QQ就不用每次进入该路径了。如下图所示:

接下来打开dos输入QQ回车:

二、Linux下的环境变量解释及设置

同理,在Linux系统上的环境变量与Windows上的作用类似。在Linux系统,如果你下载并安装应用程序,很有可能在键入它的名称的时候出现 “command not found ” 的提示内容。 如果每次都到安装目录文件夹内,找到可执行文件来进行操作就太繁琐了, 这就需要设置path环境变量了。

Shell定义的环境变量

Shell在开始执行的时候就已经定义了一些与系统工作环境有关的变量,用户还可以重新定义这些变量。常用的shell环境变量有以下几种。

  • HOME:用于保存用户主目录的完全路径名。
  • PATH:用于保存用冒号分隔的目录路径名,shell将按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行。
  • SHELL:当前用户使用的Shell
  • UID:当前用户的UID
  • LOGNAME:当前用户的登录名
  • HOSTNAME:主机名称

查看环境变量

Linux中set 、env 和 export 都可以查看环境变量。

  • set<命令显示当前shell的变量,包括当前用户的变量,set主要用来设置sh的参数与选项
  • env命令显示当前用户的变量,env用来在构建的环境中运行命令
  • export命令显示当前导出成用户变量的shell变量

这里我们只用 export 命令举例来查看PATH值:

xxx@xxx:~$ export
declare -x CLUTTER_IM_MODULE="xim"
declare -x COMPIZ_CONFIG_PROFILE="ubuntu"
declare -x DBUS_SESSION_BUS_ADDRESS="unix:abstract=/tmp/dbus-RvyK9kjBBX"
declare -x DEFAULTS_PATH="/usr/share/gconf/ubuntu.default.path"
declare -x DESKTOP_SESSION="ubuntu"
declare -x DISPLAY=":0"
declare -x GDMSESSION="ubuntu"
declare -x GDM_LANG="en_US"
declare -x GNOME_DESKTOP_SESSION_ID="this-is-deprecated"
declare -x GNOME_KEYRING_CONTROL=""
declare -x GNOME_KEYRING_PID=""

export不加参数的时候,显示哪些变量被导出成了用户变量,因为一个shell自己的变量可以通过 export “导出”变成一个用户变量。

Linux下环境变量的设置

如果想将一个路径加入到 $PATH 中,可以有几种方法。比如我想将 /tmp/test 路径加入到 $PATH 变量中:

1、控制台中设置 (只对当前shell有效)

执行 export PATH=$PATH:/tmp/test 命令:

2、修改当前家目录下的 .bashrc 文件 (只对当前用户有效)

先执行 vim ~/.bashrc 命令,在最末尾加入下面内容,然后 source ~/.bashrc,使配置文件生效。

export PATH=$PATH:/tmp/test

3、修改/etc/bashrc 文件 (针对所有用户有效)

先执行 sudo vim /etc/profile 命令,在最末尾加入下面内容,然后 source /etc/profile,使配置文件生效。

export PATH=$PATH:/tmp/test

注:source命令通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。

参考:

为什么要配环境变量?path用来干什么?

Linux中环境变量的设置

环境变量解释以及在Linux下的环境变量设置的更多相关文章

  1. Linux 下三种方式设置环境变量

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

  2. hadoop搭建杂记:Linux下JDK环境变量的设置(三种配置环境变量的方法)

    Linux下JDK环境变量的设置(三种配置环境变量的方法) Linux下JDK环境变量的设置(三种配置环境变量的方法) ①修改/etc/profile文件 如果你的计算机仅仅作为开发使用时推荐使用这种 ...

  3. 【环境变量】Linux 下三种方式设置环境变量

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

  4. 【环境变量】Linux 下三种方式设置环境变量与获取环境变量

    1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似的错误. 2.那么什么是环境变 ...

  5. linux下配置环境变量方式

    linux下配置环境变量有多种方式,下面简述之 方式1.编辑 /etc/profile 文件,增加如下内容 JAVA_HOME=/usr/local/jdk1. export JAVA_HOME PA ...

  6. linux 下PATH环境变量

    环境变量简介 什么是环境变量呢?简要的说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件. 在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现&quo ...

  7. linux下jdk环境变量配置深度分析----解决环境变量不生效的问题

    1.linux下jdk环境变量配置 是否需要配置环境变量,主要看java -version 显示的版本是否为你期望的版本 1.1 不需要配置环境变量的情况 使用java -version查看,版本显示 ...

  8. linux下Java环境的配置

    linux下Java环境的配置 现在用linux的朋友越来越多了,前几天就有两个朋友问我linux下怎么配置java环境,我想还有很多朋友想了解学习这方面的东西,就写一个完全一点的linux java ...

  9. 记一次Linux下JavaWeb环境的搭建

    今天重装了腾讯云VPS的系统,那么几乎所有运行环境都要重新部署了.过程不难懂,但是也比较繁琐,这次就写下来,方便他人也方便自己日后参考参考. 我采用的是JDK+Tomcat的形式来进行JavaWeb初 ...

随机推荐

  1. 学习swift从青铜到王者之swift结构体和类08

    定义 // 定义类 class StudentC{ } // 定义结构体 struct StudentS{ } 定义存储属性 // 定义类 class StudentC{ var name:Strin ...

  2. 【转】ubuntu 下安装mongodb php 拓展的方法

    按照上面的方法安装成功之后,写一个 mongodb 的php测试脚本,用来测试是否可以 正确连接上mongodb ,并查询结果. 参考:http://php.net/manual/en/class.m ...

  3. pagePiling.js - 创建美丽的全屏滚动效果

    在线演示 在线演示 本地下载 全屏滚动效果是近期很流行的网页设计形式,带给用户良好的视觉和交互体验. pagePiling.js 这款jQuery插件能够帮助前端开发者轻松实现这样的效果.支持全部的主 ...

  4. 关于Android中物理按键不响应的可能的一个问题。

    今天在工作中犯了一个错误,写的视频播放器突然物理音量键就不起作用了. 一開始以为是自己定义的音量条把系统的物理音量条按键给屏蔽掉了. 删除自己定义的音量条还是不行,又怀疑是是加入了什么权限之类的.重复 ...

  5. 阿里云cenos 6.5 模板上安装 docker

    本章将介绍在阿里云的 Centos6.5 模板上安装 Docker 以及在 Ubuntu 14.04 模板上安装 Docker 的过程 Centos 6.5 模板上使用Docker 首先,通过 ssh ...

  6. PyTorch 60 分钟入门教程:数据并行处理

    可选择:数据并行处理(文末有完整代码下载) 作者:Sung Kim 和 Jenny Kang 在这个教程中,我们将学习如何用 DataParallel 来使用多 GPU. 通过 PyTorch 使用多 ...

  7. rabbitmq kafka storm

    rabbitmq:实时消息传递 kafka:消息的持久化 storm:使用拓扑逻辑进行

  8. c# 32位机和64位机 读取Excel内容到DataSet

    // ----------------------32位机 //注释说明 //ExclePath 为Excel路径 批号 是指Excel文件中某一列必填项 public static DataSet ...

  9. BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数

    BZOJ_4459_[Jsoi2013]丢番图_数学+分解质因数 Description 丢番图是亚历山大时期埃及著名的数学家.他是最早研究整数系数不定方程的数学家之一. 为了纪念他,这些方程一般被称 ...

  10. 【POJ 2152】 Fire

    [题目链接] 点击打开链接 [算法] 同样是树形DP,但是比较难,笔者做这题看了题解 令f[i][j]表示在以i为根的子树中 1.在以i为根的子树中建一些消防站 2.在节点j必须建一个消防站 3.以i ...