LINUX 环境变量总结

LINUX 环境变量总结

我们在Linux下安装系统软件的时候,经常遇到一些系统环境变量配置的问题。什么是环境变量?如何定制环境变量?我将在下面做一些介绍。

一、什么是环境变量?

Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。

二、定制环境变量 

环境变量是和Shell紧密相关的,它是通过Shell命令来设置的。环境变量又可以被所有当前用户所运行的程序所使用。对于bash来说,可以通过变量名来访问相应的环境变量。

下面通过几个实例来说明

1.显示环境变量HOME 

$ echo $HOME

/home/admin

2.设置一个新的环境变量NAME

$ export NAME=
RaidCheng


$ echo $NAME

RaidCheng

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

$ env

HOSTNAME=test

TERM=vt100

SHELL=/bin/bash

HISTSIZE=1000

SSH_CLIENT=202.xxx.xxx.xxx 53694 22

CATALINA_BASE=/usr/local/jakarta-tomcat

SSH_TTY=/dev/pts/0

ANT_HOME=/usr/local/ant

JAVA_OPTS=-server

USER=admin

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

$ set

BASH=/bin/bash

BASH_VERSINFO=([0]=
2
 [1]=
05b
 [2]=
0
 [3]=
1
 [4]=
release
 [5]=
i386-redhat-linux-gnu
)

BASH_VERSION=
2.05b.0(1)-release


CATALINA_BASE=/usr/local/jakarta-tomcat

CATALINA_HOME=/usr/local/jakarta-tomcat

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

$ export NAME=
RaidCheng


$ echo $NAME

RaidCheng

$ unset NAME

$ echo $NAME

6.使用readonly命令设置只读变量 

$ export NAME=
RaidCheng


$ readonly NAME

$ unset NAME

-bash: unset: NAME: cannot unset: readonly variable

$ NAME=
New
 #会发现此也变量不能被修改

-bash: TEST: readonly variable

三、常见的环境变量 

PATH      决定了shell将到哪些目录中寻找命令或程序

HOME      当前用户主目录

HISTSIZE    历史记录数

LOGNAME     当前用户的登录名 

HOSTNAME    指主机的名称

SHELL      前用户Shell类型 

LANGUGE     语言相关的环境变量,多语言可以修改此环境变量

MAIL      当前用户的邮件存放目录 

PS1       基本提示符,对于root用户是#,对于普通用户是$

PS2       附属提示符,默认是“>”

四、通过C程序来访问和设置环境变量 

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

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

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

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

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

#include 

extern char**environ;

int main ()

{

char**var;

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

printf (
%s /n 
,*var);

return 0;

}

五、环境变量文件

通过修改一些相关的环境定义文件来修改环境变量,比如对于RedHat,与环境相关的文件有/etc/profile和~/.bash_profile等。修改完毕后重新登录一次或运行命令source xxx就生效了。

转载于:https://my.oschina.net/lxtesc/blog/115241

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/110187.html原文链接:https://javaforall.net

(0)
上一篇 2021年8月22日 下午1:00
下一篇 2021年8月22日 下午2:00


相关推荐

  • er图转换成关系模型的例题_如何将ER图转化为关系模型(超详细、含例题)

    er图转换成关系模型的例题_如何将ER图转化为关系模型(超详细、含例题)如何把 ER 模型转换为关系模型这是数据库工程设计进行到逻辑设计的一重大环节 简单的说 如果概念设计是用 ER 模型 整合为全局的 ER 模型 那么在逻辑设计这块 主要任务就是把 ER 模型转换为关系模型 转换只需知道三个转换准则 1 1 遇到 1 1 关系的话在两个实体任选一个添加另一个实体的主键即可 1 N1 N 遇到 1 N 关系的话在 N 端添加另一端的主键 假如有学生和班级两个实体 一个班级可以容纳多个学生 但是一个学

    2026年3月18日
    1
  • Vue(3)webstorm代码格式规范设置与vue模板配置

    Vue(3)webstorm代码格式规范设置与vue模板配置编译器代码格式规范设置通常我们写代码时,代码缩进都是4个空格,但是在前端中,据全球投票统计,建议使用2个空格来进行代码缩进。首先我们打开webstorm中的设置,如果使用的是mac的同学直接使用c

    2022年7月31日
    100
  • 在网页和移动端使用 Cursor

    在网页和移动端使用 Cursor

    2026年3月16日
    2
  • qlistwidget虚线_QlistWidget自定义item[通俗易懂]

    qlistwidget虚线_QlistWidget自定义item[通俗易懂]东西不能知道拿来用,但可以借鉴效果简单版QListWidget*list=newQListWidget;QListWidgetItem*item=newQListWidgetItem(list,0);item->setSizeHint(QSize(100,100));QWidget*w=newQWidget(list);QHBoxLayout*layout=newQHBo…

    2022年6月6日
    39
  • display:flex垂直居中

    display:flex垂直居中布局说明:1.场次为一场比赛     2.比赛双方是交战的两个队伍        3.一场比赛可以有多种玩法,所以场的每个玩法的布局的高度都不确定。主要说下我学到的垂直居中的flex。1.第一次尝试。1divclass=”parent”>2h1>我是通过flex的水平垂直居中噢h1>3h1>我是通过fl

    2022年6月14日
    70
  • 设置pip源

    设置pip源我使用pip镜像源有两种方式:一、下载最后加上-ihttp://pypi.doubanio.com/simple–trusted-hostpypi.doubanio.com缺点是每次下载都要粘贴一次,略为麻烦。二、直接更改pip的默认下载源打开这条路径(一般没有pip文件夹,需要自己创建)C:\Users\gaz\pip新建一个txt文件内容为:[global]index-url=https://pypi.douban.com/simple/…

    2022年5月9日
    71

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号