/etc/profile 解析

来源:互联网 发布:mac phpstorm显示行号 编辑:程序博客网 时间:2024/05/16 09:58

 

与环境变量相关的文件可能还会有/etc/bashrc等,不过这是shell变量,是局部的,对于特定的shell器作用。/etc/profile是全局的,适用于所有的shell

profile文件会告诉shell使用什么语言,什么shell,命令的搜索路径等等。

一些标准的环境变量:

SHELL 默认shell

LANG 默认语言

PATH linux寻找命令的默认路径,一般包括/bin,/usr/bin,/sbin,/usr/sbin,

/usr/X11R6/bin,/opt/bin,/usr/local/bin等。用户可以自行添加,

/home/bin.

MANPATH man手册的默认路径

INPUTRC 默认键盘映象,详见/etc/inputrc

BASH_ENV bash shell的环境变量,通常在~/.bashrc

DISPLAY X窗口适用的控制台,DISPLAY=0对应于控制台F7,DISPLAY=1对应于控制

F8,DISPLAY=server0向远程计算机发送GUI应用程序。

COLORTERM GUI中的默认终端,通常是gnome-terminal

USER 自动设置当前登陆用户的用户名。

LONGNAME 通常设置为$USER

MAIL 设置特定$USR的标准邮件目录

HOSTNAME 设置为/bin/hostname的命令输出

HISTSIZE 设置为history命令记住的命令数

例子:

#

# /etc/profile

#

 

#修改或添加PATH可以自定义命令的寻找路径,如果你不想将可执行文件添加到默认目录中但又可以在终端中使用命

#令,那就改吧。

export PATH="/bin:/usr/bin:/sbin:/usr/sbin:/usr/X11R6/bin:/opt/bin:/usr/local/bin"

 

export MANPATH="/usr/man:/usr/X11R6/man"

export LESSCHARSET="latin1"

export INPUTRC="/etc/inputrc"

export LESS="-R"

 

# Locale settings (find your locale with ''locale -a'')

export LANG="zh_CN" #修改这里可以改变系统的默认使用语言

export LC_COLLATE="C"

 

export COLUMNS LINES

 

export PS1=''[/u@/h /W]/$ ''

export PS2=''> ''

 

umask 022

……

……

# End of file

 

 

登录Linux/etc/profile~/.bash_profile等几个文件的执行过程

文章摘要: 关于登录linux时,/etc/profile~/.bash_profile等几个文件的执行过程。 在登录Linux时要执行文件的过程如下: 在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile ~/.bash_login ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile ~/.bash_login ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~

关于登录linux时,/etc/profile~/.bash_profile等几个文件的执行过程。

在登录Linux时要执行文件的过程如下:

在刚登录Linux时,首先启动 /etc/profile 文件,然后再启动用户目录下的 ~/.bash_profile ~/.bash_login ~/.profile文件中的其中一个,执行的顺序为:~/.bash_profile ~/.bash_login ~/.profile。如果 ~/.bash_profile文件存在的话,一般还会执行 ~/.bashrc文件。因为在 ~/.bash_profile文件中一般会有下面的代码:

if [ -f ~/.bashrc ] ; then

. ./bashrc

fi

~/.bashrc中,一般还会有以下代码:

if [ -f /etc/bashrc ] ; then

. /bashrc

fi

所以,~/.bashrc会调用 /etc/bashrc文件。最后,在退出shell时,还会执行 ~/.bash_logout文件。

执行顺序为:/etc/profile -> (~/.bash_profile | ~/.bash_login | ~/.profile) -> ~/.bashrc -> /etc/bashrc -> ~/.bash_logout

关于各个文件的作用域,在网上找到了以下说明:

1/etc/profile 此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行. 并从/etc/profile.d目录的配置文件中搜集shell的设置。

2/etc/bashrc: 为每一个运行bash shell的用户执行此文件.bash shell被打开时,该文件被读取。

3~/.bash_profile: 每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。

4~/.bashrc: 该文件包含专用于你的bash shellbash信息,当登录时以及每次打开新的shell,该该文件被读取。

5~/.bash_logout:当每次退出系统(退出bash shell),执行该文件. 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,~/.bashrc等中设定的变量(局部)只能继承 /etc/profile中的变量,他们是"父子"关系。

6~/.bash_profile 是交互式、login 方式进入 bash 运行的~/.bashrc 是交互式 non-login 方式进入 bash 运行的通常二者设置大致相同,所以通常前者会调用后者。

 

源文档 <http://hi.baidu.com/piaozhiye/blog/item/8159a1437bdfd81b9313c6fe.html>