百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术流 > 正文

linux环境变量(转载)

citgpt 2024-10-21 01:00 12 浏览 0 评论

阅读目录

一、Linux 环境变量介绍

linux环境变量(转载)

1.1 Linux 环境变量介绍

1.2 Linux 环境变量分类

1.3 Linux 常用的环境变量

二、Linux 查看环境变量

三、Linux 添加环境变量

3.1 添加系统级环境变量(需root权限、针对所有用户、永久生效)

3.2 添加用户级环境变量

3.3 SSH/串口终端临时添加环境变量

四、Linux 删除环境变量

4.1 永久删除环境变量

4.2 使用unset删除指定的环境变量

4.3 删除PATH环境变量指定值

五、修改环境变量配置文件后生效

八、其他资料

一、Linux 环境变量介绍

1.1 Linux 环境变量介绍

Linux环境变量(超详细)

环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,是操作系统为了满足不同的应用场景预先在系统内预先设置的一大批全局变量。


环境变量分类


按生命周期分:

永久的:在环境变量脚本文件中配置,用户每次登录时会自动执行这些脚本,相当于永久生效。

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

按作用域分:

系统环境变量:公共的,对全部的用户都生效。

用户环境变量:用户私有的、自定义的个性化设置,只对该用户生效。



1.2 Linux 环境变量分类

在Linux系统中,环境变量可以分为以下几类:


系统级环境变量:

系统级环境变量对所有用户和进程都可见。它们通常在系统启动时被设置,并被所有用户和进程共享。一些常见的系统级环境变量包括PATH(用于指定可执行文件的搜索路径)、LANG(用于设置系统语言环境)等。


用户级环境变量:

用户级环境变量是每个用户独立设置的,只对该用户及其相关进程可见。这些变量可以在登录时通过不同的配置文件(如.bashrc、.bash_profile、.profile等)设置。常见的用户级环境变量包括HOME(指定用户的主目录路径)、USER(当前用户名)等。


进程级环境变量:

进程级环境变量是由特定进程设置的,并且仅对该进程及其子进程可见。这些变量可以通过编程语言(如C语言中的setenv函数)在程序中进行设置,或者通过终端命令行在特定的进程上下文中设置。


需要注意的是,系统级环境变量和用户级环境变量通常是通过配置文件进行设置和管理的。对于系统级环境变量,常见的配置文件包括/etc/profile和/etc/environment。对于用户级环境变量,常见的配置文件包括用户的个人配置文件(如.bashrc、.bash_profile、.profile等)。


每个环境变量都有其特定的作用和范围,根据需要进行适当的设置和管理。


1.3 Linux 常用的环境变量

在Linux系统中,有许多常用的环境变量,这些环境变量可以影响系统的行为和配置。以下是一些常见的Linux环境变量:


PATH:决定了系统在哪些目录中查找可执行文件。当你输入一个命令时,系统会在PATH中定义的目录中查找该命令的可执行文件。


HOME:指定当前用户的主目录路径。


USER:当前用户的用户名。


SHELL:指定当前用户默认使用的shell。


LANG:指定系统的默认语言。


LD_LIBRARY_PATH:指定系统在哪些目录中查找共享库文件。


TERM:指定当前终端的类型。


PS1:定义命令行提示符的格式。


PS2:定义多行命令的提示符的格式。


这只是一些常见的环境变量,实际上还有很多其他的环境变量可以用来配置系统的行为和程序的运行。你可以使用printenv、env或者echo命令来查看当前系统中定义的所有环境变量。例如,使用printenv命令可以列出所有环境变量及其对应的值。


例如,要查看PATH环境变量的值,可以使用以下命令:


echo $PATH


希望这些信息对你有所帮助!如果你有其他问题,请随时提问。


二、Linux 查看环境变量

显示当前用户的所有环境变量

printenv

# 或

env


查看指定环境变量

echo $PATH 或者 echo $HOME 或者 echo $USER


使用set查看所有本地定义的环境变量。

三、Linux 添加环境变量

3.1 添加系统级环境变量(需root权限、针对所有用户、永久生效)

vim /etc/profile

export PATH="/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH"

source /etc/profile


注:一般只有root用户才有编辑权限;


3.2 添加用户级环境变量

在用户的家目录(~)下,当使用 Bash shell 时,系统会自动加载以下文件(如果存在):


.bash_profile:这是在登录时加载的主要文件。通常用于设置用户的个人环境变量和启动脚本。


.bash_login:如果 .bash_profile 不存在,则会尝试加载此文件。


.profile:如果 .bash_profile 和 .bash_login 都不存在,则会尝试加载此文件。这是一个通用的配置文件,适用于多种类型的 shell。


.bashrc:这是在每次打开新的终端窗口时加载的文件。它包含了用户定义的别名、函数、自定义环境变量等。


通常情况下,用户可以在.bash_profile、.bash_login 或 .profile

文件中设置一些全局的环境变量和启动脚本,而在.bashrc 文件中设置一些特定于 Bash 的配置和个人设置。


请注意,这是默认的行为,具体的加载顺序可能会受到系统配置的影响。


在用户目录下的.bash_profile文件中增加变量【对单一用户生效(永久的)】


用VI在用户目录下的.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。


例如:编辑guok用户目录(/home/guok)下的.bash_profile


vi /home/guok/.bash.profile

v ~/.bash.profile


添加如下内容:


export CLASSPATH=./JAVAHOME/lib;JAVA_HOME/jre/lib


注:修改文件后要想马上生效还要运行$ source /home/guok/.bash_profile不然只能在下次重进此用户时生效。


3.3 SSH/串口终端临时添加环境变量

直接运行export命令定义变量【只对当前shell(BASH)有效(临时的)】


在shell的命令行下直接使用[export 变量名=变量值] 定义变量,


该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,


shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。


1、可用 export 命令查看PATH值


export


2、单独查看PATH环境变量,可用:


echo $PATH


3、添加PATH环境变量(临时),可用:


export PATH=/opt/STM/STLinux-2.3/devkit/sh4/bin:$PATH


上述方法的PATH 在终端关闭 后就会消失。


四、Linux 删除环境变量

要删除Linux环境变量,您可以选择临时删除或永久删除。


4.1 永久删除环境变量

永久删除环境变量:


编辑配置文件:要永久删除环境变量,您需要编辑适当的配置文件,并将其从文件中删除。具体的配置文件取决于您要删除的是系统环境变量还是用户环境变量。


如果要删除系统环境变量,需要使用root用户权限编辑/etc/environment文件。在该文件中,找到并删除相应的环境变量。

如果要删除用户环境变量,需要编辑/.bashrc、/.bash_profile或~/.profile文件(根据您使用的Shell)并删除相应的环境变量。

例如,如果要删除名为VAR的环境变量,可以使用文本编辑器打开适当的文件,找到VAR并将其删除。保存文件后,系统会在下次启动时生效。


注意:修改这些配置文件可能需要root权限或适当的用户权限(系统级配置文件要root权限、用户级不需要)。


4.2 使用unset删除指定的环境变量

set可以设置某个环境变量的值。清除环境变量的值用unset命令。如果未指定值,则该变量值将被设为NULL。示例如下:


export TEST="Test..." #增加一个环境变量TEST

env|grep TEST #此命令有输入,证明环境变量TEST已经存在了

TEST=Test...

unset TEST #删除环境变量TES

env|grep TEST #此命令没有输出,证明环境变量TEST已经删除


4.3 删除PATH环境变量指定值

Linux环境变量PATH的增添和删除操作

五、修改环境变量配置文件后生效

针对修改的配置文件执行:source ~/.bashrc 当前终端和新连接的终端自动生效。

针对已连接的终端:执行上面命令 或者 exec bash

八、其他资料

执行多次source /etc/profile之后,打印PATH的值会出现重复:重新登录查看即可。


相关推荐

js中arguments详解

一、简介了解arguments这个对象之前先来认识一下javascript的一些功能:其实Javascript并没有重载函数的功能,但是Arguments对象能够模拟重载。Javascrip中每个函数...

firewall-cmd 常用命令

目录firewalldzone说明firewallzone内容说明firewall-cmd常用参数firewall-cmd常用命令常用命令 回到顶部firewalldzone...

epel-release 是什么

EPEL-release(ExtraPackagesforEnterpriseLinux)是一个软件仓库,它为企业级Linux发行版(如CentOS、RHEL等)提供额外的软件包。以下是关于E...

FullGC详解  什么是 JVM 的 GC
FullGC详解 什么是 JVM 的 GC

前言:背景:一、什么是JVM的GC?JVM(JavaVirtualMachine)。JVM是Java程序的虚拟机,是一种实现Java语言的解...

2024-10-26 08:50 citgpt

使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
  • 使用Spire.Doc组件利用模板导出Word文档
跨域(CrossOrigin)

1.介绍  1)跨域问题:跨域问题是在网络中,当一个网络的运行脚本(通常时JavaScript)试图访问另一个网络的资源时,如果这两个网络的端口、协议和域名不一致时就会出现跨域问题。    通俗讲...

微服务架构和分布式架构的区别

1、含义不同微服务架构:微服务架构风格是一种将一个单一应用程序开发为一组小型服务的方法,每个服务运行在自己的进程中,服务间通信采用轻量级通信机制(通常用HTTP资源API)。这些服务围绕业务能力构建并...

深入理解与应用CSS clip-path 属性
深入理解与应用CSS clip-path 属性

clip-pathclip-path是什么clip-path 是一个CSS属性,允许开发者创建一个剪切区域,从而决定元素的哪些部分可见,哪些部分会被隐...

2024-10-25 11:51 citgpt

HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
  • HCNP Routing&Switching之OSPF LSA类型(二)
Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
  • Redis和Memcached的区别详解
Request.ServerVariables 大全

Request.ServerVariables("Url")返回服务器地址Request.ServerVariables("Path_Info")客户端提供的路...

python操作Kafka

目录一、python操作kafka1.python使用kafka生产者2.python使用kafka消费者3.使用docker中的kafka二、python操作kafka细...

Runtime.getRuntime().exec详解

Runtime.getRuntime().exec详解概述Runtime.getRuntime().exec用于调用外部可执行程序或系统命令,并重定向外部程序的标准输入、标准输出和标准错误到缓冲池。...

promise.all详解 promise.all是干什么的
promise.all详解 promise.all是干什么的

promise.all详解promise.all中所有的请求成功了,走.then(),在.then()中能得到一个数组,数组中是每个请求resolve抛出的结果...

2024-10-24 16:21 citgpt

Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解
  • Content-Length和Transfer-Encoding详解

取消回复欢迎 发表评论: