引言

我一直以来都在用Ubuntu系统,每当我装一些软件的时候,我都会本能的Google去看怎么配置这些烦人的环境变量。有的时候,还会出现很多的错误。因为我不明白到底在配置什么,我只是本能的Copy到我的一些文件中,它就可以工作了,但是我不明白其原理,所以出错了以后我会花很多时间来重新Google,甚至把先前所有的东西都删掉,因为我也不知道具体哪里出错了。因此,我决定学习一下,把这个东西搞定。

环境变量

我为环境变量画了一张思维导图,我会对照上面的序号解释并例举一些例子。

1-5 设置环境变量

设置局部环境变量:用等号给环境变量赋值,值可以是数字或字符串。

$ user=xlinsist## 设置含有空格的字符串时,必须加单引号
$ dog='i love xlinsist blog'

设置全局环境变量:用等号给环境变量赋值,值可以是数字或字符串。

## 设置过程与局部变量类似,只不过我们需要加export命令
$ dog='i love xlinsist blog'
$ export dog
##上面的dog就为全局变量了

警告:在环境变量名称、等号和值之间没有空格。

3-7 设置环境变量

显示环境变量非常简单,无论是局部环境变量和全局环境变量都用这种方法就行。但是,这会涉及到可见性的问题,现在先不用管它,下面我会解释的。

## 显示上面设置的dog环境变量
$ echo $dog

4-8 环境变量的可见性

全局环境变量可以在定义它们的进程创建的子进程中使用。而局部环境变量只能在定义它们的进程中使用。

如果我将上面的human设置为全局环境变量,那么启动的新bash shell中就会存在human环境变量。

2-6 删除环境变量

## 删除环境变量
$ unset human

当我们在删除全局环境变量时,如果是在子进程中删除了环境变量,那么父进程中的全局环境变量依然有效。

启动文件

当我安装Java的时候,我总会把bin目录写入到几个文件当中,现在,让我们看一看这些文件到底起什么样的作用。

当我们在登录Linux系统启动bash shell时,默认情况下bash在几个文件中查找命令。这些文件称作启动文件。bash shell会依次处理下面几个文件:

  1. /etc/profile
  2. $HOME/.bash_profile
  3. $HOME/.bash_login
  4. $HOME/.profile

系统上的每个用户在登录时都会执行/etc/profile这个文件,你可以打开你自己系统上的这个文件,这个文件中会执行一些脚本并且导入一些全局环境变量供我们使用,例如PATH,你可以自己显示一下PATH环境变量。

由于我们现在的操作系统都集成了桌面环境,你可以认为输入你的开机密码后就进入bash shell从而会执行/etc/profile这个文件。如果你觉得没什么不同的话,你可以Ctrl + Alt + F1,就会进入一个bash shell界面,你这时候可以输入用户名和密码登录到你的系统。我的操作系统Ubuntu 14.04的,具体的快捷键可能不同。

大多数的Linux发行版本可能用上面剩下的三个文件中的一个,我的Ubuntu系统中用的是$HOME/.profile。这些文件的目的只不过是为每个用户定制自己需求。和/etc/profile没什么不同。

默认的环境变量

Linux中常用的一些变量

图片来源:http://www.cyberciti.biz/faq/linux-list-all-environment-variables-env-command/

上面的这些变量,也就是当你登录系统时,启动文件已经帮你加载好的变量。

这里我要说一下,PATH变量很重要。它值的含义是命令的搜索路径。每个路径用冒号分开,shell从这些路径中寻找可执行的命令。比如,我把java的bin目录赋值给PATH环境变量,我就可以在任何目录中执行Java命令了。

轻松搞定Linux环境变量相关推荐

  1. 【Shell脚本进阶】从此彻底搞懂 Linux 环境变量及 Shell 启动文件 /etc/profile 、 ~/.bash_profile 和 ~/.bashrc(建议收藏)

    文章目录 1. 环境变量详解 1.1 全局环境变量 1.2 本地环境变量 1.3 自定义环境变量 1.3.1 自定义本地环境变量 1.3.2 自定义全局环境变量 1.4 删除环境变量 2. 启动文件详 ...

  2. 一分钟搞定Java环境变量配置

    对于学Java的人来说,成功配置环境变量是第一步,因为后期不论 你做什么工作,会发现都需要这些,接下来介绍如何安装与配置,我按照jdk1.6来说明,其他一致. 下载官网 首先将jdk安装好后进行配置. ...

  3. 一文搞定Linux环境下线程编程,这些东西老师也不会教你。(史上最详细的线程攻略)

    一.线程的概念 1.1 什么是线程 线程是一个实体,是CPU调度和分派的基本单元,有时我们也可以称它为轻量级的进程.每个线程都包含有表示执行环境所必须的信息,其中包括标识线程 的线程ID.一组寄存器值 ...

  4. Ubuntu:Ubuntu系统下在pycharm软件内配置anaconda环境(一张图轻松搞定!)

    Ubuntu:Ubuntu系统下在pycharm软件内配置anaconda环境(一张图轻松搞定!) 目录 Ubuntu系统下在pycharm软件内配置anaconda环境 Ubuntu系统下在pych ...

  5. 轻松搞定javascript变量(闭包,预解析机制,变量在内存的分配 )

    变量:  存储数据的容器 1.声明        var 2.作用域全局变量. 局部变量. 闭包(相对的全局变量): 3.类型a.基本类型(undefined, null, boolean, numb ...

  6. linux shadow文件*,Linux怎么查找shadow文件进入这样几步轻松搞定

    摘要 腾兴网为您分享:Linux怎么查找shadow文件进入这样几步轻松搞定,作业大师,中英翻译,一直播,携程抢票等软件知识,以及倩女,控制时间,蓝墨云,绿豆刷机神器,头影测量软件,正当防卫33dm, ...

  7. linux如何解除密码锁屏图案大全,手机锁屏图案(锁屏密码)忘记了怎么办?四种方法帮你轻松搞定...

    很多朋友可能为了追求新奇,对手机的各种功能都比较好奇,都想试一试.对于图案解锁这个功能也可能比较喜欢,但会不会就是刚刚设置完了就忘记了呢?那么手机锁屏图案(锁屏密码)忘记了怎么办?本文将为大家介绍四种 ...

  8. z7D3 安装linux,还在为装系统烦恼?战神Z7-SL7D3为你轻松搞定

    原标题:还在为装系统烦恼?战神Z7-SL7D3为你轻松搞定 一般情况下,如果更换电脑或是电脑系统出现问题,按照一般路径,都需要采用重装系统的方法来解决.虽然重装系统会让电脑的性能散发出全新的活力,可是 ...

  9. 10行代码让你轻松搞定对象检测

    摘要:  十行代码轻松搞定对象检测?快来看看如何使用ImageAI. 计算机视觉是人工智能领域中最重要的一个分支.计算机视觉是一门能够识别和理解图像及其场景的计算机软件系统的科学.计算机视觉包括图像识 ...

最新文章

  1. 另类设计:12个基于桌面视图的网页设计作品
  2. Linux系统简介 、 安装Linux系统 、 RHEL6基本操作
  3. autorunner测试java代码,AutoRunner自动化测试工具介绍
  4. 从0到1 构建实时音视频引擎
  5. 创建一个存储函数,返回指定员工的姓名,薪水和年收入
  6. Flutter 核心原理与混合开发模式
  7. form.html,HTML表单form
  8. Linux的实际操作:文件目录类的实用指令(echo head tail)
  9. web项目部署详细步骤
  10. 关于sql安装,升级,卸载时需要重启的解决方法
  11. php如何安装,php如何安装freetype
  12. HDOJ--2151--worm
  13. vi修改文件格式编码(从dos改为unix)
  14. 【vant】爬坑引用本地图片
  15. ubuntu 安装osx 主题 转自linux公社
  16. 使用css3实现一个超浪漫的新年倒计时
  17. 3.acwing3373. 进制转换
  18. 全志平台Android系统wifi模组rtl8188eu移植调试记录
  19. 数据解读 | 异地恋分手原因,它排第一
  20. python教学小说05 宽容之心,是容纳世界的神奇变量。

热门文章

  1. 杰克 - 鬼马海盗主角加勒比海盗系列的
  2. windows设置有线访问内网,无线访问外网
  3. mysql 字符串的hash函数_经典字符串Hash函数介绍 - yanjun_1982的专栏 - CSDNBlog
  4. mysql grant命令详解_MySQL授权命令grant的使用方法详解
  5. 未能加载文件或程序集 System Drawing Version 4 0 0 0 Culture neutral
  6. Cuckoo Sandbox
  7. Matlab:生成日期与时间的序列
  8. 频域分析中的三频段理论
  9. 欧科云链荣获人民网匠心技术奖,科技创新共造企业发展“强引擎”
  10. Ansj中文分词说明