热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

linux环境变量掌握这些就够了

一、什么是环境变量在计算机系统中有一种数据类型称为变量,变量是用来保存可变值的,操作计算机时可以直接通过变量名称来提取到对应的变量值。而我们今天提到的环


 一、什么是环境变量


在计算机系统中有一种数据类型称为变量,变量是用来保存可变值的,操作计算机时可以直接通过变量名称来提取到对应的变量值。而我们今天提到的环境变量本质上也是变量,它的服务对象是shell程序。

很多程序和脚本都通过环境变量来获取系统信息、存储临时数据和配置信息。在Linux系统上有很多地方可以设置环境变量,了解去哪里设置相应的环境变量很重要。


小提示:


Linux 系统中环境变量的名称一般都是大写的,这是一种约定俗成的规范。

虽然bash shell使用一致的专有环境变量,但不同的Linux发行版经常会添加其自有的环境变量。你在本章中看到的环境变量的例子可能会跟你安装的发行版中看到的结果略微不同。如果遇到本书未讲到的环境变量,可以查看你的Linux发行版上的文档。


 1.1 全局变量


环境变量分为两类:


  • 全局变量
  • 局部变量


全局环境变量对于shell会话和所有生成的子shell都是可见的(我们知道linux支持多用户同时登陆,多用户同时可以使用全局变量)。局部变量则只对创建它们的shell可见。这让全局环境变量对那些所创建的子shell需要获取父shell信息的程序来说非常有用。


a: 查看全部的环境变量


#env


b:查看指定的环境变量值

echo + $变量名 


1.2 局部变量

和全局变量对应,局部环境变量只能在定义它们的进程中可见。


Linux系统并没有一个只显示局部环境变量的命令。set命令会显示为某个特定进程设置的所有环境变量,包括局部变量、全局变量以及用户定义变量。




 Linux 作为一个多用户多任务的操作系统,能够为每个用户提供独立的、合适的工作运行环境,因此,一个相同的环境变量会因为用户身份的不同而具有不同的值。


二、默认的环境变量

Linux 系统能够正常运行并且为用户提供服务,需要数百个环境变量来协同工作,但是,我们没有必要逐一学习每个变量,这里给大家列举了几个非常重要的环境变量。


环境变量名称作用
HOME用户的主目录(也称家目录)
SHELL 用户使用的 Shell 解释器名称
PATH定义命令行解释器搜索用户执行命令的路径
EDITOR用户默认的文本解释器
RANDOM生成一个随机数字
LANG系统语言、语系名称
HISTSIZE输出的历史命令记录条数
HISTFILESIZE保存的历史命令记录条数
PS1Bash解释器的提示符
MAIL邮件保存路径

三、设置 PATH 环境变量


shell命令行界面中输入一个外部命令时,shell必须搜索系统来找到对应的程序。PATH环境变量定义了用于进行命令和程序查找的目录。


查看主机的PATH变量:



 注意:PATH中的目录使用冒号分隔,而且必须使用绝对路径。


举例操作,给系统添加一个新的PATH变量,只需要引用原有的,在后面追加即可。


尖叫提示:对PATH变量的修改只能持续到退出或重启系统。这种效果并不能一直持续。后面我们会讲到如何永久保持环境变量的修改效果。


四、环境变量持久化


注意,敲黑板,当登录Linux系统时,bash shell会作为登录shell启动。登录shell会从5个不同的启动文件里读取命令:(所以如果我们希望启动shell时就执行某个命令的话,只需要把这些命令放到下面5个目录文件里即可)

  1.  /etc/profile
  2.  $HOME/.bash_profile
  3.  $HOME/.bashrc
  4.  $HOME/.bash_login
  5.  $HOME/.profile


/etc/profile文件是系统上默认的bash shell的主启动文件。系统上的每个用户登录时都会执行这个启动文件。

4.1 /etc/profile文件


/etc/profile文件是bash shell默认的的主启动文件。只要你登录了Linux系统,bash就会执行 /etc/profile启动文件中的命令。


一般情况下,PATH变量会设置在这个配置文件中,这样会在全局的所有用户中生效。



说明:


很多时候我们为了方便管理,会在/etc/profile.d 目录下自定义文件,写入我们定义的PATH变量,这个目录下的文件之所以生效的原因是在/etc/profile文件中,循环读取/etc/profile.d目录下的所有文件。



4.2. $HOME目录下的启动文件


剩下的启动文件都起着同一个作用:提供一个用户专属的启动文件来定义该用户所用到的环

境变量。大多数Linux发行版只用这四个启动文件中的一到两个:

  •  $HOME/.bash_profile
  •  $HOME/.bashrc
  •  $HOME/.bash_login
  •  $HOME/.profile

小提示:$HOME表示的是某个用户的家(主)目录 

如果我们执行我们追加的PATH路径在单独的某一个用户下生效,此时我们就可以将配置写在$HOME/.bash_profile文件中。


五、引入环境变量【export】

我们在工作环境中很多时候会有零时 新增,修改或删除环境变量的场景,此时使用命令【export】来完成。

使用的语法:


export [-fnp][变量名称]=[变量设置值]

 :export -p 可以列出当前用户下生效的环境变

export 变量名 = 变量值 //用此方式来零时定义一个我们需要的环境变量

 可以看到定义的零时变量已经生效。但是当退出此用户环境后,此变量将失效。

实战常用:

export 更多的时候我们会直接用来零时修改 PATH变量。


例如:export PATH=$PATH:/home/test/mysql/bin

 此时新增的PATH 就会立生效。

提示:

        在hadoop环境下,因为此框架特有的权限识别机制,还可以使用 export 来零时伪装用户身份,如下截图:


六、硬核总结

环境变量的知识深入来学习的话,还是有很多的知识点可以展开的,但是为了挺高我们学习的高效性,我们只需要了解以下几点,在工作中就是完全够用了。


一,环境变量的作用

二、怎么查看环境变量

三、如何定义追加一个新的PATH变量

四、永久保存的PATH变量的文件位置

五、引入环境变量(export + 环境变量名)



推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了Linux Shell中括号和整数扩展的使用方法,包括命令组、命令替换、初始化数组以及算术表达式和逻辑判断的相关内容。括号中的命令将会在新开的子shell中顺序执行,括号中的变量不能被脚本余下的部分使用。命令替换可以用于将命令的标准输出作为另一个命令的输入。括号中的运算符和表达式符合C语言运算规则,可以用在整数扩展中进行算术计算和逻辑判断。 ... [详细]
  • 本文总结了Linux下多线程执行shell脚本的4种方法,包括切换到工作目录执行、使用绝对路径执行、直接使用bash或sh执行。同时介绍了为什么需要加上"./"来执行脚本的原因。 ... [详细]
  • 一次上线事故,30岁+的程序员踩坑经验之谈
    本文主要介绍了一位30岁+的程序员在一次上线事故中踩坑的经验之谈。文章提到了在双十一活动期间,作为一个在线医疗项目,他们进行了优惠折扣活动的升级改造。然而,在上线前的最后一天,由于大量数据请求,导致部分接口出现问题。作者通过部署两台opentsdb来解决问题,但读数据的opentsdb仍然经常假死。作者只能查询最近24小时的数据。这次事故给他带来了很多教训和经验。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • Linux批量复制并重命名和批量复制文件到多个文件夹的方法
    本文介绍了在Linux系统下批量复制并重命名文件以及批量复制文件到多个文件夹的方法。通过使用模式匹配功能,可以方便地实现文件的批量操作。同时,还提供了有关shell语法中的()和{}的参考资料。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 腾讯安全平台部招聘安全工程师和数据分析工程师
    腾讯安全平台部正在招聘安全工程师和数据分析工程师。安全工程师负责安全问题和安全事件的跟踪和分析,提供安全测试技术支持;数据分析工程师负责安全产品相关系统数据统计和分析挖掘,通过用户行为数据建模为业务决策提供参考。招聘要求包括熟悉渗透测试和常见安全工具原理,精通Web漏洞,熟练使用多门编程语言等。有相关工作经验和在安全站点发表作品的候选人优先考虑。 ... [详细]
  • 大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记
    本文介绍了大数据Hadoop生态(20)MapReduce框架原理OutputFormat的开发笔记,包括outputFormat接口实现类、自定义outputFormat步骤和案例。案例中将包含nty的日志输出到nty.log文件,其他日志输出到other.log文件。同时提供了一些相关网址供参考。 ... [详细]
  • Tomcat安装与配置教程及常见问题解决方法
    本文介绍了Tomcat的安装与配置教程,包括jdk版本的选择、域名解析、war文件的部署和访问、常见问题的解决方法等。其中涉及到的问题包括403问题、数据库连接问题、1130错误、2003错误、Java Runtime版本不兼容问题以及502错误等。最后还提到了项目的前后端连接代码的配置。通过本文的指导,读者可以顺利完成Tomcat的安装与配置,并解决常见的问题。 ... [详细]
  • LINUX学习之centos7营救模式
    今天卸载软件的时候,不小心把GNOME的一些组件给卸了,导致桌面无法正常开启,会卡在启动过程中,而我的开机启动模式又是设置为图形界面,所以一开LINUX就卡住了,进入不了命令行界面 ... [详细]
  • Linux Shell脚步的格式
    Shell脚步等多个命令的组合,可以做成一个shell文件(1.sh)赋权执行执行命令的方式前两张新的进程中执行,对当前进程不产生影响(cdtmp;pwds ... [详细]
  • 1.脚本功能1)自动替换jar包中的配置文件。2)自动备份老版本的Jar包3)自动判断是初次启动还是更新服务2.脚本准备进入ho ... [详细]
  • Linux一键安装web环境全攻略
    摘自阿里云服务器官网,此处一键安装包下载:点此下载安装须知1、此安装包可在阿里云所有Linux系统上部署安装,此安装包包含的软件及版本为& ... [详细]
author-avatar
捕鱼达人2602906405
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有