리눅스를 쓰면 가장 많이 보는 게 프롬프트 맨 앞에 표시된 [root@localhost ~] 같은 형식이다. 쓰다보면 대충 무엇을 의미하는지 알게되긴 하지만 좀 더 정확히 알고 넘어가보자.
환경변수 PS1
이 형식은 리눅스에서 PS1 이라는 이름의 변수에 따라 정해진다.
[root@localhost home]# echo $PS1
[\\u@\\h \\W]\\$
- \u : 사용자
- @ : 글자 자체를 표시하는 구분자
- \h : hostname
- \W : 현재 경로
- \$ : 일반 사용자는 $ 루트 사용자는 #를 표시함
이런 의미가 있다.
결국 [root@localhost home]# 는 root 사용자로 로그인했고 localhost라는 hostname을 가지고 있으며 현재 home 디렉토리에 있다는 걸 의미한다.
여기서 hostname은 hostname 명령을 입력한 결과값을 의미한다.
[root@localhost home]# hostname
localhost.localdomain
user1이라는 일반 사용자로 전환하면 프롬트의 # 표시가 $로 변하는 걸 볼 수 있다.
bash 프롬프트 형식 변경
환경변수에 저장된 PS1 값을 바꾸면 저 형태를 변경할 수 있다.
예를 들어 현재 디렉토리의 full path를 출력하고 싶다면 \W
대신 \w
를 쓴다.
[root@localhost ~]# export "PS1=[\u@\h \w]\$"
이런식으로 변수를 바꾸면 된다.
직접 export 하는 건 현재 로그인 상태에서만 유효하다. 계정에 영구적으로 적용하고 싶으면 ~.bashrc에 PS1 변수를 선언하면 된다.