Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2445104
  • 博文数量: 328
  • 博客积分: 4302
  • 博客等级: 上校
  • 技术积分: 5486
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-01 11:14
个人简介

悲剧,绝对的悲剧,悲剧中的悲剧。

文章分类

全部博文(328)

文章存档

2017年(6)

2016年(18)

2015年(28)

2014年(73)

2013年(62)

2012年(58)

2011年(55)

2010年(28)

分类:

2011-03-15 15:41:35


关键词:bash_rc bash_profile /etc/profile /etc/bashrc

   /etc/profile
 [macg@vm test]$ cat /etc/profile
# /etc/profile

# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
  /etc/profile用于设环境变量,其他函数和别名,在/etc/bashrc里设

pathmunge () {
redhat新增了一个函数pathmugen,专门用于填加PATH
        if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
           if [ "$2" = "after" ] ; then
              PATH=$PATH:$1
           else
              PATH=$1:$PATH
           fi
        fi
}

# Path manipulation
用pathmunge填加path
if [ `id -u` = 0 ]; then
        pathmunge /sbin
        pathmunge /usr/sbin
        pathmunge /usr/local/sbin
fi
如果是root(uid 0),则填加PATH


# No core files by default
ulimit -S -c 0 > /dev/null 2>&1

通过指令加反引号(` `),生成下面几个环境变量
USER="`id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
HOSTNAME=`/bin/hostname`
HISTSIZE=1000

if [ -z "$INPUTRC" -a ! -f "$HOME/.inputrc" ]; then
    INPUTRC=/etc/inputrc
fi

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC
环境变量设完后,最后一步都是export

把/etc/profile.d/目录下的文件include进来
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        . $i
    fi
done

释放几个临时变量的空间
unset i
unset pathmunge   



  /etc/bashrc
 [root@vm test]# cat /etc/bashrc
# /etc/bashrc

# System wide functions and aliases
即在此文件里加alias或function
# Environment stuff goes in /etc/profile

# by default, we want this to get set.
# Even for non-interactive, non-login shells.
if [ "`id -gn`" = "`id -un`" -a `id -u` -gt 99 ]; then  
        umask 002                       
注意这里特别要求,必须uid=gid,且uid >99 (普通用户)
才能分配权限002:
root全权(0)
本人全权(0)
其他group员可r可x不可写(2)
else
        umask 022                       
否则,即uid!=gid<99(即系统用户),则
umask是022:
root全权(0),
其他人包括本人可r可x不可写(2)
fi



 
   /etc/profile.d
[root@vm test]# ls /etc/profile.d        
colorls.csh  glib2.csh  gnome-ssh-askpass.csh  krb5.csh  lang.csh  less.csh  vim.csh  which-2.sh colorls.sh   glib2.sh   gnome-ssh-askpass.sh   krb5.sh   lang.sh   less.sh   vim.sh
[root@vm test]# more /etc/profile.d/colorls.sh
# color-ls initialization

alias ll='ls -l' 2>/dev/null
alias l.='ls -d .*' 2>/dev/null
COLORS=/etc/DIR_COLORS
[ -e "/etc/DIR_COLORS.$TERM" ] && COLORS="/etc/DIR_COLORS.$TERM"
[ -e "$HOME/.dircolors" ] && COLORS="$HOME/.dircolors"
[ -e "$HOME/.dircolors.$TERM" ] && COLORS="$HOME/.dircolors.$TERM"
[ -e "$HOME/.dir_colors" ] && COLORS="$HOME/.dir_colors"
[ -e "$HOME/.dir_colors.$TERM" ] && COLORS="$HOME/.dir_colors.$TERM"
[ -e "$COLORS" ] || return

`dircolors --sh "$COLORS"`
[ -z "$LS_COLORS" ] && return

if ! egrep -qi "^COLOR.*none" $COLORS >/dev/null 2>/dev/null ; then
        alias ll='ls -l --color=tty' 2>/dev/null
        alias l.='ls -d .* --color=tty' 2>/dev/null
        alias ls='ls --color=tty' 2>/dev/null
fi





用户级环境变量文件

    在home 目录下,运行ls -a
 $ls -a
 .bash_logout Desktop     .gconf    .gnome2          .gtkrc             .metacity       .rhn-applet.conf  .bash_profile  .dmrc     .gconfd  .gnome2_private  .gtkrc-1.2-gnome2  .nautilus       .Trash .bash_history  .bashrc        .eggcups  .gnome   .gstreamer-0.8   .ICEauthority      .recently-used  .zshrc


    .bashrc
 每次打开新的终端(如新的 xterm 窗口)时,都要被读取,以千万别把PATH这种追加型的设置放在.bashrc内
[macg@vm test]$ more .bashrc

# User specific aliases and functions     
在.bashrc自定义别名和函数

# Source global definitions                     
if [ -f /etc/bashrc ]; then
        . /etc/bashrc
先去调用系统级的/etc/bashrc的别名和函数
fi   


   bash_profile
当您login shell 时要执行的命令, .bash_profile只在会话开始时被读取一次
[macg@vm test]$ more .bash_profile

# .bash_profile


# Get the aliases and functions      
if [ -f ~/.bashrc ]; then        
        . ~/.bashrc
.bash_profile总是被设置成先读取相同目录下~/.bashrc的内容
fi

# User specific environment and startup programs
可以在这里加自定义的PATH之类的,或修改别的环境变量
PATH=$PATH:$HOME/bin       
export PATH

unset USERNAME  


   .bash_history :记录了以前输入的命令

   .bash_logout :退出 shell 时要执行的命令


转载自:http://blog.sina.com.cn/s/blog_6151984a0100ej4n.html
阅读(1778) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~