分类: LINUX
2012-02-29 13:23:45
1. Linux常用环境变量有哪些?
PATH说简单点,就是输入命令之后,就会在其中定义的路径当中去查找;
HOME是指用户的工作目录;
HISTSIZE是指保存历史命令记录的条数;
LOGNAME是指当前用户的登录名;
HOSTNAME是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的;
SHELL是指当前用户用的是哪种Shell;
LANG/LANGUGE是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量;
MAIL是指当前用户的邮件存放目录;
PS1是基本提示符,对于root用户是#,对于普通用户是$。PS2是附属提示符,默认是“>”;
IFS是shell内定的一个变量,默认定义的值为
2. 涉及到的相关命令
env:显示所有的环境变量;
set:显示本地定义的Shell变量;
unset:清除设置的变量(包括环境变量);
export:导出设置的环境变量;
readonly:设置变量为可读,不能修改此变量;
source:后面的参数是文件,表示读取并执行该文件当中的命令你。
如果在C程序中,与环境变量相关的函数有:
getenv()
setenv()
unsetenv()
3. 变量、本地变量和环境变量
变量:按照定义来说,变量是存储设备中的一些可读写的存储单元,变量可以定制用户本身的工作环境,使用变量可以保存有用信息,使系统获知用户相关的设置,变量也用于保存暂时的一些信息。
本地变量:本地变量在用户现在的shell生命期的脚本中使用,也就是说,如果退出当前的Shell,那么这个变量就会消失。
环境变量:环境变量用于所有用户进程(经常称为子进程)。登录进程称为父进程。Shell中执行的用户进程均称为子进程。不像本地变量(只用于现在的Shell)环境变量可用于所有子进程,这包括编辑器、脚本和应用。环境变量可以在命令行中设置,但用户注销时这些值将丢失,因此最好在.profile文件中定义。系统管理员可能在/etc/profile文件中已经设置了一些环境变量。将之放入profile文件意味着每次登录时这些值都将被初始化。传统上,所有环境变量均为大写。环境变量应用于用户进程前,必须用export命令导出 。环境变量与本地变量设置方式相同。
4. 有意思的Shell命令提示符
你想让你的命令行提示符变得有意思吗?那就去修改环境变量PS1和PS2吧。
例如,我们可以将它们修改为如下:
那么实际的效果会是下面的,如果你的上次命令执行成功的话,就会出现笑脸,否则则是一张哭泣的脸(具体的设置参数可以重新查找资料)。
5. .bash_profile文件
/etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件就会被执行,并从/etc/profile.d目录的配置文件中搜集shell的设置。
~/.bash_profile:每个用户都可使用该文件,主要用于自己使用的Shell信息,当用户登录时,该文件仅仅执行一次。默认情况下,他设置一些环境变量,执行用户的~/.bashrc文件。
6. .bashrc文件
/etc/bashrc:为每一个运行bash shell的用户执行此文件。当bash shell被打开时,该文件被读取。
~/.bashrc:该文件包含当前用户的bash shell的bash信息,当登录时以及每次打开新的Shell时,该该文件被读取。
7. bash_logout
~/.bash_logout:当每次退出Shell时,执行该文件。
8. 既然有了~/.bash_profile,为什么还需要~/.bashrc?
这两个文件的设置是相同的,对于这个问题,查了一些资料,我是这么想的,.bashrc文件当中主要是设置一些个性化的设置,比如上面说的PS1变量的设置,可以让用户变得灵活,区别不是很大。
9. getconf
获取系统配置变量。
10. 添加PATH环境变量
也就是修改~/.bash_profile文件,用“:”隔开即可。