Linux中特殊环境变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中特殊环境变量相关的知识,希望对你有一定的参考价值。

1、环境变量简介:

       环境变量是具有特殊名字的一个特定对象,包含了一个或多个应用程序运行所需的信息。(例如环境变量PATH,可执行程序的搜索路径,当要求系统运行一个程序,而没告诉系统它的具体路径时,系统就要在PTAH值的路径中寻找此程序,找到去执行)。


2、常见环境变量(一般都为大写):

PATH :/bin:/usr/bin:/usr/local/bin:/opt/bin:/usr/games/bin。指定SHELL命令的路径,包含了一系列由冒号分隔开的目录,系统就从这些目录里寻找可执行文件。如果你输入的可执行文件,如ls不在这些目录中,系统就无法执行它,除非你输入这个命令的完整路径,如/bin/ls。

HOME:当前用户的家目录。

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

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

HISTSIZE:是指保存历史命令记录的条数

LOGNAME:是指当前用户的登录名。

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

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

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

PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,MyNewPrompt:)”。


3、Linux 中环境变量的文件

    当你进入系统的时候,linux 就会为你读入系统的环境变量,这些环境变量存放在环境变量的文件中。Linux 中有很多记载环境变量的文件,它们被系统读入是按照一定的顺序的。

  •  /etc/profile :此文件为系统的环境变量,它为每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d 目录的配置文件中搜集shell 的设置。

  •  /etc/bashrc :在执行完/etc/profile 内容之后,如果用户的SHELL 运行的是bash ,那么接着就会执行此文件。另外,当每次一个新的bash shell 被打开时, 该文件被读取。

  •  ~/.bash_profile :每个用户都可使用该文件输入专用于自己使用的shell 信息。当用户登录时,该文件仅仅执行一次,默认情况下,它设置一些环境变量,执行用户的.bashrc 文件。

  • ~/.bashrc :该文件包含专用于单个人的bash shell 的bash 信息,当登录时以及每次打开一个新的shell 时, 该该文件被读取。  

  • ~/.bash_logout :当每次退出系统( 退出bash shell) 时, 执行该文件。


4、设置环境变量常用的几个指令

echo:查看显示环境变量,例:echo $PATH

export设置新的环境变量 例:export MYNAME=”LLZZ”

修改环境变量:修改环境变量没有指令,可以直接使用环境变量名进行修改, 例:MYNAME=”ZZLL”

env:查看所有环境变量

set:查看本地定义的所有shell变量

unset:删除一个环境变量 ,例 unset MYNAME

readonly:设置只读环境变量, 例:readonly MYNAME


5、环境变量的设置:


  • 临时设置:

直接用export命令:export  PATH=$PATH:/home/u/bin

查看是否已经设好,可用命令export查看: export 或 echo $PATH

  • 永久设置

    1、修改profile文件:修 改/etc/profile(对所有用户都是有效的),在里面加入:export  PATH=$PATH:/home/u/bin

      2、修改~/.bashrc文件。  (每个用户目录下都有,ls -all,单独用户有效),在里面加入:export  PATH=$PATH:/home/u/bin

永久设置方法一般需要重新注销系统才能生效,注销重登陆后,可以通过echo命令测试一下。

6、环境变量是和shell紧密相关的,用户登录系统后就启动了一个shell,对于Linux来说一般是bash,也可以切换到其他版本的shell。bash有两个基本的系统级配置文件:/etc/bashrc和/etc/profile。这些配置文件包含了两组不同的变量:shell变量和环境变量。shell变量是局部的,而环境变量是全局的。环境变量是通过shell命令来设置。设置好的环境变量又可以被所以当前用户的程序使用。





以上是关于Linux中特殊环境变量的主要内容,如果未能解决你的问题,请参考以下文章

linux 特殊shell变量

Linux之特殊的环境变量IFS以及如何删除带有空格的目录

Bash 通过特殊环境变量进行代码注入攻击

红帽:Bash 通过特殊环境变量进行代码注入攻击

linux环境变量与本地变量

linux 变量环境变量