当前位置:首页 » 操作系统 » linux中的环境变量

linux中的环境变量

发布时间: 2025-03-11 14:24:08

linux中环境变量配置文件详解

环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的 Shell。对于UNIX,可能是CShelll。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。下面通过几个实例来说明。

一.系统级:
1)etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.并从/etc/profile.d目录的配置文件中搜集shell的设置.
注:在这里我们设定是为所有用户可使用的全局变量。

2)/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.

二.用户级(这些文件处于家目录下):

1)~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
注:~在LINUX下面是代表HOME这个变量的。
另外在不同的LINUX操作系统下,这个文件可能是不同的,可能是~/.bash_profile; ~/.bash_login或 ~/.profile其中的一种或几种,如果存在几种的话,那么执行的顺序便是:~/.bash_profile、 ~/.bash_login、 ~/.profile。比如我用的是Ubuntu,我的用户文件夹下默认的就只有~/.profile文件。

2)~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该文件被读取.
(注:这个文件是 .开头的,所以在文件夹中被隐藏了)
那么我们如何添加自己定义的环境变量呢?
用记事本打开这个文件,然后在里面最后写上:
xiaokang=kangkang
然后保存,这样每次打开一个新的terminal的时候,我们这个变量就生效了。记住,如果你已经打开一个terminal,然后你修改了这个文件,那么在这个terminal下是不会生效的。一般情况用户最好在这里进行修改,但是有时候会覆盖父级的变量,比如PATH是ROOT设定的,但是如果你在这个文件里面写了PATH=xx,那么将来所有的PATH都成了xx了,所以我们应该在这个文件中写为:
PATH=$PATH:xx
这样就把原来的和你自己的一起加上了。而且注意在LINUX系统下用:分割表示并列,而不是windo的;
3和4都是在用户目录下的,他们唯一的不同是: .bash_profile只能在登录的时候启动一次。在我的Ubuntu里面这个3文件似乎没有。

3)~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.
另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是/"父子/"关系.

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

通过上面的文件介绍,就能明白我们需要设置环境变量的时候,需要修改什么文件,要想对所有的用户生效,那就需要设置系统级的环境变量。反之,需要修改用户级的文件(最好是修改.profile文件,理由上面已经讲了)。

另外,总结一下他们的执行方式:
当你登录并且登录shell是bash时,bash首先执行/etc/profile文件中的命令(如果该文件存在),然后它顺序寻找~ /.bash_profile,~/.bash_login或~/.profile文件,并执行找到的第一个可读文件中的命令.当登录bash退出时,它 将执行~/.bash_logout文件中的命令.
当启动一个交互的bash时,它将执行~/.bashrc文件中的命令(如果该文件存在并且可读).当非交互地启动以运行一个shell脚本时,bash将查找bash_env环境变量,确定执行文件的名称.

② linux环境变量怎么配置

Linux环境变量配置相关命令及例程:
1. 显示环境变量HOME
$ echo $HOME
/home/redbooks
2. 设置一个新的环境变量hello
$ export HELLO="Hello!"
$ echo $HELLO
Hello!
3. 使用env命令显示所有的环境变量
$ env
HOSTNAME=redbooks.safe.org
PVM_RSH=/usr/bin/rsh
Shell=/bin/bash
TERM=xterm
HISTSIZE=1000
...

4. 使用set命令显示所有本地定义的Shell变量
$ set
BASH=/bin/bash
BASH_VERSINFO=([0]="2"[1]="05b"[2]="0"[3]="1"[4]="release"[5]="i386-redhat-linux-gnu")
BASH_VERSION='2.05b.0(1)-release'
_COLORS=/etc/DIR_COLORS.xterm
COLUMNS=80
DIRSTACK=()
DISPLAY=:0.0
...

5. 使用unset命令来清除环境变量
set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。
示例如下:
$ export TEST="Test..." #增加一个环境变量TEST
$ env|grep TEST #此命令有输入,证明环境变量TEST已经存在了
TEST=Test...
$ unset $TEST #删除环境变量TEST
$ env|grep TEST #此命令没有输出,证明环境变量TEST已经存在了
6. 使用readonly命令设置只读变量
如果使用了readonly命令的话,变量就不可以被修改或清除了。
示例如下:
$ export TEST="Test..." #增加一个环境变量TEST
$ readonly TEST #将环境变量TEST设为只读
$ unset TEST #会发现此变量不能被删除
-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New" #会发现此也变量不能被修改
-bash: TEST: readonly variable

7. 环境变量的设置位于/etc/profile文件
如果需要增加新的环境变量可以添加以下行:
export path=$path:/path1:/path2:/pathN

8. Linux的变量种类:
按变量的生存周期来划分,Linux变量可分为两类:
永久的:需要修改配置文件,变量永久生效。
临时的:使用export命令声明即可,变量在关闭shell时失效。

9. 设置变量的三种方法:
在/etc/profile文件中添加变量【对所有用户生效(永久的)】
用VI在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。
例如:编辑/etc/profile文件,添加CLASSPATH变量
# vi /etc/profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行# source /etc/profile,不然只能在下次重进此用户时生效。
在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】
用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。
例如:编辑guok用户目录(/home/guok)下的.bash_profile
$ vi /home/guok/.bash_profile
添加如下内容:
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib
注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile,不然只能在下次重进此用户时生效。
直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】
在shell的命令行下直接使用[export 变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

10. 环境变量的查看:
使用echo命令查看单个环境变量。例如:
echo $PATH
使用env查看所有环境变量。例如:
env
使用set查看所有本地定义的环境变量。
unset可以删除指定的环境变量。

11. 常用的环境变量:
PATH 决定了shell将到哪些目录中寻找命令或程序
HOME 当前用户主目录
HISTSIZE 历史记录数
LOGNAME 当前用户的登录名
HOSTNAME 指主机的名称
SHELL 当前用户Shell类型
LANGE 语言相关的环境变量,多语言可以修改此环境变量
MAIL 当前用户的邮件存放目录
PS1 基本提示符,对于root用户是#,对于普通用户是$

③ Linux环境变量设置

在Linux环境中,设置环境变量可以通过修改以下几个文件来实现,每个文件的作用范围和生效时机有所不同:

  1. /etc/profile

    • 作用:为系统的每个用户设置环境信息。
    • 生效时机:当用户第一次登录时执行。
    • 修改生效:修改后需要重启才能生效,修改对每个用户都生效。
  2. /etc/bashrc

    • 作用:为每一个运行bash shell的用户执行此文件。
    • 生效时机:当bash shell被打开时读取。
    • 修改生效:修改后重新打开一个bash即可生效,无需重启。修改对所有使用bash的用户都生效。
  3. ~/.bash_profile

    • 作用:每个用户专用的shell信息文件。
    • 生效时机:当用户登录时执行,仅执行一次。
    • 修改生效:修改后需要重启才能生效。修改只对当前用户生效。
  4. ~/.bashrc

    • 作用:包含专用于用户的bash shell信息。
    • 生效时机:当登录时以及每次打开新的shell时读取。
    • 修改生效:修改后重新打开一个bash即可生效,无需重启。修改只对当前用户新打开的bash生效。

重点总结: 如果需要对所有用户生效,可以修改/etc/profile或/etc/bashrc。 如果只需要对当前用户生效,可以修改~/.bash_profile或~/.bashrc。 /etc/profile和~/.bash_profile修改后需要重启或重新登录才能生效。 /etc/bashrc和~/.bashrc修改后重新打开一个bash即可生效。

④ linux设置变量

在Linux中设置变量的方法主要有以下几种:

  1. 设置环境变量

    • 使用export命令来设置。例如:export MY_VARIABLE=value。
    • 环境变量在系统范围内有效,可以在所有进程中访问。
  2. 设置局部变量

    • 使用赋值运算符来设置。例如:my_variable=value。
    • 局部变量的作用域仅限于当前脚本或命令行上下文。
  3. 使用declare命令设置变量

    • declare命令可用于声明变量和设置其属性,如类型、可见性等。
    • 例如,声明一个只读变量:declare r my_variable="value"。
    • 你可以使用相同的方式设置其他属性,如默认值、作用域等。

注意事项: 具体的设置方法可能因Linux发行版和shell环境而有所不同。 上述方法适用于大多数常见的Linux发行版和默认的shell环境。 如果你使用的是其他特定的shell或发行版,请参考相应的文档或手册以获取准确的方法。

热点内容
安卓之父的手机有什么 发布:2025-03-12 09:12:11 浏览:966
下载电子普票让写服务器地址 发布:2025-03-12 09:10:43 浏览:737
php过滤所有html标签 发布:2025-03-12 09:09:22 浏览:841
家中装修电表箱内开关如何配置 发布:2025-03-12 09:09:13 浏览:665
内网外网同时访问 发布:2025-03-12 08:53:13 浏览:747
安卓手机为什么卡顿解决方法 发布:2025-03-12 08:46:34 浏览:394
王者荣耀服务器为什么爆了 发布:2025-03-12 08:45:57 浏览:417
加密方式表 发布:2025-03-12 08:37:18 浏览:923
汽车贷款算法 发布:2025-03-12 08:37:18 浏览:634
数据库中修改字段 发布:2025-03-12 08:36:41 浏览:529