jasmine214--love

只有当你的内心总是充满快乐、美好的愿望和宁静时,你才能拥有强壮的体魄和明朗、快乐或者宁静的面容。
posts - 731, comments - 60, trackbacks - 0, articles - 0

shell 环境变量配置文件相关

Posted on 2010-11-25 11:16 幻海蓝梦 阅读(2279) 评论(0)  编辑  收藏 所属分类: Linux

环境变量配置文件

Ubuntu中有如下几个文件可以设置环境 变量
1
/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2
/etc/environment:在登录时操作系统使用的第 二个文件,系统在读取你自己的profile,设置环境文件的环境变量。
3
~/.bash_profile:在 登录时用到的第三个文件是.profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该 文件仅仅执行一次!默 认情况下,他设置一些环境变游戏量,执行用户的.bashrc文件。/etc/bashrc:为每一个运行bash shell的用户执行此文件.bash shell被打开时,该文件被读取.
4
~/.bashrc:该 文件包含专用于你的bash shellbash信息,当登录时以及每次打开新的shell,该 该文件被读取。


几个环境变量的优先级

1>2>3


设置永久环境变量

1.环境变量配置中,要先删除.bash_profile中的三行关于.bashrc的定义,然后把环境变量配置在.bashrc
2.
选择要使用的java环境:update-alternatives –config java
3.
要使得刚修改的环境变量生效:source .bashrc
4.
查看环境变量:env

可以放到/etc/bash/bashrc, 这样就是系统级的



环境变量命令

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/xiaosu

3.2 设置一个新的环境变量

$ export HELLO=”Hello!”

$ echo $HELLO

Hello!

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

$ env

SSH_AGENT_PID=1875

HOSTNAME=xiaosu-latop

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搜 索的路径之外的程序了。

-------------------------------

shell 环境变量

shell 环境变量是所有shell 程序都会接受的参数。shell程序运行时,都会接收一组变量,这组变量就是环境变量。常用的环境变量:
名称 描述
PATH 命令搜索路径,以冒号为分隔符.注意与DOS下 不同的是, 当前目录不在系统路径里
HOME 用户home目录的路径名,是cd命令的默认参 数
COLUMNS 定义了命令编辑模式下可使用命令行的长度
EDITOR 默认的行编辑器
VISUAL 默认的可视编辑器
FCEDIT 命令fc使用的编辑器
HISTFILE 命令历史文件
HISTSIZE 命令历史文件中最多可包含的命令条数
HISTFILESIZE 命令历史文件中包含的最大行数
IFS 定义SHELL使用的分隔符
LOGNAME 用户登录名
MAIL 指向一个需要SHELL监视其修改时间的文件. 当该文件修改后, SHELL将发消息You hava mail给用户
MAILCHECK SHELL检查MAIL文件的周期,单位是秒
MAILPATH 功能与MAIL类似.但可以用一组文件,以冒号分隔,每个文件后可跟一个问号和一条发向用户的消息
SHELL SHELL的路径名
TERM 终端类型
TMOUT SHELL自动退出的时间,单位为秒,若设为0则禁止SHELL自动退出
PROMPT_COMMAND 指定在主命令提示符前应执行的命令
PS1 主 命令提示符
PS2 二级命令提示符,命令执行过程中要求输入数据时用
PS3 select 的命令提示符
PS4 调试命令提示符
MANPATH 寻找手册页的路径,以冒号分隔
LD_LIBRARY_PATH 寻找库的路径,以冒号分隔

这些变量,要关注的最多的 就是PATH, 其重要性不要我说了吧?

http://blog.csdn.net/xiaosu_521/archive/2008/03/09/2160458.aspx


只有注册用户登录后才能发表评论。


网站导航: