linux设置环境变量_Linux 基础教程(2)——环境变量

本文详细介绍了Linux环境变量的概念、查看与设置方法,包括临时定义、保持有效至会话结束和长期有效的方式。强调了PATH、HOME、PWD等重要环境变量的作用,并探讨了在编译运行过程中涉及的C_INCLUDE_PATH、CC、CXX、LDFLAGS等环境变量的使用。通过实例展示了如何通过设置环境变量让HDF5使用指定版本的zlib。
摘要由CSDN通过智能技术生成

本文是南科大科学与工程计算中心 Linux 系列教程的第二篇。我们将学习环境变量的概念和使用方法,并了解那些影响程序编译和运行的常用环境变量。

  • 预计阅读时间:30min

  • 前置知识:了解如何启动 shell、C 语言程序编译流程(后文亦会简要介绍)

01

什么是环境变量?为什么要关心它?

在操作系统中,程序会以进程的形式执行,包括我们平常使用的 shell(如 Bash, Zsh, Bourne)。要执行一行命令时,shell 会相应地创建一个新的子进程。对于一个进程而言,环境变量是一系列具有特定名字的值(即一系列键值对);作为进程运行环境的一部分,这些值往往是一些字符串,它们可以被动态设置,并在不改变程序代码的条件下影响程序的行为

环境变量常用于配置用途,比如指定搜索目录、密码、端口等。父进程可以把自己的环境变量传递给子进程,所以人们常常先在 shell 会话(父进程)中设置环境变量以指定配置,再启动待运行的程序(作为子进程)。子进程在运行过程中通过编程接口读取环境变量(例如,C 程序可以通过 getenv("NAME") 的方式读取名为 NAME 的环境变量),并决定自己的行为。因此,环境变量也可以看作程序的一种输入数据。

因为 shell、编译器等通用的程序所读取的环境变量名称比较固定(例如PATH, LD_LIBRARY_PATH, CFLAGS 等,后文会详细介绍),所以我们可以通过设置环境变量,实现修改可执行文件查找目录、指定编译参数等目的。

02

查看环境变量

运行 printenv 命令,可以列出当前 shell 会话中的所有环境变量,如:

[user@host ~]$ printenvLANG=en_US.UTF-8USER=userLOGNAME=UserHOME=/work/userPATH=/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbinMAIL=/var/spool/mail/user...

若要查看某个特定的环境变量,可以使用 echo 命令,如:

[user@host ~]$ echo $PATH/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

在这个例子中,PATH 是我们想要查看的环境变量的名称;在它前面加上 $ 符号后,shell 会将 PATH 视作一个变量,读取它的值,得到 /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin 这一字符串;然后,这个值被 echo 打印输出。

注:这里的 $PATH 也可写作 ${PATH}。

PATH 是一个特殊的环境变量。在 Linux 系统中,它的值由若干个目录路径拼接而成,并以冒号分隔。当我们在 shell 中输入一行(non built-in)命令时,shell 会按照从左到右的顺序到这些路径中查找与该命令同名的文件,直到找到为止。

03

设置环境变量

方法 1:临时定义

在要运行的命令前面(同一行内),直接加上 key=value 指定环境变量,如:

CC=icc CFLAGS="-O3 -Wall" ./configure

注:这行命令使用 CC 环境变量指定了 icc (Intel C Compiler) 作为 C 编译器,用 CFLAGS 环境变量指定了编译优化和警告参数,并运行 ./configure 进行软件安装前的配置。

使用这种方式指定的环境变量仅对该行命令有效,一般用于一次性的操作。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值