Linux环境变量总结

个人博客:https://suveng.github.io/blog/​​​​​​​

Linux环境变量总结

Linux是一个多用户多任务的操作系统,可以在Linux中为不同的用户设置不同的运行环境,具体做法是设置不同用户的环境变量。

Linux环境变量分类

一、按照生命周期来分,Linux环境变量可以分为两类: 1、永久的:需要用户修改相关的配置文件,变量永久生效。 2、临时的:用户利用export命令,在当前终端下声明环境变量,关闭Shell终端失效。

二、按照作用域来分,Linux环境变量可以分为: 1、系统环境变量:系统环境变量对该系统中所有用户都有效。 2、用户环境变量:顾名思义,这种类型的环境变量只对特定的用户有效。

Linux设置环境变量的方法

一、在/etc/profile文件中添加变量 对所有用户生效(永久的) 用vim在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永久的”。 例如:编辑/etc/profile文件,添加CLASSPATH变量

  vim /etc/profile    
  export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行source /etc/profile不然只能在下次重进此用户时生效。 二、在用户目录下的.bash_profile文件中增加变量 【对单一用户生效(永久的)】vim ~/.bash_profile文件中增加变量,改变量仅会对当前用户有效,并且是“永久的”。

vim ~/.bash.profile
export CLASSPATH=./JAVA_HOME/lib;$JAVA_HOME/jre/lib

注:修改文件后要想马上生效还要运行$ source ~/.bash_profile不然只能在下次重进此用户时生效。 三、直接运行export命令定义变量 【只对当前shell(BASH)有效(临时的)】 在shell的命令行下直接使用export 变量名=变量值 定义变量,该变量只在当前的shell(BASH)或其子shell(BASH)下是有效的,shell关闭了,变量也就失效了,再打开新shell时就没有这个变量,需要使用的话还需要重新定义。

Linux环境变量使用

一、Linux中常见的环境变量有:

  • PATH:指定命令的搜索路径

PATH声明用法: PATH=$PAHT:<PATH 1>:<PATH 2>:<PATH 3>:--------:< PATH n > export PATH 你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效。 可以利用echo $PATH查看当前当前系统PATH路径。

  • HOME:指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)。
  • HISTSIZE:指保存历史命令记录的条数。
  • LOGNAME:指当前用户的登录名。
  • HOSTNAME:指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的
  • SHELL:指当前用户用的是哪种Shell。
  • LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
  • MAIL:指当前用户的邮件存放目录。

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

二、Linux也提供了修改和查看环境变量的命令,下面通过几个实例来说明:

  • echo 显示某个环境变量值 echo $PATH
  • export 设置一个新的环境变量 export HELLO=“hello” (可以无引号)
  • env 显示所有环境变量
  • set 显示本地定义的shell变量
  • unset 清除环境变量 unset HELLO
  • readonly 设置只读环境变量 readonly HELLO

三、C程序调用环境变量函数

  • getenv()返回一个环境变量。
  • setenv()设置一个环境变量。
  • unsetenv()清除一个环境变量。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux命令行基础

    AT&T公司于20世纪70年代发布了UNIX系统。经过多年的发展,Unix不再是某一个具体操作系统的名称,而是对遵循Unix规范、设计和哲学的一类操作系统的统称...

    雪飞鸿
  • 使用YII2构建一个定时任务管理后台

    创建一个用于测试的方法吧 commands/tasks/TestController.php

    botkenni
  • Yii2 redis同步数据到mysql

    本次案例讲解将如何将商城中商品浏览次数通过缓存记录并写入mysql中 具体的redis安装过程暂且就省略了.....

    botkenni
  • 【Linux】BASH基本攻略,分分钟PK掉黑客达人

    你是否注意到,电影中超级讨厌的黑客仅仅只需键入几行指令,盯着黑底绿字的屏幕就能轻易渗透最安全的银行系统,将银行账户洗劫一空。这个人是如何只需敲击几下键盘便能畅通...

    昱良
  • 进程间通讯IPC的几种方式的优缺点总结

    Unix发展做出重大贡献的两大主力AT&T的贝尔实验室及BSD(加州大学伯克利分校的伯克利软件发布中心)在进程间通信方面的侧重点有所不同。前者对Unix早期的进...

    WindSun
  • Kafka、Logstash、Nginx日志收集入门

    Nginx作为网站的第一入口,其日志记录了除用户相关的信息之外,还记录了整个网站系统的性能,对其进行性能排查是优化网站性能的一大关键。 Logstash是一个接...

    掌上编程
  • Zookeeper基础命令操作

    安装参考链接https://blog.csdn.net/qiunian144084/article/details/79192819

    chenchenchen
  • [译]关于Node.js streams你需要知道的一切

    Node.js的stream模块是有名的应用困难,更别说理解了。那现在可以告诉你,这些都不是问题了。

    frontoldman
  • 手把手使用SonarQube分析、改善项目代码质量

    SonarQube是一个开源的代码质量管理系统,可用来快速定位代码中的Bug、漏洞以及不优雅的代码。它支持几乎所有的常见编程语言,例如Java、JavaScri...

    用户1516716
  • linux命令

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    chenchenchen

扫码关注云+社区

领取腾讯云代金券