環境變量配置文件主要是定義對系統操做環境生效的系統默認環境變量,如PATH、HISTSIZE、PS一、HOSTNAME等。
修改配置文件後,註銷從新登陸以後纔會生效,使用source命令能夠不用從新登陸,令配置文件生效。
source 配置文件
或shell
. 配置文件
[root~]# source .bashrc [root~]# . .bashrc
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.bashrc
/etc/bashrc
`/etc/profile` ——> `~/.bash_profile` ——> `~/.bashrc` ——> `/etc/bashrc` ——> 命令提示符 | |——> `/etc/profile.d/*.sh` ——> `/etc/profile.d/lang.sh` ——> `/etc/locale.conf`
su
命令切換用戶)`/etc/bashrc` ——> 命令提示符 | |——> `/etc/profile.d/*.sh` ——> `/etc/profile.d/lang.sh` ——> `/etc/locale.conf`
/etc/profile
文件的做用USER 變量
LOGNAME 變量
MAIL 變量
PATH 變量
HOSTNAME 變量
HISTSIZE 變量
umask
遍歷調用/etc/profile.d/*.sh
文件
/etc/profile
文件,省略了部份內容# /etc/profile # PATH 變量 pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } if [ -x /usr/bin/id ]; then if [ -z "$EUID" ]; then # ksh workaround EUID=`/usr/bin/id -u` UID=`/usr/bin/id -ru` fi # USER 變量 USER="`/usr/bin/id -un`" # LOGNAME 變量 LOGNAME=$USER # MAIL 變量 MAIL="/var/spool/mail/$USER" fi # HOSTNAME 變量 HOSTNAME=`/usr/bin/hostname 2>/dev/null` # HISTSIZE 變量 HISTSIZE=1000 # 聲明爲環境變量 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL # /usr/share/doc/setup-*/uidgid file # 定義 umask if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022 fi # 遍歷調用 `/etc/profile.d/*.sh` 文件 for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do if [ -r "$i" ]; then if [ "${-#*i}" != "$-" ]; then . "$i" else . "$i" >/dev/null fi fi done
/etc/bashrc
文件的做用PS1 變量
PATH 變量
umask
遍歷調用/etc/profile.d/*.sh
文件
/etc/bashrc
文件,省略了部份內容# /etc/bashrc # are we an interactive shell? # PS1 變量 if [ "$PS1" ]; then if [ -z "$PROMPT_COMMAND" ]; then case $TERM in xterm*|vte*) if [ -e /etc/sysconfig/bash-prompt-xterm ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-xterm elif [ "${VTE_VERSION:-0}" -ge 3405 ]; then PROMPT_COMMAND="__vte_prompt_command" else PROMPT_COMMAND='printf "\033]0;%s@%s:%s\007" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; screen*) if [ -e /etc/sysconfig/bash-prompt-screen ]; then PROMPT_COMMAND=/etc/sysconfig/bash-prompt-screen else PROMPT_COMMAND='printf "\033k%s@%s:%s\033\\" "${USER}" "${HOSTNAME%%.*}" "${PWD/#$HOME/~}"' fi ;; *) [ -e /etc/sysconfig/bash-prompt-default ] && PROMPT_COMMAND=/etc/sysconfig/bash-prompt-default ;; esac fi # Turn on parallel history shopt -s histappend history -a # Turn on checkwinsize shopt -s checkwinsize [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ " fi # ----------只有非正常登陸的shell纔會執行下面腳本---------------- 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 # PATH 變量 pathmunge () { case ":${PATH}:" in *:"$1":*) ;; *) if [ "$2" = "after" ] ; then PATH=$PATH:$1 else PATH=$1:$PATH fi esac } # /usr/share/doc/setup-*/uidgid file # umask if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then umask 002 else umask 022 fi SHELL=/bin/bash # 遍歷調用 `/etc/profile.d/*.sh` 文件 for i in /etc/profile.d/*.sh; do if [ -r "$i" ]; then if [ "$PS1" ]; then . "$i" else . "$i" >/dev/null fi fi done fi
~/.bash_profile
文件的做用調用了~/.bashrc
文件
在PATH變量後加入:$HOME/bin
這個目錄
~/.bash_profile
文件# .bash_profile # 調用了 `~/.bashrc` 文件 if [ -f ~/.bashrc ]; then . ~/.bashrc fi # 在PATH變量後加入 `:$HOME/bin` 這個目錄 PATH=$PATH:$HOME/bin export PATH
~/.bashrc
文件的做用定義別名
調用/etc/bashrc
文件
~/.bashrc
,省略了部份內容# .bashrc # 調用 `/etc/bashrc` 文件 if [ -f /etc/bashrc ]; then . /etc/bashrc fi # 定義別名 alias ll='ls -AlhF --color=auto' alias la='ls -A' alias l='ls -CF' alias vi='vim'
~/.bash_logout
~/.bash_history
登陸時顯示的歡迎信息
/etc/moted
無論是本地登陸,仍是遠程登陸,均可以顯示此文件內容信息。
/etc/issue.net
遠程終端歡迎信息
要顯示此歡迎信息,由ssh的配置文件
/etc/ssh/sshd_config
決定。須要在ssh配置文件中加入"Banner /etc/issue.net" 行,並重啓ssh服務纔會生效。
/etc/issue
本地終端歡迎信息
由於服務器大都採用遠程登陸,本地終端歡迎信息設置的意義不大。
轉義符 | 做用 |
---|---|
\d | 顯示當前系統日期 |
\s | 顯示操做系統名稱 |
\l | 顯示登陸終端號 |
\m | 顯示硬件體系結構,如i386/i686等 |
\n | 顯示主機名 |
\o | 顯示域名 |
\r | 顯示內核版本 |
\t | 顯示當前系統時間 |
\u | 顯示當前登陸用戶的序號 |