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

Linux中环境变量的使用方法相同的生存周期来划分

Mar 25, 2024 am 08:00 AM
linux 环境变量

序言:

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中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热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

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

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

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

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1668
14
CakePHP 教程
1427
52
Laravel 教程
1329
25
PHP教程
1273
29
C# 教程
1256
24
Linux体系结构:揭示5个基本组件 Linux体系结构:揭示5个基本组件 Apr 20, 2025 am 12:04 AM

Linux系统的五个基本组件是:1.内核,2.系统库,3.系统实用程序,4.图形用户界面,5.应用程序。内核管理硬件资源,系统库提供预编译函数,系统实用程序用于系统管理,GUI提供可视化交互,应用程序利用这些组件实现功能。

vscode上一步下一步快捷键 vscode上一步下一步快捷键 Apr 15, 2025 pm 10:51 PM

VS Code 一步/下一步快捷键的使用方法:一步(向后):Windows/Linux:Ctrl ←;macOS:Cmd ←下一步(向前):Windows/Linux:Ctrl →;macOS:Cmd →

git怎么查看仓库地址 git怎么查看仓库地址 Apr 17, 2025 pm 01:54 PM

要查看 Git 仓库地址,请执行以下步骤:1. 打开命令行并导航到仓库目录;2. 运行 "git remote -v" 命令;3. 查看输出中的仓库名称及其相应的地址。

notepad怎么运行java代码 notepad怎么运行java代码 Apr 16, 2025 pm 07:39 PM

虽然 Notepad 无法直接运行 Java 代码,但可以通过借助其他工具实现:使用命令行编译器 (javac) 编译代码,生成字节码文件 (filename.class)。使用 Java 解释器 (java) 解释字节码,执行代码并输出结果。

sublime写好代码后如何运行 sublime写好代码后如何运行 Apr 16, 2025 am 08:51 AM

在 Sublime 中运行代码的方法有六种:通过热键、菜单、构建系统、命令行、设置默认构建系统和自定义构建命令,并可通过右键单击项目/文件运行单个文件/项目,构建系统可用性取决于 Sublime Text 的安装情况。

Linux的主要目的是什么? Linux的主要目的是什么? Apr 16, 2025 am 12:19 AM

Linux的主要用途包括:1.服务器操作系统,2.嵌入式系统,3.桌面操作系统,4.开发和测试环境。Linux在这些领域表现出色,提供了稳定性、安全性和高效的开发工具。

laravel安装代码 laravel安装代码 Apr 18, 2025 pm 12:30 PM

要安装 Laravel,需依序进行以下步骤:安装 Composer(适用于 macOS/Linux 和 Windows)安装 Laravel 安装器创建新项目启动服务访问应用程序(网址:http://127.0.0.1:8000)设置数据库连接(如果需要)

git软件安装 git软件安装 Apr 17, 2025 am 11:57 AM

安装 Git 软件包括以下步骤:下载安装包运行安装包验证安装配置 Git安装 Git Bash(仅限 Windows)

See all articles