Linux环境变量配置的三个方法 您所在的位置:网站首页 环境变量配置工具的作用 Linux环境变量配置的三个方法

Linux环境变量配置的三个方法

2024-07-15 10:10| 来源: 网络整理| 查看: 265

环境配置的原因:

在windows系统下,很多软件的安装都需要设置环境变量,比如安装JAVA JDK。如果不安装环境变量,在非软件安装的目录下运行javac命令,将会报告“找不到文件”类似的错误。那么,什么是环境变量呢?简要的说,就是指定一个目录,运行软件的时候,相关的程序将会按照该目录寻找相关文件。设置变量对于一般人最实用的功能就是:不用拷贝某些dll文件到系统目录中了,而path这一系统变量就是系统搜索dll文件的一系列路径;

在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量 PATH 的 设置 问题,而 PATH 的 设置 也 是在linux下定制环境变量的一个组成部分。

【环境变量配置的三个方法】

如想将一个路径加入到$PATH中,可以像下面这样做:  1. 控制台中,不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。  这个只针对特定的shell;  $ PATH="$PATH:/my_new_path"    (关闭shell,会还原PATH)

登陆root,在家目录(root)的.bashrc文件添加新路径到PATH export PATH=$PATH:新增路径 例如: $ PATH="$PATH:/my_new_path"    (关闭shell,会还原PATH) export PATH="/usr/local/go/bin:$PATH" //在原先的PTATH下添加新的一个路径/usr/local/go/bin, echo $path export PATH="/home/work/mygo/bin:/usr/lib/go/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin" //如果删除就echo一下,去掉要删除的路径,从新附上原剩余的路径 2. 修改/etc/profile文件,如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。 这里是针对所有的用户的,所有的shell;  $ vi /etc/profile  在里面加入:  export PATH="$PATH:/my_new_path" 

使用source命令使修改立刻生效:  

source  /etc/profile

3. 修改.bashrc文件,这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,这里是针对某一个特定的用户,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。 $ vi /root/.bashrc  在里面加入:  export PATH="$PATH:/my_new_path" 

source  /root/.bashrc 后两种方法一般需要重新注销系统才能生效,也可以使用source 命令,使修改的配置立刻

最后可以通过echo命令测试一下:  $ echo $PATH  输出已经是新路径了。

原文地址:http://blog.csdn.net/w1014074794/article/details/50952432

==================================================================

Ubuntu系统环境变量: 使用Ubuntu 进行开发绕不开的就是环境变量的配置,由于Linux系统严格的权限管理,造成Ubuntu系统有多个环境变量配置文件,如果不了解其调用顺序,很有可能遇到配置了环境变量,而没有其作用的问题。本文将介绍Ubuntu Linux系统的环境变量。

一、UbuntuLinux系统环境变量配置文件 Ubuntu Linux系统环境变量配置文件分为两种:系统级文件和用户级文件,下面详细介绍环境变量的配置文件。 1.系统级文件: /etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。这个文件一般就是调用/etc/bash.bashrc文件。

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

/etc/environment: 在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。

2.用户级文件: ~/.profile: 在登录时用到的第三个文件 是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。不推荐放到这儿,因为每开一个shell,这个文件会读取一次,效率 上讲不好。

~/.bash_profile:每个用户都可使用该文件输入专用于自己 使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

~./bash_login:不推荐使用这个,这些不会影响图形界面。而且.bash_profile优先级比bash_login高。当它们存在时,登录shell启动时会读取它们。

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

~/.pam_environment:用户级的环境变量设置文件。

另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。 

二、/etc/profile与/etc /enviroment的比较 首先来做一个实验:

先将export LANG=zh_CN加入/etc/profile ,退出系统重新登录,登录提示显示英文。将/etc/profile中的export LANG=zh_CN删除,将LNAG=zh_CN加入/etc/environment,退出系统重新登录,登录提示显示中文。 

用户环境建立的过程中总是先执行/etc/profile然后在读取/etc/environment。为什么会有如上所叙的不同呢? 

应该是先执行/etc/environment,后执行/etc/profile。 

/etc/environment是设置整个系统的环境,而/etc/profile是设置所有用户的环境,前者与登录用户无关,后者与登录用户有关。

系统应用程序的执行与用户环境可以是无关的,但与系统环境是相关的,所以当你登录时,你看到的提示信息,比如日期、时间信息的显示格式与系统环境的LANG是相关的,缺省LANG=en_US,如果系统环境LANG=zh_CN,则提示信息是中文的,否则是英文的。 

对于用户的SHELL初始化而言是先执行/etc/profile, 再读取文件/etc/environment. 

对整个系统而言是先执行/etc/environment。这样理解正确吗? 

/etc/enviroment -->/etc/profile --> $HOME/.profile -->$HOME/.env (如果存在) 

/etc/profile 是所有用户的环境变量

/etc/enviroment是系统的环境变量 

登陆系统时shell读取的顺序应该是

/etc/profile ->/etc/enviroment -->$HOME/.profile-->$HOME/.env 

原因应该是用户环境和系统环境的区别了 

如果同一个变量在用户环境(/etc/profile)和系统环境(/etc/environment) 有不同的值那应该是以用户环境为准了。 

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

在登录Linux时要执行文件的过程如下:

在刚登录Linux时,首先启动/etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile、 ~/.bash_login或 ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile、 ~/.bash_login、 ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在 ~/.bash_profile文件中一般会有下面的代码:

if[ -f ~/.bashrc ] ; then  ../bashrc            fi   ~/.bashrc中,一般还会有以下代码: if[ -f /etc/bashrc ] ; then  ./bashrc fi 所以,~/.bashrc会调用/etc/bashrc文件。最后,在退出shell时,还会执行~/.bash_logout文件。 

执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc-> /etc/bashrc -> ~/.bash_logout 

三、设置环境变量的方法 由以上分析可知:

/etc/profile全局的,随系统启动设置【设置这个文件是一劳永逸的办法】

/root/.profile和/home/myname/.profile只对当前窗口有效。

/root/.bashrc和 /home/yourname/.bashrc随系统启动,设置用户的环境变量【平时设置这个文件就可以了】

那么要配置Ubuntu的环境变量,就是在这几个配置文件中找一个合适的文件进行操作了;如想将一个路径加入到$PATH中,可以由下面这样几种添加方法:

1.控制台中: $PATH="$PATH:/my_new_path"    (关闭shell,会还原PATH)//?//

export PATH=$PATH:新增路径

2.修改profile文件: $sudo gedit /etc/profile

在里面加入:

exportPATH="$PATH:/my_new_path"

3.修改.bashrc文件: $ sudo gedit /root/.bashrc

在里面加入:

export PATH="$PATH:/my_new_path"

后两种方法一般需要重新注销系统才能生效,最后可以通过echo命令测试一下:

$ echo $PATH

输出已经是新路径了。

举个列子,如果想把当前路径加入到环境变量中去,就可以这样做:

$   PATH ="$PATH:."

这样运行自己编写的shell脚本时就可以不输入./了

四、小结 综上所述,在Ubuntu 系统中/etc/profile文件是全局的环境变量配置文件,它适用于所有的shell。在我们登陆Linux系统时,首先启动/etc/profile文件,然后再启动用户目录下的~/.bash_profile、~/.bash_login或~/.profile文件中的其中一个,执行的顺序和上面的排序一样。如果~/.bash_profile文件存在的话,一般还会执行~/.bashrc文件。 ————————————————

————————————————

Linux系统执行一个命令一般都要给出一个路径,以便找到该命令的可执行文件。但是我们一般用 ls、vim等命令时,却没有给出路径。这就是因为它们的路径已经写到环境变量里了。系统就会到在环境变量里列出的路径找到对应的可执行文件。还有当我们要运行一个bash脚本时,就会用 ./xxx.sh来运行,这里的 ./ 就是告诉系统这个可执行文件就在当前目录。另外,cd 和 export 等命令是例外,它们是buildin,系统自带的。可以用 type 命令来识别。还有which,whereis 两个有用的命令。

$ type cat cat is /bin/cat $ type cd cd is a shell builtin

可以输入 export $PATH 来查看当前的环境变量,这些目录以 : 分隔。

设置环境变量需要使用export 命令,比如当安装了Quantum Espresso 后,可以将它的bin目录添加到系统路径,之后就可以直接执行 pw.x 等命令了。如果没有这一步就要,把完整的路径写出来,/home/user/q-e-qe-6.5/bin/pw.x ,使系统可以找到可执行文件。

$ export PATH="/home/user/q-e-qe-6.5/bin:$PATH"

设置命令别名

给命令设置别名,可以很有效的少打一些字符。

例如:

$ alias ls='ls -a' # 这样设置的话,以后每次输入命令ls,都会把隐藏的文件显示出来 $ alias rm='rm -i' # 使用rm 删除的时候,会有一个确认的提示。 $ alias v='vim' # 直接使用v来表示vim命令 $ alias abcd='cd /aaa/bbb/ccc/ddd' # 如果一个经常进入的目录已经很深了,就可以这样设置,直接输入abcd进入 $ alias ge="grep 'energy with' OUTCAR | tail -n 1 | awk '{print $NF}'" # 得到自洽计算后的能量,$NF 代表最后一个,也可以用$8, 第8个代替

上面给出了一些例子,可以看到大致分为两种,一种是命令加参数,还是原来的命令名称;还有一种是自己起的名字。修改第二种别名时,尽量不要与系统中有的命令重复,比如说我用w来代替vim,就会将原来有的w命令顶掉。直接输入w命令,就会打开vim。而要想运行w命令,就只能用加路径的方式 /usr/bin/w,来执行。

.bashrc 文件

还可以将上面的命令写到 .bashrc 文件里,这样就不用每次打开shell,都要输入自己的设置了。.bashrc 是一个用户自定义配置的文件,每次打开shell时,系统会自动读取里面的设置。它的位置在用户目录下,(默认前面是一个点的文件是隐藏的,可以用 ls -a 查看隐藏的文件)。

vi ~/.bashrc # 编辑文件,将自己有用的配置写入 source ~/.bashrc # 使更新,立即生效

编辑 .bashrc ,配置环境变量要小心,如果弄错了,比如引号少了一个,系统就找不到可执行文件的目录了,大量的命令就不能用了,只有buildin命令可以用。这时就应该在命令行里执行

$ export PATH=/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

恢复正确的环境变量,然后再用 vim,nano等编辑器,修改 .bashrc 文件,使得正确。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有