profile文件和环境变量

profile文件和环境变量,第1张

*** 作系统在登录时使用的第二个文件是 /etc/profile 文件。

.profile 文件在主($HOME)目录中,并使您能够定制个人工作环境。因为 .profile 文件是隐藏的,所以请使用 ls -a 命令列出它。

在 login 程序将 LOGNAME(登录名)和 HOME(登录目录)变量添加到环境中后,将会执行 $HOME/.profile 文件中的命令(如果此文件存在)。 .profile 文件包含覆盖 /etc/profile 文件中变量集的个人概要文件。 .profile 文件通常用于设置导出的环境变量和终端方式。可通过修改 .profile 文件来定制环境。

一、按照生命周期来分,Linux 环境变量可以分为两类:

1、永久的:需要用户修改相关的配置文件,变量永久生效。

2、临时的:用户利用 export 命令,在当前终端下声明环境变量,关闭 shell 终端失效。

二、按照作用域来分,Linux 环境变量可以分为:

1、系统环境变量:系统环境变量对该系统中所有用户都有效。

2、用户环境变量:顾名思义,这种类型的环境变量只对特定的用户有效。

个人在工作学习过程中最常用的就是在 /etc/profile 文件中添加变量,对所有用户生效,并且是永久的。

用vim在文件 /etc/profile 文件中增加变量,该变量将会对 Linux 下所有用户有效,并且是“永久的”。修改文件后要想马上生效还要运行 source /etc/profile 不然只能在下次重新登录后才能生效。

经常遇到安装了一个工具之后,直接输入命令找不到,需要进入相应的bin目录下通过./xxx的方式运行。主要是找不到路径的原因,可以通过设置环境变量的方式解决(原文地址: MAC 设置环境变量path的几种方法 ):

mac 一般使用bash作为默认shell

Mac系统的环境变量,加载顺序为:

/etc/profile /etc/paths ~/.bash_profile ~/.bash_login ~/.profile ~/.bashrc

当然/etc/profile和/etc/paths是系统级别的,系统启动就会加载,后面几个是当前用户级的环境变量。后面3个按照从前往后的顺序读取,如果~/.bash_profile文件存在,则后面的几个文件就会被忽略不读了,如果~/.bash_profile文件不存在,才会以此类推读取后面的文件。~/.bashrc没有上述规则,它是bash shell打开的时候载入的。

如果没特殊说明,设置PATH的语法都为:

#中间用冒号隔开

     export PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

(一)全局设置

下面的几个文件设置是全局的,修改时需要root权限

1)/etc/paths (全局建议修改这个文件 )

编辑 paths,将环境变量添加到 paths文件中 ,一行一个路径

Hint:输入环境变量时,不用一个一个地输入,只要拖动文件夹到 Terminal 里就可以了。

2)/etc/profile (建议不修改这个文件 )

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

3)/etc/bashrc (一般在这个文件中添加系统级环境变量)

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

4)

1.创建一个文件:

sudo touch /etc/paths.d/mysql

2.用 vim 打开这个文件(如果是以 open -t 的方式打开,则不允许编辑):

sudo vim /etc/paths.d/mysql

3.编辑该文件,键入路径并保存(关闭该 Terminal 窗口并重新打开一个,就能使用 mysql 命令了)

/usr/local/mysql/bin

据说,这样可以自己生成新的文件,不用把变量全都放到 paths 一个文件里,方便管理。

(二)单个用户设置

1)~/.bash_profile (任意一个文件中添加用户级环境变量)

(注:Linux 里面是 .bashrc 而 Mac 是 .bash_profile)

若bash shell是以login方式执行时,才会读取此文件。该文件仅仅执行一次!默认情况下,他设置一些环境变量

设置命令别名alias ll=’ls -la’

设置环境变量:

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

2)~/.bashrc 同上

如果想立刻生效,则可执行下面的语句:

$ source 相应的文件

一般环境变量更改后,重启后生效

1111

source FileName

作用:在当前bash环境下读取并执行FileName中的命令。

注:该命令通常用命令“.”来替代。

如:source /etc/profile 与 . /etc/profile是等效的。

我从网上得知,在ubuntu中,使用source /etc/profile命令可以使新建立的环境变量立刻生效而不用重新启动系统,但是

如题,当我使用source /etc/profile这个命令之后,新的环境变量只能在一个终端里面有效,而当我把这个终端关闭重新再打开另一个终端时,刚才有效的环境变量就没了。

原因见下↓

2222

在Ubuntu中有如下几个文件可以设置环境变量

1、/etc/profile:在登录时, *** 作系统定制用户环境时使用的第一个文件,此 文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。

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

3、~/.bash_profile:在登录时用到的第三个文件是.profile文 件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用 户登录时,该 文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该 文件被读取.

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

几个环境变量的优先级

1>2>3

区别:

/etc/profile、/etc/bash.bashrc文件是针对所有用户来说的,每个用户登录时都会执行,其中/etc/profile只执行一次,而/etc/bash.bashrc在每次Shell登录时都会执行。

~/.profile、~/.bashrc文件是针对单个用户来说的,每个用户目录下都会有这两个文件,其中~/.profile在Login Shell登录时执行,~/.bashrc在Non-login Shell登录时执行。

相关概念:

Login Shell:需要输入账号密码Shell,比如tty1-tty6终端、通过ssh登录的终端

Non-login Shell:不需要输入账号密码的Shell,比如图形模式下Ctrl+Alt+T得到的Terminal、Shell下的子进程

设置永久环境变量

1.环境变量配置中,要先删除.bash_profile中的三行关于.bashrc的 定义,然后把环境变量配置在.bashrc中

2.选择要使用的java环境:update-alternatives –config java

3.要使得刚修改的环境变量生效:source .bashrc

4.查看环境变量:env

可以放到/etc/bash/bashrc,这样就是系统级的


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

原文地址: http://outofmemory.cn/bake/11743068.html

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

发表评论

登录后才能评论

评论列表(0条)

保存