LFS構築記9日目〜bash起動スクリプト作成

user-pic
0

BLFS Book: Chapter3.After LFS Configuration Issues
・The Bash Shell Startup Files

先ず、bashを使用したログイン時に最初に読み込まれるファイル/etc/profileを以下の内容で作成します。
/etc/profile
pathremove () {
    local IFS=':'
    local NEWPATH
    local DIR
    local PATHVARIABLE=${2:-PATH}
    for DIR in ${!PATHVARIABLE}; do
        if [ "$DIR" != "$1" ]; then
            NEWPATH=${NEWPATH:+$NEWPATH:}$DIR
        fi
    done
    export $PATHVARIABLE="$NEWPATH"
}

pathprepend () {
    pathremove $1 $2
    local PATHVARIABLE=${2:-PATH}
    export $PATHVARIABLE="$1${!PATHVARIABLE:+:${!PATHVARIABLE}}"
}

pathappend () {
    pathremove $1 $2
    local PATHVARIABLE=${2:-PATH}
    export $PATHVARIABLE="${!PATHVARIABLE:+${!PATHVARIABLE}:}$1"
}

export PATH=/bin:/usr/bin
if [ $EUID -eq 0 ]; then
    pathappend /sbin:/usr/sbin
    unset HISTFILE
fi

export HISTSIZE=1000
export HISTIGNORE="&:[bf]g:exit"
export PS1='\u@\h:\w\$ '
for script in /etc/profile.d/*.sh ; do
    if [ -r $script ]; then
        . $script
    fi
done
unset pathremove pathprepend pathappend

以下、/etc/profileから読み込まれるファイルを大量生産していきます。
/etc/profile.d/dircolors.sh
if [ -f "/etc/dircolors" ] ; then
    eval $(dircolors -b /etc/dircolors)
    if [ -f "$HOME/.dircolors" ] ; then
        eval $(dircolors -b $HOME/.dircolors)
    fi
fi
alias ls='ls --color=auto'

/etc/profile.d/extrapaths.sh
if [ -d /usr/local/lib/pkgconfig ] ; then
    pathappend /usr/local/lib/pkgconfig PKG_CONFIG_PATH
fi
if [ -d /usr/local/bin ] ; then
    pathprepend /usr/loca/bin
fi
if [ -d /usr/local/sbin -a $EUID -eq 0 ] ; then
    pathprepend /usr/loca/sbin
fi
for directory in $(find /opt/*/lib/pkgconfig -type d 2>/dev/null); do
    pathappend $directory PKG_CONFIG_PATH
done
for directory in $(find /opt/*/bin -type d 2>/dev/null); do
    pathappend $directory
done
if [ -d ~/bin ] ; then
    pathprepend ~/bin
fi

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

/etc/profile.d/tinker-term.sh
if [ -n "$COLORTERM" ]; then
    export TERM=xterm-color
fi
if [ "$TERM" = "xterm" ]; then
    export TERM=xterm-color
fi

/etc/profile.d/umask.sh
if [ "$(id -gn)" = "$(id -un)" -a $EUID -gt 99 ]; then
    umask 002
else
    umask 022
fi

/etc/profile.d/X.sh
if [ -x /usr/X11R6/bin/X ]; then
    pathappend /usr/X11R6/bin
fi
if [ -d /usr/X11R6/lib/pkgconfig ]; then
    pathappend /usr/X11R6/lib/pkgconfig PKG_CONFIG_PATH
fi

/etc/profile.d/extra-prompt.sh
PROMPT_COMMAND="echo -ne '\e[1m${USER}@${HOSTNAME} : ${PWD}\e[0m\a'"
export PROMPT_COMMAND

/etc/profile.d/i18n.sh
export LC_ALL=ja_JP.eucJP
export LANG=ja_JP.eucJP
export G_FILENAME_ENCODING=@locale

最後に、Linuxではお馴染みbashの設定ファイルを作成しておきます。
/etc/bashrc
if [ -f /etc/profile.d/tinker-term.sh ]; then
    . /etc/profile.d/tinker-term.sh
fi
alias ls='ls --color=auto'
export PS1='\u@\h:\w\$ '

$HOME/.bashrc
if [ -f "/etc/bashrc" ]; then
    . /etc/bashrc
fi

トラックバック(0)

トラックバックURL: http://www.skucky.com/cgi-bin/mt/mt-tb.cgi/31

コメントする

このブログ記事について

このページは、webmasterが2007年1月 6日 17:16に書いたブログ記事です。

ひとつ前のブログ記事は「LFS構築記9日目〜システムユーザーの登録」です。

次のブログ記事は「LFS構築記9日目〜その他の設定」です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。