Linux环境变量详解

牛津大学(英国)校训:“上主是我的亮光。”


环境变量,对很多开发小朋友来讲,应该很是熟悉,在刚开始学习Java时,安装jdk就要设置环境变量。在这里说个小插曲,认识一个朋友在开始学习Java的时候硬是被环境变量设置折腾了三天,但java -version还是不成功,无奈直接弃Java而去。。。


环境变量,相当于特定的信息标识,类似快捷方式,包含一个或多个应用程序用到的信息。

一 常用的环境变量命令

1/echo

用于显示某个环境变量的值;

如:echo $JAVA_HOME ,输出:/usr/local/webserver/jdk1.8.0_91

2/env

用于显示本系统所有的环境变量,包括系统级及人为设置的;

3/set/unset

set:设置shell选项或列出shell变量

unset:清除变量

如:设置一个变量 rmf='rm -rf' ,用set|grep rmf即可查看;

unset rmf,则是清除rmf的值,rmf尚在,清除整个则用unset $rmf.

4/export 

如:export xwz_home='/data/work/jingdata-paas-workflow/'

则echo $xwz_home查看

注意,export设置的只是临时环境变量,当你切换用户或退出时则自动清除。

二 常用的环境变量

1/HOME

当前用户的根目录

如:echo $HOME  输出:/root

2/LOGNAME

当前登录用户名

如:echo $LOGNAME  输出:root

3/MAIL

如:echo $MAIL 输出:/var/spool/mail/root

4/PATH

列出当前的环境变量

如:echo $PATH 

输出:/usr/local/webserver/jdk1.8.0_91/bin:/usr/local/webserver/jdk1.8.0_91/jre/bin

5/HOSTNAME

主机名

如:echo $HOSTNAME 输出:ali-smb-saas-test01

6/PWD

当前所在目录

如:echo $PWD 输出:/data

7/SHELL

shell命令

如:echo $SHELL 输出:/bin/bash

8/TERM

终端模拟器

如:echo $TERM 输出:xterm

9/LANG

语言编码

如:echo $LANG 输出:en_US.UTF-8

10/PS1

终端模拟器

如:echo $PS1 输出:[\u@\h \W]\$

其中,\u:当前用户名;\h:主机名;\W:当前所在目录的最后一个目录;$:提示符。


三 环境变量文件

在Linux中一切皆文件,自然环境变量持久化也是存储在文件中的,系统中有很多记载环境变量的文件,它们是按照一定顺序被系统读入的。

1 /etc/profile (所有用户)

指每个用户登录时都会获取系统的环境变量,只在登陆的时候获取一次;当用户第一次登录时该文件被执行,并从/ect/profile.d目录的配置文件中搜索shell的设置。

2 /ect/bashrc (所有用户)

在执行完/etc/profile内容后,如果用户运行bash shell的话,则就执行这个文件。当每次一个新的bash shell被打开时,该文件被读取。所以,如果想每打开一个bash都执行某些操作,就可以在这个文件里面设置。

3 ~/.bash_profile(单个用户)

每个用户都可以使用该文件输入自己专用的shell信息;只在登陆的时候执行一次。默认情况下,设置一些环境变量,执行用户的.bashrc文件。单个用户对于此文件的修改只会影响到自身以后的每一次登录。

4 ~/.bashrc(单个用户)

该文件只包含专用于你的bash信息,当你登录时以及每次打开新的shell时,该文件就会自动被读取。

5 ~/.bash_logout(单个用户)

每次在退出shell的时候会执行该文件;它提供了定制用户环境的功能,比如删除账号内的临时文件等命令就可以放在bash_logout文件内。


特此声明:

分享文章有完整的知识架构图,将从以下几个方面系统展开:

1 基础(Linux/Spring boot/并发)

2 性能调优(jvm/tomcat/mysql)

3 高并发分布式

4 微服务体系

如果您觉得文章不错,请关注阿伦故事,您的支持是我坚持的莫大动力,在此受小弟一拜!


每篇福利:

你可能感兴趣的:(Linux环境变量详解)