`

环境变量

 
阅读更多

 

1、引言

 

    在linux系统下,如果你下载并安装了应用程序,很有可能在键入它的名称时出现“command not found”的提示内容。如果每次都到安装目标文件夹内,找到可执行文件来进行操作就太繁琐了。这涉及到环境变量PATH的设置问题,而PATH的设置也是在linux下定制环境变量的一个组成部分。本文基于RedHat 9.0,详细讲解了环境变量定制的问题。

2、变量简介

Linux是一个多用户的操作系统。每个用户登录系统后,都会有一个专用的运行环境。通常每个用户默认的环境都是相同的,这个默认环境实际上就是一组环境变量的定义。用户可以对自己的运行环境进行定制,其方法就是修改相应的系统环境变量。

3、定制环境变量

    环境变量是和Shell紧密相关的,用户登录系统后就启动了一个Shell。对于Linux来说一般是bash,但也可以重新设定或切换到其它的Shell。根据发行版本的情况,bash有两个基本的系统级配置文件:/etc/bashrc和/etc/profile。这些配置文件包含两组不同的变量:shell变量和环境变量。前者只是在特定的shell中固定(如bash),后者在不同shell中固定。很明显,shell变量是局部的,而环境变量是全局的。环境变量是通过Shell命令来设置的,设置好的环境变量又可以被所有当前用户所运行的程序所使用。对于bash这个Shell程序来说,可以通过变量名来访问相应的环境变量,通过export来设置环境变量。下面通过几个实例来说明。

3.1 使用命令echo显示环境变量

 

 

#本例使用echo显示常见的变量HOME

$ echo $HOME  

/home/lqm

 

 

3.2 设置一个新的环境变量

 

$ export HELLO=”Hello!”

$ echo $HELLO

Hello!

 

 

3.3 使用env命令显示所有的环境变量

 

 

$ env

SSH_AGENT_PID=1875

HOSTNAME=lqm

SHELL=/bin/bash

TERM=xterm

HISTSIZE=1000

……

 

 

3.4 使用set命令显示所有本地定义的Shell变量

 

 

$ set

BASH=/bin/bash

……

 

 

3.5 使用unset命令来清除环境变量

 

 

$ export TEST=”test”     #增加一个环境变量TEST

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

TEST=test

$ unset $TEST                #删除环境变量TEST

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

 

 

3.6 使用readonly命令设置只读变量

如果使用了readonly命令的话,变量就不可以被修改或清除了。示例如下:

 

 

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

$ readonly TEST                                                   #将环境变量TEST设为只读

$ unset TEST                                                        #会发现此变量不能被删除

-bash: unset: TEST: cannot unset: readonly variable
$ TEST="New"                                                    #会发现此变量不能被修改

-bash: TEST: readonly variable

 

 

3.7 用C程序来访问和设置环境变量

对于C程序的用户来说,可以使用下列三个函数来设置或访问一个环境变量。

getenv()访问一个环境变量。输入参数是需要访问的变量名字,返回值是一个字符串。如果所访问的环境变量不存在,则会返回NULL。

setenv()在程序里面设置某个环境变量的函数。

unsetenv()清除某个特定的环境变量的函数。

另外,还有一个指针变量environ,它指向的是包含所有的环境变量的一个列表。下面的程序可以打印出当前运行环境里面的所有环境变量:

 

 

#include <stdio.h>

extern char**environ;

int main ()

{

char**var;

for (var =environ;*var !=NULL;++var)

printf ("%s \n ",*var);

return 0;

}

 

 

3.8      通过修改环境变量定义文件来修改环境变量。

需要注意的是,一般情况下,这仅仅对于普通用户适用,避免修改根用户的环境定义文件,因为那样可能会造成潜在的危险。

 

 

$cd                                   #到用户根目录下

$ls -a                                  #查看所有文件,包含隐藏的文件

$vi .bash_profile                 #修改环境变量定义文件

 

 

然后编辑你的PATH声明,其格式为:

PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N>

你可以自己加上指定的路径,中间用冒号隔开。环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$source .bash_profile

需要注意的是,最好不要把当前路径”./”放到PATH里,这样可能会受到意想不到的攻击。完成后,可以通过$ echo $PATH查看当前的搜索路径。这样定制后,就可以避免频繁的启动位于shell搜索的路径之外的程序了。

4 总结

    通过以上的设置,你可以有一个比较方便有效的环境来提高你的工作效率了。

分享到:
评论

相关推荐

    VB获取系统环境变量

    在IT领域,系统环境变量是操作系统用来存储配置信息的关键组件,它们对软件的运行和配置起着重要作用。VB,即Visual Basic,是Microsoft开发的一种面向对象的编程语言,广泛用于开发Windows应用程序。在这个主题中,...

    Windows环境变量读写

    在Windows操作系统中,环境变量是系统用来存储配置信息的关键组件,它们可以被应用程序用来定位系统路径、设置配置或访问特定资源。例如,`PATH`环境变量指定了系统在何处查找可执行文件,而`JAVA_HOME`则指示Java...

    联想拯救者23y7000p出厂环境变量

    在计算机科学领域,环境变量是操作系统用来存储可影响程序运行状态的信息的一种机制。它们是操作系统为应用程序提供的一组参数,通常包含系统路径、配置信息和其他关键设置。在Windows操作系统中,环境变量扮演着至...

    inno setup改变环境变量脚本

    《Inno Setup改变环境变量脚本详解》 Inno Setup是一款强大的Windows安装程序制作工具,它允许开发者自定义安装过程中的各种细节,包括修改系统环境变量。本文将深入探讨如何利用Inno Setup脚本来实现环境变量的...

    JAVA读取环境变量

    ### JAVA读取环境变量 #### 知识点概述 在Java程序中,有时我们需要根据不同的运行环境(如Windows或Linux)来获取系统环境变量。这些环境变量包含了操作系统配置的重要信息,比如路径设置、用户信息等。本文将...

    系统环境变量的添加、修改、删除

    在IT领域,系统环境变量是操作系统为应用程序提供的一组预定义的环境参数,它们对于软件运行至关重要,尤其是在涉及路径配置、编程语言环境等场景中。本文将深入探讨如何通过批处理脚本的方式对Windows系统环境变量...

    C#清除无效的系统环境变量

    在IT领域,尤其是在软件开发中,管理系统的环境变量是一项重要的任务。环境变量是操作系统中存储配置信息的变量,它们影响程序的运行方式。有时,由于各种原因,如软件卸载不彻底或者手动编辑环境变量时出错,可能会...

    Gbase 8sdbaccess环境变量介绍

    Gbase 8sdbaccess环境变量介绍 Gbase 8s dbaccess 环境变量是指在 Gbase 8s 数据库管理系统中,用于控制 dbaccess 工具行为的变量。这些变量可以根据需要进行设置,以达到不同的目的。 1. DBFLTMASK 环境变量 ...

    c#编程设置环境变量

    在C#编程中,环境变量是一个非常重要的概念,它们提供了在不同进程间共享信息的方式,尤其是在配置路径或者系统设置时。Visual Studio 2008是C#开发的一个经典版本,我们可以通过它来创建和管理工程。在这个场景中,...

    c++修改系统环境变量

    在C++编程中,修改系统环境变量是一项常见的任务,特别是在Windows操作系统中。环境变量存储了与用户或系统相关的路径、配置和其他信息,这些信息可供程序在运行时使用。本篇文章将详细探讨如何在C++中实现这个功能...

    java环境变量配置 JDK环境变量

    ### Java环境变量配置详解 #### 一、Java环境变量配置的重要性 在开发Java应用程序之前,首先需要正确地配置Java环境变量。这是因为环境变量是操作系统用来识别和定位Java开发工具的位置的关键参数。通过设置适当的...

    环境变量查看器(WIN32)

    环境变量在计算机系统中扮演着至关重要的角色,它们存储了操作系统和应用程序所需的各种配置信息,如路径、系统设置等。本项目名为“环境变量查看器(WIN32)”,显然是一个利用WIN32 API来实现的工具,用于查看和可能...

    使windows系统环境变量的改变即时生效

    在Windows操作系统中,环境变量是系统用来存储配置信息的关键组件,比如软件的安装路径、库文件的位置等。当需要修改这些变量,特别是涉及到像Java Development Kit (JDK) 这样的开发工具时,通常需要重启计算机才能...

    自动配置环境变量_批处理

    在IT行业中,自动配置环境变量是一项基础且重要的工作,尤其对于开发者来说,频繁地手动配置环境变量会浪费大量时间。批处理(Batch Script)是一种在Windows操作系统中执行一系列命令的脚本方式,非常适合用于自动...

    UG环境变量设置 使用方法

    "UG环境变量设置 使用方法" UG 环境变量设置是指在 UG 软件中对环境变量的设置和使用方法。本文将详细地介绍 UG 环境变量设置的使用方法和相关知识点。 一、UG 环境变量设置的重要性 UG 环境变量设置对 UG 软件的...

    arm环境变量的设置

    ### ARM环境变量设置详解 #### 一、引言 在Linux环境下,无论是开发还是日常使用过程中,正确地配置环境变量都是非常重要的。环境变量能够帮助我们更便捷地管理和使用各种工具和程序。特别是在ARM架构下的Linux...

    在Linux中用批处理设置环境变量的方法

    Linux操作系统是众多IT专业人员工作中的重要平台之一,环境变量作为Linux系统中一个非常重要的概念,它被用于定义系统运行环境的动态属性,诸如系统路径、系统变量等,这些属性会影响到应用程序的运行。在Linux中...

    c# 的winform 获取系统中环境变量

    当你需要获取系统中的环境变量时,这通常涉及到系统配置信息,如管理员权限、当前登录用户信息、系统路径、操作系统详细参数以及处理器相关数据。这些信息对开发需要与系统交互的应用程序至关重要,比如设置安装路径...

    环境变量与SET-UID实验.pdf

    实验主要分为四个部分:管理环境变量、将环境变量从父进程传递给子进程、环境变量与`execve()`函数的关系,以及环境变量在`system()`函数中的应用。 **环境变量管理:** 环境变量是操作系统中存储程序运行上下文...

Global site tag (gtag.js) - Google Analytics