본문 바로가기
  • 아하하
Linux

bash 프롬프트에 전체 경로 표시하기

by 쥬쥬파파 2019. 3. 14.

출처: https://ttend.tistory.com/34

 

CentOS에서 디폴트로 사용하는 bash쉘의 경우 프롬프트에 현재 작업 디렉토리만 보인다. 

정확히 말하면 bash 쉘에서 프롬프트에 보여주는 정보는 다음과 같다. 

"[접속계정명@호스트명 현재디렉토리] $(root인 경우는 #)"

간단하게 보인다는 장점도 있지만, 전체 디렉토리 구조를 확인하면서 작업해야 할 때는 pwd 명령어로 그 때 그 때 확인을 해야하는 단점(?)도 있다.

가끔 디렉토리명이 중복되거나 하는 경우는 프롬프트가 조금 길더라도 전체 경로명이 나타나는 것이 보다 확실한 작업환경이 될 수도 있다. 



프롬프트를 나타내는 환경변수는 PS1 이다. 

현재 환경변수 PS1의 내용을 보려면 echo $PS1 명령어로 확인하면 되고

PS1의 내용을 변경하려면 export 명령어로 변경하면 가능하다. 


bash 프롬프트에서 사용할 수 있는 옵션은 다음과 같다. 

\t 현재 시간을 HH:MM:SS 형식으로 보여준다.

\d 날자를 "요일 월 일" 형식으로 보여준다. Tue Jan 23

\s 쉘의 이름을 보여준다.

\w 현재 작업디렉토리를 완전경로로 보여준다.

\W 현재 작업디렉토리의 이름을 보여준다.

\u 현재 사용자의 사용자명

\h 호스트만

\H 호스트이름전체

\# 현재 명령의 명령 번호

\$ root이면 #, 일반사용자이면 $


(이유를 찾아봤지만, 이상하게 전체 경로를 주는 \w 옵션이 잘 적용되지 않는다. 그래서 그 방법 말고 아래 나오는 다른 방법을 적용했다)


위에서 적용한 export 명령어는 1회적인 경우는 가능하지만 계속 사용할 경우는 환경변수 파일에 저장해 놓아야 한다. 

bash 쉘의 환경설정파일인 bashrc 파일은 각 개인사용자용 환경설정파일의 경우 개별 홈디렉토리 아래 .bashrc 파일로 숨겨져있다. 


모든 사용자에게 먼저 적용되는 환경설정은 /etc/bashrc 파일을 따르고(root만 변경 가능)

각 사용자가 자신에게 맞는 환경설정을 별도로 사용할 경우는 홈 디렉토리 아래 .bashrc 파일에서 수정하면 된다.




[root@centos6 ~]# vi /etc/bashrc

  ... ... ...

  shopt -s checkwinsize

  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1="[\u@\h \W]\\$ "

  ... ... ...


이렇게 되어있는 부분을 아래와 같이 변경한다. (대문자 W는 현재 디렉토리를 보여주는 옵션)


  [ "$PS1" = "\\s-\\v\\\$ " ] && PS1='[\u@\h $PWD ]\\$ '

(\W 부분을 삭제하고 $PWD 입력.. 그리고 양쪽을 "(큰따옴표) 가 아닌 '(작은 따옴표)로 둘러싼다. )



로그아웃하고 다시 로그인하면 전체 디렉토리가 나오는 것을 확인할 수 있다. 



덧. 

bashrc 를 수정한 후 재부팅하거나 재로그인하면 수정한 사항이 반영되기도 하지만

다음 명령 실행으로 bashrc 설정을 반영할 수도 있다.

# source etc/bash_profile



출처: https://ttend.tistory.com/34 [toward the end · · ·]