마스터포유(Master4U)
Monday, 17 of January
 

제목: 프롬프트에 현재 디렉토리명 표시하기
분류: 리눅스
이름: 관리자 * http://www.master4u.net


등록일: 2008-02-09 19:53
조회수: 5819 / 추천수: 1
 

#---------------------------------------------By KIH-----
#.bashrc 에 추가하기
xcd() { cd $* ; PS1="[`pwd`]# "; }
alias cd='xcd'
#---------------------------------------------By KIH-----


프롬프트에 현재 디렉토리명 표시하기  

이것은 사용하는 쉘에 따라 다르다. 몇몇 쉘에서는 이것에 쉽지만
다른 쉘에서는 어렵거나 불가능 할 수도 있다.

============================================================================
C Shell (csh):
   다음을 .cshrc에 넣어서 프롬프트를 원하는 대로 바꿀 수 있다.

   alias setprompt 'set prompt="${cwd}% "'
   setprompt # to set the initial prompt
   alias cd 'chdir !* && setprompt'

   만약 pushd와 popd를 원하면 다음과 같이 하면 된다

   alias pushd 'pushd !* && setprompt'
   alias popd 'popd !* && setprompt'

   몇몇 C쉘은 $cwd 변수를 가지고 있지 않다. 그때는 `pwd`를 사용해야 한다.

   단지 현재 디렉토리의 마지막 구성요소만을 원한다면
   프롬프트에 다음과 같이 넣을 수 있다.
   예를 들어("mail% ")

   alias setprompt 'set prompt="$cwd:t% "'

   몇몇 다른 옛날 csh은 &&와 ||를 반대의 의미로 사용하기도 한다.
   다음을 사용해 보라.

   false && echo bug

   만약 "bug"라는 문자가 나오면 여러분은 &&와 ||를 바꾸어서 사용해야 한다.
   그리고 더 나은 csh을 구해서 설치 하라.

============================================================================
Bourne Shell (sh):

   만약 Bourne Shell의 새로운 버전을 가지고 있다면 여러분은 자신의 명령인
   shell 함수를 만들 수 있다.

   xcd() { cd $* ; PS1="`pwd` $ "; }

   만약 Bourne shell의 옛날 버전을 가지고 있다면 좀 복잡하긴 하지만
   불가능 한건 아니다. 여기 그 방법이 있는데, 다음을 .profile에 넣어라.

   LOGIN_SHELL=$$ export LOGIN_SHELL
   CMDFILE=/tmp/cd.$$ export CMDFILE
   # 16 is SIGURG, pick a signal that's not likely to be used
   PROMPTSIG=16 export PROMPTSIG
   trap '. $CMDFILE' $PROMPTSIG

   그리고나서 다음의 실행 가능 스크립트를 만들어서 여러분의 PATH에
   해당하는 위치에 "xcd"라는 이름으로 넣도록 하라.

   : xcd directory - change directory and set prompt
   : by signalling the login shell to read a command file
   cat >${CMDFILE?"not set"} <   cd $1
   PS1="`pwd`$ "
   EOF
   kill -${PROMPTSIG?"not set"} ${LOGIN_SHELL?"not set"}

   그리고 나서 "xcd /some/dir"하면 디렉토리가 변경이 된다.
============================================================================
Korn Shell (ksh):

   다음을 .profile에 추가
   PS1='$PWD $ '

   단지 디렉토리의 마지막 구성요소를 원한다면 다음과 같이 하라
   PS1='${PWD##*/} $ '
============================================================================
T C shell (tcsh)

   Tcsh은 csh의 개선된 버전이며 몇가지 고유의 변수와
   다른 몇몇 기능들을 가지고 있다

   %~ 현재 디렉토리, $HOME에 대해 ~를 사용한다
   %/ 현재 디렉토리의 full pathname
   %c or %. 현재 디렉토리의 trailing component

   그래서 이렇게 할 수 있다.

   set prompt='%~ '

   BASH (FSF's "Bourne Again SHell")

   $PS1의 w는 현재 디렉토리의 Full pathname을 뜻하며 ~는 $HOME에 대한 확장이다
   그래서 위의 sh과 ksh 솔루션에 더하여 여러분은 다음을 사용할 수 있다.

   PS1='w $ '
    또는
   PS1='W $ '


* 관리자님에 의해서 게시물 이동되었습니다 (2008-02-09 21:56)
       
△ 이전글: 프롬프트에 현재 디렉토리명 표시하기 II
▽ 다음글: i386,i586,i686, x86의 차이점 Linux
Copyright 1999-2019 Zeroboard / skin by enFree