本文出处:http://hi.baidu.com/%D2%BB%BF%C3%BC%E1%C7%BF%B5%C4%B2%DD/blog/item/5881c2d5505b69c951da4bdd.html
/etc下:(bash.bashrc[Ubuntu]或bashrc[CentOS]);environment;profile 普通用户及root用户家目录下:.bashrc;(.profile[Ubuntu]或.bash_profile[CentOS]) 环境变量配置文件 1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。 2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。 3、~/.bash_profile:在登录时用到的第三个文件是.bash_profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。/etc/bash.bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。 4、~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。 几个文件的优先级:1>2>3 在linux下,如果是bash环境,用户登录时读取设置文件的顺序是/etc/profile --> ~/.bash_profile --> ~/.bashrc --> /etc/bash.bashrc。注意在~/.bash_profile这一步,如果没有~/.bash_profile ,则默认读取~/.bash_login,如果没有~/.bash_login 才读取~/.profile。 根据发行版本的情况,有两个基本的系统级配置文件:/etc/bash.bashrc和/etc/profile。这些配置文件包含两组不同的变量:shell变量和环境变量。前者只是在特定的shell中固定(如bash),后者在不同shell中固定。shell变量是局部的,而环境变量是全局的。 注意:尽量避免修改root用户的环境变量配置文件,因为那样可能会造成潜在的危险。最好不要把当前路径”./”放到PATH里,这样可能会受到意想不到的攻击。 使用: 把设置的环境变量给所有用户使用:/etc/bashrc;/etc/profile 修改全局的环境变量在/etc/profile 修改某个用户的环境变量在/home/用户名/.bash_profile 相关命令: 1、echo显示环境变量 # echo $HOME /root 2、export设置环境变量 $ export HELLO=”Hello!” 3、env显示所有环境变量 $ env 4、set显示所有本地定义的shell变量 $ set 5、unset清除环境变量 $ export TEST=”test” $ env | grep TEST #此命令有输出,证明环境变量TEST已经存在了 TEST=test $ unset TEST #注意不是unset $TEST !!! $ env | grep TEST #此命令无输出,证明环境变量TEST已经不存在了 6、readonly设置只读变量(变量不可以被修改或清除) $ export TEST=”Test” $ readonly TEST 让/etc/profile的修改立即生效: 1)$. /etc/profile 注意:.和/etc之间有空格 2)$source /etc/profile 如果/etc/profile中配置的环境变量无法在root用户下使用,可以用sudo su - 来加载环境变量。 实践经验: 在/etc/profile下添加export PATH=$PATH:/sbin 重启后: 1)$ifconfig 可以执行 2)$sudo su #ifconfig 不可以执行 3)$sudo su - #ifconfig 可以执行 4)$su #ifconfig 可以执行 5)$ sudo -H ifconfig 可以执行 常见的环境变量 PATH 决定了shell将到哪些目录中寻找命令或程序 HOME 当前用户主目录 HISTSIZE 历史记录数 LOGNAME 当前用户的登录名 HOSTNAME 指主机的名称 SHELL 前用户Shell类型 LANGUGE 语言相关的环境变量,多语言可以修改此环境变量 MAIL 当前用户的邮件存放目录 PS1 基本提示符,对于root用户是#,对于普通用户是$ PS2 附属提示符,默认是“>” 通过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; } |
ubuntu下设置环境变量
最新推荐文章于 2024-06-28 23:56:46 发布