一、为什么要设置环境变量

1、环境变量能解决什么问题?

你是否经历过输入$python命令后,屏幕上打印出python:command not found的尴尬;每一次都要输入$/home/tools/python3.7.1/bin/python才能缓解,尴尬是缓解了,但是这样每天都要输入全路径,会更加的尴尬,本章学习的环境变量设置,刚好能解决这个问题,当我们在命令行输入一个命令时例如$python,linux就会现在当前目录查找名叫python的可执行文件,如果能找到则执行,如果不能找到则以此为路径进行寻找,如果还是不能找到,则在环境变量PATH代表的路径中寻找。能够找到则执行,若还是不能找到则报command not found;另外,我们可以设置DIR_NET为/cos4.0/tb/net,则可以使用DIR_NET/aaa.v代替/cos4.0/tb/net/aaa.v

2、查看环境变量的方法

a. 命令行输入$export (-p),可以查看所有的环境变量值,

b. $export  ENVNAME,可以定义新的环境变量,

c. $export  ENVNAME=7,可以定义新的环境变量,并为其赋值7,

d. $echo $PATH,可以查看某一个环境变量的值。

二、设置环境变量的值

(1)PATH环境变量的格式

编辑PATH声明,其格式为:PATH=$PATH:<PATH1>:<PATH2>:...:<PATHN>

我们可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登录时生效,如果想立即生效,则可以执行source .bash_profile

(2)添加PATH环境变量

export PATH=$PATH:路径

(3)永久添加PATH环境变量的方法

$vim  /etc/profile  在文档个的最后添加:export PATH=“$PATH:路径”,然后运行$source /etc/profile

(4)环境变量的调用顺序如下:

/etc/profile

为系统的每个用户设置环境信息和启动程序,当用户第一次登录时,该文件被执行,其配置对所有登录的用户都有效。

当被修改时,必须重启才会生效。英文描述:”System wide environment and startup programs, for login setup.”

/etc/environment

系统的环境变量,/etc/profile是所有用户的环境变量,前者与登录用户无关,后者与登录用户有关,当同一变量在两个文件里有冲突时,以用户环境为准。

/etc/bashrc

为每个运行 bash shell 的用户执行该文件,当 bash shell 打开时,该文件被执行,其配置对所有使用bash的用户打开的每个bash都有效。

当被修改后,不用重启只需要打开一个新的 bash 即可生效。英文描述:”System wide functions and aliases.”

~/.bash_profile

为当前用户设置专属的环境信息和启动程序,当用户登录时该文件执行一次。默认情况下,它用于设置环境变量,并执行当前用户的 .bashrc 文件。

理念类似于 /etc/profile,只不过只对当前用户有效,也需要重启才能生效。(注意:Centos7系统命名为.bash_profile,其他系统可能是.bash_login或.profile。)

~/.bashrc

为当前用户设置专属的 bash 信息,当每次打开新的shell时,该文件被执行。理念类似于/etc/bashrc,只不过只对当前用户有效,不需要重启只需要打开新的shell即可生效。

~/.bash_logout

为当前用户,每次退出bash shell时执行该文件,可以把一些清理工作的命令放进这个文件。

/etc/profile.d/

此文件夹里是除/etc/profile之外其他的”application-specific startup files”。英文描述为”The /etc/profile file sets the environment variables at startup of the Bash shell. The /etc/profile.d directory contains other scripts that contain application-specific startup files, which are also executed at startup time by the shell.”

同时,这些文件”are loaded via /etc/profile which makes them a part of the bash “profile” in the same way anyway.”

因此可以简单的理解为是/etc/profile的一部分,只不过按类别或功能拆分成若干个文件进行配置了(方便维护和理解)。

注意事项

  1. 以上需要重启才能生效的文件,其实可以通过source xxx暂时生效。

  2. 文件的执行顺序为:当登录Linux时,首先启动/etc/environment和/etc/profile,然后启动当前用户目录下的/.bash_profile,执行此文件时一般会调用/.bashrc文件,而执行/.bashrc时一般会调用/etc/bashrc,最后退出shell时,执行/.bash_logout。简单来说顺序为:

(登录时)/etc/environment –> /etc/profile(以及/etc/profile.d/里的文件) –> ~/.bash_profile –> (打开shell时)~/.bashrc –> /etc/bashrc –> (退出shell时)~/.bash_logout

(三)、清除环境变量

$ unset ENVNAME

$echo $ENVNAME

Linux中Brourne shell预留的环境变量名,这些变量名不作他途,通常在/etc/profile中建立这些环境变量:

1.PATH:指定命令的搜索路径

2.HOME:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)

3.HISTSIZE:指保存历史命令记录的条数。

4.LOGNAME:指当前用户的登录名,LOGNAME='WHOAMI';export LOGNAME。

5.HOSTNAME:指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。

6.SHELL:指当前用户用的是哪种Shell。

7.LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。

8.MAIL:指当前用户的邮件存放目录。

9.PS1:命令基本提示符,缺省对于root用户是#,对于普通用户是$;PS1="anystr";export PS1。

10.PS2:附属提示符,缺省是“>”,PS1用于执行多行命令的一个命令。

11.CDPATH:cd命令的搜索路径,一系列由冒号隔开的路径,设置了CDPATH时,当使用$cd 目录名,先搜索CDPATH,如果在CDPATH中能够找到,则此目录成为当前目录;$ CDPATH=:/home/dave/bin:/usr/local;export CDPATH    $ cd  apps

12.HOME: 一般为当前用户的home目录,但是可以修改;cd=cd $HOME

备注:可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,MyNewPrompt ”。

  # PS1="Hello,My NewPrompt"

注意:上述变量的名字并不固定,如HOSTNAME在某些Linux系统中可能设置成HOST

当然,我所列举的上述环境变量并非穷尽列出!

(四)linux的常用环境变量及设置的更多相关文章

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

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

  2. 学习鸟哥私房菜--linux bash 的环境变量ps1设置

    bash里边的变量ps1是用户平时的提示符,系统默认为[username@host 工作目录]$.关于ps1的相关介绍详见:http://www.cnblogs.com/starspace/archi ...

  3. linux的几个内核镜像格式Image 和 u-boot启动内核和文件系统时的一些环境变量的设置

    关于编译powerpc linux的几个Image参考原文 http://blog.sina.com.cn/s/blog_86a30b0c0100wfzt.html 转载▼   PowerPC架构 L ...

  4. Linux环境变量的设置和查看方法

    1. 显示环境变量HOME $ echo $HOME /home/redbooks 2. 设置一个新的环境变量hello $ export HELLO="Hello!" $ ech ...

  5. uboot环境变量(设置bootargs向linux内核传递正确的参数)

    这是我uboot的环境变量设置,在该设置下可以运行initram内核(从内存下载到nandflash再运行),但是运行nfs根文件系统的时候一直出错,各种错误.查看了很多资料后猜想应该是uboot传递 ...

  6. Linux下Jdk的安装和jdk环境变量的设置

    我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题.什么是环境变量?如何定制环境变量?我将在下面做一些介绍.一.什么是环境变量?Linux是一个多用户的操作系统.多用户意味着每个 ...

  7. Ubuntu Linux 环境变量PATH设置

    前俩天编译linux下rar解压软件的时候说找不到  /usr/local/linux 路径,在设定path变量的时候,忽然就想看看,path最原始的变量值是多少....(在环境变量文件中保存.... ...

  8. 转 Ubuntu Linux 环境变量PATH设置

    Ubuntu Linux系统环境变量配置文件: /etc/profile : 在登录时,操作系统定制用户环境时使用的第一个文件 ,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. ...

  9. Linux环境变量及其设置

    简介 环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或多个应用程序将使用到的信息.Linux是一个多用户的操作系统,每个用户登录系统时都会有一个专用的运行环境,通常情况下每个用户的默认的环 ...

随机推荐

  1. C语言基础知识:几种特殊的函数宏封装方式

    函数宏介绍 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销. 函数宏本质上为宏,可以直接进行定义,例如: #define INT ...

  2. 基于dubbo-config api编写provider,api

    不管是XML配置还是注解方式,最终都会转换成java api对应的配置对象. provider: import com.alibaba.dubbo.config.ApplicationConfig;i ...

  3. GitHub 访问不顺怎么办?在线等,急

    在日常的工作生活学习中 经常会遇到无法访问 GitHub.访问不稳定等等突发情况 这不,今天群里的朋友们又双叒叕遇到了问题-- 为方便用户从 GitHub 快速备份开源仓库,稳定访问,CODING 现 ...

  4. 区块链V1版本实现之四

    部分程序代码(添加区块): //添加区块 func (bc *BlockChain) AddBlock(data string) { //创建一个区块 //bc.Block的最后一个区块的Hash值就 ...

  5. JZOJ8月8日提高组反思

    JZOJ8月8日提高组反思 T1 一开始打了个暴力 后来突然觉得是不是可以构造答案 然后就奇奇怪怪的调了1h 结果呢 Re-- 估计还是没调完 T2 这这这 好熟悉 往0点连,然后最小生成树跑一遍 结 ...

  6. SQL优化之SQL 进阶技巧(下)

    上文( SQL优化之SQL 进阶技巧(上) )我们简述了 SQL 的一些进阶技巧,一些朋友觉得不过瘾,我们继续来下篇,再送你 10 个技巧 一. 使用延迟查询优化 limit [offset], [r ...

  7. Django使用联合主键

    今天闲着没事,突然想起一个以前遇到的一个小问题.一直忘了来验证自己的解决方案,所以今天特意来查询了些资料来验证下自己的想法.整理如下: 单张表内建立联合主键: class IotTemp(models ...

  8. Go微服务实践之增删改查

    从此篇文章开始,我们来陆续介绍 go-zero 开发一个项目所需要的组件和开发实践. 首先我们从 model 层开始,来说说go-zero 的API以及封装细节.首先 model 层连接的API集中在 ...

  9. Flutter开发实战笔记

    下载 https://flutter.cn/docs/get-started/install/macos#get-sdk 配置环境变量 export PATH="$PATH:[PATH_TO ...

  10. 第 3篇 Scrum 冲刺博客

    一.站立式会议 1.站立式会议照片 2.昨天已完成的工作 登录窗口的构建 3.今天计划完成的工作 ①帮助不会的同学连接数据库 ②登录识别模块 4.工作中遇到的困难 ①出现一些同学使用了不同种类的数据库 ...