linux中的环境
访问量:2283

一、简介

程序的运行离不开运行所需的环境,也可以理解为上下文。Linux环境有哪些呢?

1、按照生命周期来分

a、永久的:变量来源于相关的配置文件,永久生效。

b、临时的:变量来源于当前终端下声明环境变量,关闭Shell终端变量就会失效。

2、按照作用域来分

a、系统环境变量,又叫全局环境变量,作用范围是系统中所有用户。

系统环境变量,对于shell会话和所有生成的子shell,都是可见的。

b、用户环境变量,又叫局部环境变量,作用范围是特定的用户。

二、系统环境变量

我们可用使用envprintenv命令,来查看全局变量,如下:

printenv #展示所有的系统环境变量

printevn SHELL #查看特定的变量

当然,我们也可以直接通过变量名字来访问,比如访问shell,可用使用

echo $SHELL #访问shell

echo $HOME #访问当前家目录

四、常见的环境变量

变量
描述
SHELL
shell程序的名字
HOME用户家目录
LANG定义了字符集遗迹语言的编码方式
PATH

由冒号分开的目录列表,当你输入可执行程序名后,会搜索

这个目录列表。

PS1这个定义了你的shell 提示符的内容
PWD当前目录
TZ当前所在的时区
USER当前的用户名
OLD_PWD上一个工作目录

五、如何建立SHELL环境

当我们登录系统后,启动bash 程序,并且会读取一系列称为启动文件的配置脚本,这些文件定义了默认的可供所有用户共享的shell 环境。然后是读取更多位于我们自己家目录中的启动文件,这些启动文件定义了用户个人的shell 环境。精确的启动顺序依赖于要运行的shell 会话类型。有两种shell 会话类型:一个是登录shell 会话,另一个是非登录shell 会话。

1、登录shell 会话

文件配置
/etc/profile应用于所有用户的全局配置脚本
~/.bash_profile用户私有的启动文件,可以用来扩展或重写全局配置脚本中的设置。
~/.bash_login如果~/.bash_profile没有找到,bash会读取这个文件。
~/.profile如果~/.bash_profile和~/.bash_login都没有找到,bash会读取这个文件。

2、非登录shell 会话

配置配置
/etc/bash.bashrc应用于所有用户的全局配置文件
~/.bashrc用户私有的配置文件,可以用来扩展或重写全局配置脚本中的设置

除了读取以上启动文件之外,非登录shell 会话也会继承它们父进程的环境设置,通常是一个登录shell。