搜索
首页系统教程LINUXLinux中环境变量的使用方法相同的生存周期来划分

序言:

1.环境变量是操作系统环境设置的变量,适用于整个系统的用户进程;

2.环境变量可以在命令中设置,并且用户注销的时侯将会遗失这种设置值;

3.若要重复适用,则最好在.profile中定义;环境变量的使用与本地变量的使用方式相同,

4.并且在使用之前,必须用export命令导入。

一、环境变量文件介绍

Linux中环境变量包括系统级和用户级,系统级的环境变量是每位登陆到系统的用户都要读取的系统变量,而用户级的环境变量则是该用户使用系统时加载的环境变量,所以管理环境变量的文件也分为系统级和用户级的。

二、Linux的变量种类

按变量的生存周期来界定,Linux变量可分为两类:

1.永久的:须要更改配置文件,变量永久生效

2.临时的:使用export命令申明即可,变量在关掉shell时失效

三、Linux环境变量文件

linux变量文件有/etc/environment或/etc/profile或~/.profile或/etc/bash.bashrc或~/.bashrc,以及~/.bash_profile(通常是用户在自己目录下新建的),~/.bash_logout.

系统级:

1./etc/environment:是系统在登陆时读取的第一个文件,该文件设置的是整个系统的环境,只要启动系统才会读取该文件redhat linux下载,用于为所有进程设置环境变量。系统使用此文件时并不是执行此文件中的命令,而是按照而是按照KEY=VALUE模式的代码,对KEY形参以VALUE,因而文件中假如要定义PATH环境变量,只需加入一行形如PATH=$PATH:/xxx/bin的代码即可

2./etc/profile:此文件是系统登陆时执行的第二个文件。为系统的每位用户设置环境信息,当用户第一次登陆时,该文件被执行。并从/etc/profile.d目录的配置文件中搜集shell的设置。(/etc/profile可以用于设定针对全系统所有用户的环境变量,环境变量周期是永久性)

3./etc/bashrc:是针对所有用户的bash初始化文件,在此中设定的环境变量将应用于所有用户的shell中,此文件会在用户每次打开shell时执行一次。(即每次新开一个终端,就会执行/etc/bashrc)。

用户级(这种文件处于家目录下):

1.~/.profile:对应当前登入用户的profile文件,用于订制当前用户的个人工作环境(变量是永久性),每位用户都可使用该文件输入专用于自己使用的shell信息,当用户登入时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。这儿是推荐放置个人设置的地方

2.~/.bashrc:该文件包含专用于你的bashshell的bash信息,当登陆时以及每次打开新的shell时,该文件被读取。(~/.bashrc只针对当前用户,变量的生命周期是永久的)

不推荐放在这里,由于每开一个shell,这个文件会读取一次在linux系统,默认的shell是什么,效率肯定有影响。

3.~/.bash_profileor~./bash_login:~/.bash_profile是交互式login形式步入bash运行的,~/.bashrc是交互式non-login形式步入bash运行的一般两者设置大致相同,所以一般后者会调用前者。每位用户都可使用该文件输入专用于自己使用的shell信息,当用户登入时,该文件仅仅执行一次。默认情况下,他设置一些环境变量,执行用户的.bashrc文件。(假如~/目录下没有.bash_profile则新构建一个)这儿是推荐放置个人设置的地方

当一个shell关掉时,在bash_profile中定义的系统变量则会失效。为此,每打开一个新的shell时都要运行一次sourcebash_profile.并且针对当前用户。

4.~/.pam_environment:用户级的环境变量设置文件,没有做测试,不晓得管不管用。

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

四、Linux环境变量文件执行次序

1.在登陆Linux时要执行文件的过程如下:

在刚登陆Linux时在linux系统,默认的shell是什么

首先启动/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
 . /etc/bashrc
fi

所以,~/.bashrc会调用/etc/bashrc文件。最后,在退出shell时,就会执行~/.bash_logout文件。

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

/etc/profile和/etc/environment等各类环境变量设置文件的好处

1)先将exportLANG=zh_CN加入/etc/profile,退出系统重新登陆,登陆提示显示中文。

2)先将/etc/profile中的exportLANG=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中标麒麟linux,再读取文件/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)有不同的值,那应当是以用户环境为准了。

五、Linux中常见的环境变量及其作用

Linux中常见的环境变量有:

1.PATH:指定命令的搜索路径

2.HOME:指定用户的主工作目录(即用户登录到Linux系统中时,默认的目录)

3.HISTSIZE:指保存历史命令记录的条数。

4.LOGNAME:指当前用户的登陆名。

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

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

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

在linux系统,默认的shell是什么_在linux系统,默认的shell是什么_在linux系统,默认的shell是什么

8.MAIL:指当前用户的电邮储存目录。

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

10.PS2:附属提示符,默认是“>”。

备注:可以通过更改此环境变量来更改当前的命令符,例如下述命令会将提示符更改成字符串“Hello,MyNewPrompt”。

#PS1="Hello,MyNewPrompt"

注意:上述变量的名子并不固定,如HOSTNAME在个别Linux系统中可能设置成HOST

其实,我所列出的上述环境变量并非用尽列举!

Linux也提供了更改和查看环境变量的命令!下边通过几个实例来说明:

1.echo显示某个环境变量值echo$PATH

2.export设置一个新的环境变量exportHELLO="hello"(可以无顿号),在shell的命令行下直接使用[export变量名=变量值]定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关掉了,变量也就失效了,再打开新shell时就没有这个变量,须要使用的话还须要重新定义。

3.env显示所有环境变量

4.set显示本地定义(系统中早已存在)的shell变量以及设置shell变量的新变量值,倘若未指定值,则该变量值将被设为NULL。

5.unset清理环境变量unsetHELLO

6.readonly设置只读环境变量readonlyHELLO,假如使用了readonly命令的话,变量就不可以被更改或清不仅

以上是Linux中环境变量的使用方法相同的生存周期来划分的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文转载于:ITcool。如有侵权,请联系admin@php.cn删除
对于各种任务,Linux和Windows之间的性能有何不同?对于各种任务,Linux和Windows之间的性能有何不同?May 14, 2025 am 12:03 AM

Linux在服务器和开发环境中性能优异,而Windows在桌面和游戏领域表现更好。1)Linux的文件系统在处理大量小文件时表现出色。2)Linux在高并发和高吞吐量网络场景中表现优异。3)Linux的内存管理在服务器环境中更具优势。4)Linux在执行命令行和脚本任务时效率高,而Windows在图形界面和多媒体应用上表现更好。

如何使用Pygobject在Linux中创建GUI应用程序如何使用Pygobject在Linux中创建GUI应用程序May 13, 2025 am 11:09 AM

创建图形用户界面(GUI)应用程序是使您的想法栩栩如生并使您的程序更加用户友好的绝佳方法。 PygoBject是一个Python库,允许开发人员使用Linux桌面上创建GUI应用程序

如何在Arch Linux中使用PhpMyAdmin安装灯泡如何在Arch Linux中使用PhpMyAdmin安装灯泡May 13, 2025 am 11:01 AM

Arch Linux提供了灵活的尖端系统环境,是用于在小型非关键系统上开发Web应用程序的强大解决方案,因为是一个完全开源的,并且在内核上提供了最新的最新版本

如何在Arch Linux上安装LEMP(NGINX,PHP,MARIADB)如何在Arch Linux上安装LEMP(NGINX,PHP,MARIADB)May 13, 2025 am 10:43 AM

由于其滚动释放模型,它包含了尖端软件Arch Linux的设计和开发以作为服务器运行以提供可靠的网络服务,因为它需要额外的时间进行维护,持续的升级和明智的FI

12必备Linux控制台[终端]文件管理器12必备Linux控制台[终端]文件管理器May 13, 2025 am 10:14 AM

Linux控制台文件管理器在日常任务,在本地计算机上管理文件时或连接到远程时,可能非常有帮助。目录的视觉控制台表示可以帮助我们快速执行文件/文件夹操作和SAV

Qbittorrent:强大的开源Bittorrent客户端Qbittorrent:强大的开源Bittorrent客户端May 13, 2025 am 10:12 AM

Qbittorrent是一个受欢迎的开源Bittorrent客户端,允许用户通过Internet下载和共享文件。最新版本Qbittorrent 5.0最近发行了,并带有新功能和改进。 本文将

ARCH Linux上的设置NGINX虚拟主机,PhpMyAdmin和SSLARCH Linux上的设置NGINX虚拟主机,PhpMyAdmin和SSLMay 13, 2025 am 10:03 AM

以前的Arch Linux LEMP文章仅涵盖了基本内容,从安装网络服务(NGINX,PHP,MYSQL和PHPMYADMIN)以及配置MySQL Server和PhpMyAdmin所需的最小安全性。 这个主题与形式严格有关

Zenity:在外壳脚本中构建GTK对话框Zenity:在外壳脚本中构建GTK对话框May 13, 2025 am 09:38 AM

Zenity是一种工具,可让您使用命令行在Linux中创建图形对话框。它使用GTK,这是​​一种用于创建图形用户界面(GUI)的工具包,使您可以轻松地将视觉元素添加到您的脚本中。 Zenity可能非常

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用