linux环境变量(linux环境变量怎么设置)

更新时间:2023-03-01 10:49:18 阅读: 评论:0

linux环境变量配置

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

linux下修改环境变量后一重启又复位了。

linux下修改环境变量后一重启又复位了,是设置错误造成的,解决方法如下:

1、首先可以查看系统已添加的环境变量,使用命令:echo $PATH

2、也可以使用命令:env 查看系统所有环境变量。

3、然后切换root账户:su root,修改/etc/profile文件权限:chmod 777/etc/profile。

4、使用su切换回要添加环境变量的用户,修改环境变量:vim /etc/profile。

5、在文档最后添加地址:export PATH="/home/wcy/softwares/packmol:$PATH",保存后退出即可。


Linux-配置环境变量

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为系统环境配置文件,需要管理员权限或者对该文件的写入权限,修改后,作用于系统下所有用户的环境变量。

Linux怎么设置系统环境变量之export命令详解

1. Linux export命令简介

Linux export命令用于设置或显示环境变量。

在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。

export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。

一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执 行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。

Linux export命令简介

2. export参数

-f 代表[变量名称]中为函数名称。

-n 删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

-p 列出所有的shell赋予程序的环境变量。

一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原为脚本(调用者)里定义的变量的访问权,除非这些变量已经被显式地设置为可用。export命令可以用于传递一个或多个变量的值到任何后继脚本。

Linux怎么设置变量环境

3. 在linux里设置环境变量的方法

一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/abc/123/bin”目录下,有如下三种方法来设置环境变量:

3.1 直接用export命令,临时生效

查看是否已经设好,可用命令export查看:

检查:

输出结果:

declare -x HISTCONTROL="ignoredups"

declare -x HISTSIZE="1000"

declare -x HOME="/root"

declare -x HOSTNAME="zcwyou"

declare -x LANG="en_US.UTF-8"

declare -x LESSOPEN="||/usr/bin/lesspipe.sh %s"

declare -x LOGNAME="root"

declare -x LS_COLORS="rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32: .tar=01;31: .tgz=01;31: .arc=01;31: .arj=01;31: .taz=01;31: .lha=01;31: .lz4=01;31: .lzh=01;31: .lzma=01;31: .tlz=01;31: .txz=01;31: .tzo=01;31: .t7z=01;31: .zip=01;31: .z=01;31: .Z=01;31: .dz=01;31: .gz=01;31: .lrz=01;31: .lz=01;31: .lzo=01;31: .xz=01;31: .bz2=01;31: .bz=01;31: .tbz=01;31: .tbz2=01;31: .tz=01;31: .deb=01;31: .rpm=01;31: .jar=01;31: .war=01;31: .ear=01;31: .sar=01;31: .rar=01;31: .alz=01;31: .ace=01;31: .zoo=01;31: .cpio=01;31: .7z=01;31: .rz=01;31: .cab=01;31: .jpg=01;35: .jpeg=01;35: .gif=01;35: .bmp=01;35: .pbm=01;35: .pgm=01;35: .ppm=01;35: .tga=01;35: .xbm=01;35: .xpm=01;35: .tif=01;35: .tiff=01;35: .png=01;35: .svg=01;35: .svgz=01;35: .mng=01;35: .pcx=01;35: .mov=01;35: .mpg=01;35: .mpeg=01;35: .m2v=01;35: .mkv=01;35: .webm=01;35: .ogm=01;35: .mp4=01;35: .m4v=01;35: .mp4v=01;35: .vob=01;35: .qt=01;35: .nuv=01;35: .wmv=01;35: .asf=01;35: .rm=01;35: .rmvb=01;35: .flc=01;35: .avi=01;35: .fli=01;35: .flv=01;35: .gl=01;35: .dl=01;35: .xcf=01;35: .xwd=01;35: .yuv=01;35: .cgm=01;35: .emf=01;35: .axv=01;35: .anx=01;35: .ogv=01;35: .ogx=01;35: .aac=01;36: .au=01;36: .flac=01;36: .mid=01;36: .midi=01;36: .mka=01;36: .mp3=01;36: .mpc=01;36: .ogg=01;36: .ra=01;36: .wav=01;36: .axa=01;36: .oga=01;36: .spx=01;36:*.xspf=01;36:"

declare -x MAIL="/var/spool/mail/root"

declare -x OLDPWD

declare -x PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/abc/123/bin"

declare -x PWD="/root"

declare -x SELINUX_LEVEL_REQUESTED=""

declare -x SELINUX_ROLE_REQUESTED=""

declare -x SELINUX_USE_CURRENT_RANGE=""

declare -x SHELL="/bin/bash"

declare -x SHLVL="1"

declare -x SSH_CLIENT="113.105.164.145 6668 22"

declare -x SSH_CONNECTION="113.105.164.145 6668 113.105.164.151 22"

declare -x SSH_TTY="/dev/pts/0"

declare -x TERM="xterm"

declare -x USER="root"

declare -x XDG_RUNTIME_DIR="/run/ur/0"

declare -x XDG_SESSION_ID="2185"

留意一下输出的这部分:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/opt/abc/123/bin"

可以看到已经包括了刚刚设置的变量路径。

变量路径和环境Linux

3.2 修改profile文件,永久生效

把目录/opt/abc/123/bin在里面加入:

export PATH="

3.3 修改.bashrc文件,永久生效

在里面加入:

export PATH="PATH:/opt/abc/123/bin"¨K14K¨G3G在里面加入:exportPATH="PATH:/opt/abc/123/bin"

检查结果:

3.4 修改/etc/re.local文件,永久生效

在里面加入:

export PATH="

“/bin”、“/sbin”、“ /usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。

如果不在标准位置,文件名前面需要加上完整的路径。不过每次都这样跑就太麻烦了,一个“一劳永逸”的办法是把这个路径加入环境变量。命令 export PATH:/opt/abc/123/bin"“/bin”、“/sbin”、“/usr/bin”、“/usr/sbin”、“/usr/local/bin”等路径已经在系统环境变量中了,如果可执行文件在这几个标准位置,在终端命令行输入该软件可执行文件的文件名和参数(如果需要参数),回车即可。如果不在标准位置,文件名前面需要加上完整的路径。不过每次都这样跑就太麻烦了,一个“一劳永逸”的办法是把这个路径加入环境变量。命令exportPATH="路径”(或“PATH=

PATH为环境变量名,如DVSDK;调用时用

export DVSDK)可以把这个路径加入环境变量,但是退出这个命令行就失效了。要想永久生效,需要把这行添加到环境变量文件里。有两个文件可选:“/etc/profile”和用户主目录下的“.bashp​rofile”,“/etc/profile”对系统里所有用户都有效,用户主目录下的“.bashp​rofile”只对这个用户有效。exportPATH="

PATH:路径1:路径2:…:路径n" ),意思是可执行文件的路径包括原先设定的路径,也包括从“路径1”到“路径n”的所有路径。当用户输入一个一串字符并按回车后,shell会依次在这些路径里找对应的可执行文件并交给系统核心执行。那个“

”。

注意,与DOS/Window不同,UNIX类系统环境变量中路径名用冒号分隔,不是分号。另外,软件越装越多,环境变量越添越多,为了避免造成混乱,建议所有语句都添加在文件结尾,按软件的安装顺序添加。

本文已同步至博客站:

https://www.linuxrumen.com/cyml/859.html


Linux设置环境变量

linux设置环境变量一、环境变量环境变量是包含关于系统及当前登录用户的环境信息的字符串,一些软件程序使用此信息确定在何处放置文件(如临时文件)。设置环境变量说白了就是指定一个软件的路径。环境变量是包含诸如驱动器、路径或文件名之类的字符串。环境变量控制着多种程序的行为。例如,TEMP
环境变量指定程序放置临时文件的位置。
path,
是告诉系统,
当要求系统运行一个程序而没有告诉它程序所在的完整路径时,
系统除了在当前目录下面寻找此程序外,
还应到那些目录下去找
www.dnjsb.com
【权限问题】任何用户都可以添加、修改或删除用户的环境变量。但是,只有管理员才能添加、修改或删除系统环境变量。linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。为了使每个用户默认的环境相同,需要设置一组环境变量。通过修改相应的系统环境变量,对自己的运行环境进行定制。注:linux的环境变量名称一般使用大写字母。二、环境变量的设置1.显示环境变量本例使用echo显示常见的变量HOME$
echo
$HOME/home/kevin2.设置新的环境变量$
export
MYNAME=my
name
is
kevin
www.dnjsb.com
$
echo
$
MYNAMEmy
name
is
Kevin3.修改已存在的环境变量接上个示例$
MYNAME=change
name
to
jack$
echo
$MYNAMEchange
name
to
jack4.显示所有的环境变量$
env
www.dnjsb.com
HOSTNAME=localhost.localdomainSHELL=/bin/bashTERM=xtermHISTSIZE=1000SSH_CLIENT=192.168.136.151
1740
22QTDIR=/usr/lib/qt-3.1SSH_TTY=/dev/pts/05.显示所有本地定义的Shell变量$
tBASH=/bin/bashBASH_ENV=/root/.bashrc
www.dnjsb.com
6.使用unt命令来清除环境变量$
export
TEMP_KEVIN=kevin
#增加一个环境变量TEMP_KEVIN$
env
|
grep
TEMP_KEVIN
#查看环境变量TEMP_KEVIN是否生效(存在即生效)TEMP_KEVIN=kevin
#证明环境变量TEMP_KEVIN已经存在$
unt
TEMP_KEVIN
#删除环境变量TEMP_KEVIN$
env
|
grep
TEMP_KEVIN
#查看环境变量TEMP_KEVIN是否被删除,没有输出显示,证明TEMP_KEVIN被清除了。7.使用readonly命令设置只读变量注:如果使用了readonly命令的话,变量就不可以被修改或清除了。$
export
TEMP_KEVIN
=kevin
#增加一个环境变量TEMP_KEVIN$
readonly
TEMP_KEVIN
#将环境变量TEMP_KEVIN设为只读$
env
|
grep
TEMP_KEVIN
#查看环境变量TEMP_KEVIN是否生效TEMP_KEVIN=kevin
#证明环境变量TEMP_KEVIN已经存在
www.dnjsb.com
$
unt
TEMP_KEVIN
#会提示此变量只读不能被删除-bash:
unt:
TEMP_KEVIN:
cannot
unt:
readonly
variable$
TEMP_KEVIN
=tom
#修改变量值为tom会提示此变量只读不能被修改-bash:
TEMP_KEVIN:
readonly
variable8.通过修改环境变量定义文件来修改环境变量。需要注意的是,一般情况下,仅修改普通用户环境变量配置文件,避免修改根用户的环境定义文件,因为那样可能会造成潜在的危险。$
cd
~
#到用户根目录下$
ls
-a
#查看所有文件,包含隐藏的文件$
vi
.bash_profile
#修改用户环境变量文件例如:编辑你的PATH声明,其格式为:
www.dnjsb.com
PATH=$PATH:<PATH
1>:<PATH
2>:<PATH
3>:------:<PATH
N>你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效。如果想立刻生效,则可执行下面的语句:$source
.bash_profile需要注意的是,最好不要把当前路径./放到PATH里,这样可能会受到意想不到的攻击。完成后,可以通过$
echo
$PATH查看当前的搜索路径。这样定制后,就可以避免频繁的启动位于shell搜索的路径之外的程序了。三、总结常用的:env
显示所有环境变量

Linux系统环境变量加载过程

Linux中环境变量包括系统级和用户级,系统级的环境变量是每个登录到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量(在用户主目录下$HOME/)。
使用默认Bash时,用户登录后加载环境变量的流程如下:

说明:
bash首先执行/etc/profile脚本,/etc/profile脚本先依次执行/etc/profile.d/*.sh,随后bash会执行用户主目录下的.bash_profile脚本,.bash_profile脚本会执行用户主目录下的.bashrc脚本,而.bashrc脚本会执行/etc/bashrc脚本至此,所有的环境变量和初始化设定都已经加载完成。bash随后调用terminfo和inputrc,完成终端属性和键盘映射的设定。

(1)/etc/profile: 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。
(2)/etc/bashrc: 为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。
(3)~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。
(4)~/.bashrc: 该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
(5) ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。
(6)~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

tcsh是一个加强的csh,目前大多数系统的csh都使用这个shell代替原来的csh,为csh提供命令补全和命令行编辑功能。/bin/csh实际上是/bin/tcsh的符号连接。这样一来,加载环境变量的流程如下:

本文发布于:2023-02-28 19:52:00,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/zhishi/a/167763895870228.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:linux环境变量(linux环境变量怎么设置).doc

本文 PDF 下载地址:linux环境变量(linux环境变量怎么设置).pdf

标签:环境变量   linux
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 实用文体写作网旗下知识大全大全栏目是一个全百科类宝库! 优秀范文|法律文书|专利查询|