강좌
클라우드/리눅스에 관한 강좌입니다.
리눅스 분류

레벨234-1 : 리눅스의 모든 사용자들의 시스템 사용환경설정을 위한 /etc/bashrc파일의 용도와 기능

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

레벨234-1 : 리눅스의 모든 사용자들의 시스템 사용환경설정을 위한 /etc/bashrc파일의 용도와 기능

 

[권고사항]

이번 장의 설명을 보시기 이전에 bash명령어편을 반드시 보시기 바랍니다.

 

리눅스 서버에는 사용자들을 위한 시스템 사용환경설정 파일들이 있습니다. 이들 환경설정파일들에 대한 전체적인 설명을 보시려면 책의 bash편을 보시기 바랍니다.

 

이번 장에서는 리눅스 서버의 /etc/bashrc파일에 대해서 설명합니다. 파일은 로그인과정에서 모든 개별사용자들에게 공통적으로 적용할 알리아스(alias) 함수(function)들을 설정한 파일입니다. 참고로 개별사용자들의 홈디렉토리에는 .bashrc라는 파일이 모두 있습니다. .bashrc파일이 개별사용자들의 개별적인 시스템사용환경을 설정하기 위한 파일이라면, 이번 장에서 설명하는 /etc/bashrc파일은 시스템 전체사용자들에게 공통으로 적용할 시스템 사용환경설정파일입니다.

 

아래는 /etc/bashrc파일의 기본적인 기능과 용도를 간추린 것입니다.

 

- 전체 사용자들에게 공통적으로 적용할 알리아스(alias, 별칭명령어) 설정한다.

 

- 전체 사용자들에게 공통적으로 적용할 함수(function) 설정한다.

 

- 전체 사용자들의 기본 umask값을 설정한다.

 

- 전체 사용자들에게 PS1 환경변수를 설정한다.

 

- 전체 사용자들이 기본적으로 사용할 쉘프롬프트의 모양을 설정한다.

 

파일은 개별사용자의 홈디렉토리에 있는 .bashrc파일에 의해서 불리워져 모든 사용자들에게 적용됩니다.  따라서 리눅스 서버를 사용하는 모든 사용자들에게 적용할 알리아스(alias) 함수(function)들이 있다면 파일에 추가하시면 됩니다.

 

그리고 다음은 파일(.bashrc) 의해서 불리워지는 /etc/bashrc파일의 초기 기본내용입니다.

 

[root@su249 ~]# 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 run profile.d scripts if we are no login shell and interactive

        if [ "$PS1" ]; then

                for i in /etc/profile.d/*.sh; do

                        if [ -r "$i" ]; then

                                . $i

                        fi

                done

        fi

        unset i

        unset pathmunge

fi

# vim:ts=4:sw=4

[root@su249 ~]#

 

 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,043 명
  • 현재 강좌수 :  35,853 개
  • 현재 접속자 :  92 명