一、Linux下环境变量的定义首先,环境变量分为两种,系统环境变量和用户环境变量。
系统环境变量对所有用户都有效,二用户环境变量只对某个用户有效。
Linux下,环境变量被分别保存在多个文件中。第一级:/etc/profile
该文件在用户第一次登录的时候被加载(?引用他处,为什么是第一次登录),也是操作系统定义环境变量时读取的第一个文件。此文件为所有的用户设置环境信息。
在我使用的Ubuntu 10.10中,该文件默认并没有直接定义全局变量,而是通过读取/etc/profile.d 、/etc/profile.d/*.sh和/etc/bash.bashrc。第二级:/etc/environment
该文件是用户在登录操作系统之后,操作系统配置环境时所使用的第二个文件。
顾名思义,该文件中保存了一系列环境变量,这些变量将对所有的用户和终端起效。到这一级为止,文件定义的都是系统环境变量,之后的文件都是在定义用户变量。第三级:
~/.bash_profile
在登录的时候配置环境所用到的第三个文件。
值得注意的是在不同Linux中,这个文件的名字不同,可能的名字有~/.bash_profile、~/.bash_login、~./profile其中的一种或者几种。www.linuxidc.com如果存在的话,执行的顺序为~/.bash_profile、~/.bash_login、~/.profile。
在我手里的Ubuntu10.10中,只有一个~/.profile
在我的操作系统中,该文件定义了变量的使用,通常情况下第四级中的~/.bashrc被忽略。第四级:
~/.bashrc
该文件包含了专用于一个用户的bash的环境信息,每次登录或者新开shell的时候(包括在图形界面下打开新的终端),该文件被读取。
该文件只会在新开的终端中起效。原有终端不会受到影响。~/.bash_logout
该文件在每次退出bash的时候被执行。二、Linux下环境变量的使用1、shell命令
set显示当前shell的变量,包括了当前用户的变量。
注意,"shell的变量"包括当前用户的一系列文件以及shell自身的变量,比如BASH、BASH_ARGC等。
shell变量的定义可以通过直接输入命令"aaa=bbb",来实现定义变量aaa的值为bbb。在我手中的Ubuntu10.10中这个命令如果不带参数直接执行的话,不会显示变量,而是显示了大量的代码。
若要查询某个shell变量的值,可以使用命令"set|grep 变量名"。env则只显示当前用户的变量。
export若不带参数则显示用户变量的shell变量,若带参数,则将该shell参数添加至用户变量。readonly命令可以将变量设定为只读,只读的参数不能被修改或者删除。2、C程序命令
getenv()返回一个环境变量。setenv()设置一个环境变量。unsetenv()清除一个环境变量。3、常见的环境变量
PATH:决定了shell将在哪些目录中寻找命令和程序
HOME:当前用户的主目录
MAIL:当前用户的邮件存放目录
SHELL:当前用户用的是那种Shell
HISTSIZE:保存历史命令记录的条数
LOGNAME:当前用户的登录名
HOSTNAME:主机的名称。
LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量
PS1:基本提示符,对于root是#,对于普通用户为$,在我手中的ubuntu10.10中则是一个字符串,显示了用户名、系统名和当前目录名在内的信息。
PS2:是附属提示符,默认是">"。可以修改此环境变量来修改当前的命令符。Scientific Linux 5.5 图形安装教程VMware中安装Ubuntu共享文件夹找不到的问题相关资讯 Linux教程
- Linux教程:如何在命令行中查看目 (07/28/2014 12:22:23)
- Linux 修改root密码 (11/03/2012 07:53:38)
- su - root 与su root的区别 (06/06/2012 00:39:40)
| - Linux进程间通信:消息队列 (01/28/2013 09:43:00)
- U盘安装Linux开机无法启动解决方法 (10/07/2012 08:55:52)
- Windows 7/Linux 同步时间 (05/15/2012 06:17:55)
|
本文评论 查看全部评论 (0)