linux环境变量配置

linux环境变量配置,第1张

Shell变量有局部变量、环境变量之分。局部变量就是指在某个Shell中生效的变量,只在此次登录中有效。环境变量通常又称“全局变量”,虽然在Shell中变量默认就是全局的,但是为了让子Shall继承当前Shell的变量,需要使用export内建命令将其导出为环境变量。

按变量的生存周期划分:

永久的:需要修改配置文件,变量永久生效。

临时的:使用export命令声明即可,变量在关闭shell时失效。

在配置永久的环境变量时,又可以按照作用范围分为:

用户环境变量

系统环境变量。

系统环境变量对所有系统用户都有效,用户环境变量仅仅对当前的用户有效。

全局(公有)配置,不管是哪个用户,登录时都会读取该文件。

它也是全局(公有)的 bash执行时,不管是何种方式,都会读取此文件。

不要轻易修改此文件

用户环境变量通常被存储在下面的文件中:

若bash是以login方式执行时,读取 ~/.bash_profile ,若它不存在,则读取 ~/.bash_login ,若前两者不存在,读取 ~/.profile 。

若bash是以login方式执行时,读取 ~/.bash_profile ,若它不存,则读取 ~/.bash_login ,若前两者不存在,读取 ~/.profile 。

只有bash是以login形式执行时,才会读取.bash_profile,Unbutu默认没有此文件,可新建。 通常该配置文件还会配置成去读取 ~/.bashrc 。

当bash是以non-login形式执行时,读取此文件。若是以login形式执行,则不会读取此文件。

~/.bash_profile 是交互式、login 方式进入 bash 运行的

~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

如想将一个路径加入到环境变量(例如$PATH)中,可以像下面这样做(修改/etc/profile):

你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:

bash会在用户登录时,读取下列四个环境配置文件:

全局环境变量设置文件: /etc/profile 、 /etc/bashrc 。 用户环境变量设置文件: ~/.bash_profile 、 ~/.bashrc 。

读取顺序:① /etc/profile 、② ~/.bash_profile 、③ ~/.bashrc 、④ /etc/bashrc 。

2 .bashrc 和 .bash_profile 的区别

.bash_profile 会用在登陆shell, .bashrc 使用在交互式非登陆 shell 。简单说来,它们的区别主要是 .bash_profile 是在你每次登录的时候执行的; .bashrc 是在你新开了一个命令行窗口时执行的。

当通过控制台进行登录(输入用户名和密码):在初始化命令行提示符的时候会执行.bash_profile 来配置你的shell环境。但是如果已经登录到机器,在Gnome或者是KDE也开了一个新的终端窗口(xterm),这时,.bashrc会在窗口命令行提示符出现前被执行。当你在终端敲入/bin/bash时.bashrc也会在这个新的bash实例启动的时候执行。

所以对于我自己,我写了一个 .pathrc 文件

然后在 .bashrc , .zshrc , .bash_profile , /etc/profile 中都加了

下面是 .pathrc 文件

现在,当你从控制台登录机器的时候,.bashrc就会被执行。

四、常用的环境变量

BASH Bash Shell的全路径

CDPATH 用于快速进入某个目录。

PATH 决定了shell将到哪些目录中寻找命令或程序

HOME 当前用户主目录

HISTSIZE 历史记录数

LOGNAME 当前用户的登录名

HOSTNAME 指主机的名称

SHELL 当前用户Shell类型

LANGUGE 语言相关的环境变量,多语言可以修改此环境变量

MAIL 当前用户的邮件存放目录

PS1 基本提示符,对于root用户是#,对于普通用户是$

Reference

[1] /etc/profile、/etc/bashrc、 /.bash_profile、 /.bashrc

http://blog.chinaunix.net/uid-26435987-id-3400127.html

[2] Linux如何修改env看到的环境变量? .bashrc和.bash_profile区别

http://blog.csdn.net/xifeijian/article/details/13355031

[3] linux环境变量,bashrc与bashprofile

http://blog.sina.com.cn/s/blog_43e5ad4e0101ei43.html

1、系统位置,/etc目录下的bashrc、profile、environment三个文件

2、用户目录(root或普通用户)下的.bashrc、.bash_profile两个文件,注意这两个文件前面都有点,是隐藏文件。

按变量的周期划为永久变量和临时性变量2种:

永久变量:通过修改配置文件,配置之后变量永久生效。

临时性变量:使用命令如export等命令设置,设置之后马上生效。当关闭shell的时候失效(这种主要用于测试比较多)。

按照影响范围分为用户变量和系统变量2种:

用户变量(局部变量):修改的设置只对某个用户的路径或执行起作用;

系统变量(全局变量):影响范围是整个系统。

export命令显示当前系统定义的所有环境变量,运行返回结果如下:

echo $PATH命令输出当前的PATH环境变量的值,运行返回结果如下:

直接用export命令修改PATH值 (重启终端后配置失效)

export PATH=$PATH:/home/sphc/software/bin

该文件为当前用户配置文件,修改后,作用于当前用户的环境变量。

该文件为当前用户配置文件,修改后,作用于当前用户的环境变量。

/etc/bashrc为系统环境配置文件,需要管理员权限(如root)或者对该文件的写入权限,修改后,作用于所有用户。

/etc/profile为系统全局配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。

/etc/environment为系统环境配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。

环境变量(environment variables)一般是指在 *** 作系统中用来指定 *** 作系统运行环境的一些参数,这些参数会对系统行为产生影响。

比如常用的PATH环境变量,当要求系统运行一个程序而没有告诉它程序所在的完整路径时,系统除了在当前目录下面寻找此程序外,还会到PATH中指定的路径去找。你可以在终端使用printenv PATH/echo $PATH查看当前PATH变量的值。

Linux系统下修改/自定义环境变量的方法通常分为两类:临时修改和永久性修改。下面分别介绍两种修改环境变量的方法。在这里以修改linux系统下的PATH环境变量(该环境变量保存了linux系统下所有可执行的程序的目录,linux系统执行某个可执行程序时,会以该环境变量的值(路径)去寻找可执行的程序名)为例进行举例。

PATH环境变量:该环境变量保存了linux系统下所有可执行的程序的目录,linux系统执行某个可执行程序时,会以该环境变量的值(路径)去寻找可执行的程序名,如果找到,则可以执行,如果找不到则会提示:无法找到××命令的错误。

1、临时修改/自定义环境变量

(1)临时自定义环境变量。

注意,系统默认的环境变量名称一般为大写,自定义的环境变量名称一般为小写,这样是为了避免命名上的冲突。

自定义临时环境变量时,有两种办法,一种是在terminal终端命令行直接定义,如下:

在这里插入图片描述

注意,此时自定义的my环境变量的作用范围仅限于当前shell(此时定义的my变量实际上是局部变量),在当前shell的子shell中无法寻找到该自定义变量。直接在其子shell中无法直接使用它。要想在其子shell中使用,必须用export命令来导出它为全局变量。

在这里插入图片描述

如上图所示,在定义my环境变量的子shell中无法识别到my环境变量。

当定义完my环境变量后,利用export命令将其转化为全局变量:

在这里插入图片描述

可以看到,使用export将my环境变量导出成全局变量后,在其子shell中也可以识别到。

**注意!!!!**使用export导出的my环境变量仅仅适用于当前的shell及其衍生shell中,退出当前shell后,my变量将不复存在。所以,这也是该方法被称为临时定义变量的原因。

自定义临时环境变量时,除了在terminal终端命令行直接定义外,还可以使用shell脚本的方法来事先定义好一个环境变量。并用source命令(或者 . 命令)(这么做是因为使用这两个命令是在当前shell中激活该脚本,不会产生子shell)在使用该变量的shell中激活该shell脚本即可。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8799124.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-21
下一篇 2023-04-21

发表评论

登录后才能评论

评论列表(0条)

保存