想做跳板机,故想到了这些,然后转载这个篇文章,让更多的朋友看到:
- 作者:KornLee 2005-02-03 15:49:57 来自:Linux先生
- 链接:
- /etc/profile:此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行.
- 并从/etc/profile.d目录的配置文件中搜集shell的设置.
- /etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取.
- ~/.bash_profile:每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该
- 文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件.
- ~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该
- 该文件被读取.
- ~/.bash_logout:当每次退出系统(退出bash shell)时,执行该文件.
- 另外,/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是"父子"关系.
- ~/.bash_profile 是交互式、login 方式进入 bash 运行的
- ~/.bashrc 是交互式 non-login 方式进入 bash 运行的
- 通常二者设置大致相同,所以通常前者会调用后者。
- [yangkai@admin ~]$ cat .
- ./ .bash_history .bash_profile .mozilla/ .Xauthority
- ../ .bash_logout .bashrc .viminfo .zshrc
- [yangkai@admin ~]$ cat .bashrc
- # .bashrc
- # Source global definitions
- if [ -f /etc/bashrc ]; then
- . /etc/bashrc
- fi
- # User specific aliases and functions
- [yangkai@admin ~]$ cat .bash_profile
- # .bash_profile
- # Get the aliases and functions
- if [ -f ~/.bashrc ]; then
- . ~/.bashrc
- fi
- # User specific environment and startup programs
- PATH=$PATH:$HOME/bin
- export PATH
- #echo "hello,kaige."
- echo 'hello,kaige!this is 132.'
- sleep 1
- [yangkai@admin ~]$ cat .bash_logout
- # ~/.bash_logout
- /usr/bin/clear
- echo 'bye,kaige!'
- [yangkai@admin ~]$
- [yangkai@admin ~]$ cat /etc/bashrc
- # /etc/bashrc
- # System wide functions and aliases
- # Environment stuff goes in /etc/profile
- # By default, we want this to get set.
- # Even for non-interactive, non-login shells.
- if [ $UID -gt 99 ] && [ "`id -gn`" = "`id -un`" ]; then
- umask 002
- else
- umask 022
- fi
- # are we an interactive shell?
- if [ "$PS1" ]; then
- case $TERM in
- xterm*)
- if [ -e /etc/sysconfig/bash-prompt-xterm ]; then
- PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm
- else
- PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"'
- fi
- ;;
- screen)
- if [ -e /etc/sysconfig/bash-prompt-screen ]; then
- PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen
- else
- PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"'
- fi
- ;;
- *)
- [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default
- ;;
- esac
- # Turn on checkwinsize
- shopt -s checkwinsize
- [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "
- fi
- if ! shopt -q login_shell ; then # We're not a login shell
- # Need to redefine pathmunge, it get's undefined at the end of /etc/profile
- pathmunge () {
- if ! echo $PATH | /bin/egrep -q "(^|:)$1($|:)" ; then
- if [ "$2" = "after" ] ; then
- PATH=$PATH:$1
- else
- PATH=$1:$PATH
- fi
- fi
- }
- # Only display echos from profile.d scripts if we are no login shell
- # and interactive - otherwise just process them to set envvars
- for i in /etc/profile.d/*.sh; do
- if [ -r "$i" ]; then
- if [ "$PS1" ]; then
- . $i
- else
- . $i >/dev/null 2>&1
- fi
- fi
- done
- unset i
- unset pathmunge
- fi
- # vim:ts=4:sw=4
- [yangkai@admin ~]$