터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 1/2

[attachment=0:2uinf190]prompt1–.png[/attachment:2uinf190]
우분투 터미널은 쉘 프로그램으로 [b:2uinf190]Bash[/b:2uinf190]를 사용합니다.
Bash는 프롬프트를 환경변수 [b:2uinf190]PS1[/b:2uinf190]에 저장하는데 이 PS1을 다시 정의하면 프롬프트 변경이 가능합니다.

예를 들어 @를 프롬프트로 쓰고 싶다면 다음과 같습니다.

[list:2uinf190][b:2uinf190]$ PS1="@ "
@[/b:2uinf190][/list:u:2uinf190]

[b:2uinf190]PS1="우분투사랑: "[/b:2uinf190] 이나 [b:2uinf190]PS1="^^:"[/b:2uinf190] 모두 가능하며
자료실의 [b:2uinf190]scim-hangul 0.3.2[/b:2uinf190] 를 설치하면 특수문자(★ :spades: ◈)도 사용할 수 있습니다.

글자 외에 사용자명이나 경로, 시간등을 표시하고 싶다면 escape 문자(₩)를 사용하면 됩니다.

[list:2uinf190][b:2uinf190]$ PS1="₩T $ "[/b:2uinf190] [color=#FFFFFF:2uinf190]-------[/color:2uinf190]<= 시간
[b:2uinf190]10:16:45 $[/b:2uinf190]

[b:2uinf190]$ PS1="₩u $ "[/b:2uinf190] [color=#FFFFFF:2uinf190]-------[/color:2uinf190] <= 사용자
[b:2uinf190]화산폭발 $[/b:2uinf190]

[b:2uinf190]$ PS1="₩w $ "[/b:2uinf190] [color=#FFFFFF:2uinf190]-------[/color:2uinf190] <= 현재 디렉토리
[b:2uinf190]/usr/share/fonts $[/list:u:2uinf190][/b:2uinf190]

우리가 흔히 보는 프롬프트는 이 escape 문자에 약간의 글자를 덧 붙여서 만들어 집니다.

[list:2uinf190][b:2uinf190]$ PS1="₩u:₩w $ "
화산폭발:/usr/share/fonts $[/b:2uinf190][/list:u:2uinf190]

저는 복잡한 프롬프트는 싫고 그냥 간단히 $만 쓰던지 아니면 시간을 사용합니다.
(너무 오래 컴퓨터 할 까봐 …)

다음은 제가 사용하는 프롬프트입니다.

[list:2uinf190][b:2uinf190]$ PS1="[₩T] ₩$ "
[10:20:13] $[/b:2uinf190][/list:u:2uinf190]

그 외에도 여러가지 escape 문자가 있으니 골라서 사용하시면 됩니다.

[list:2uinf190][b:2uinf190] ₩a[color=#FFFFFF:2uinf190]----[/color:2uinf190] 벨소리 "삐~" (07)
₩d[color=#FFFFFF:2uinf190]----[/color:2uinf190] 날짜 (예 "Tue May 26")
₩e[color=#FFFFFF:2uinf190]----[/color:2uinf190] ASCII escape 문자 (033)
₩h[color=#FFFFFF:2uinf190]----[/color:2uinf190] 호스트(host) 이름(단축)
₩H[color=#FFFFFF:2uinf190]----[/color:2uinf190] 호스트(host) 이름
₩j[color=#FFFFFF:2uinf190]----[/color:2uinf190] 현재 수행중인 job의 숫자
₩l[color=#FFFFFF:2uinf190]----[/color:2uinf190] 터미널 장치 이름(단축)
₩n[color=#FFFFFF:2uinf190]----[/color:2uinf190] 새 라인
₩r[color=#FFFFFF:2uinf190]----[/color:2uinf190] carriage return
₩s[color=#FFFFFF:2uinf190]----[/color:2uinf190] 쉘 이름
₩t[color=#FFFFFF:2uinf190]----[/color:2uinf190] 현재 시간 (예 24시간 HH:MM:SS)
₩T[color=#FFFFFF:2uinf190]----[/color:2uinf190] 현재 시간 (예 12시간 HH:MM:SS)
₩@[color=#FFFFFF:2uinf190]----[/color:2uinf190] 현재 시간 (예 12시간 am/pm)
₩A[color=#FFFFFF:2uinf190]----[/color:2uinf190] 현재 시간 (예 24시간 HH:MM)
₩u[color=#FFFFFF:2uinf190]----[/color:2uinf190] 사용자 이름
₩v[color=#FFFFFF:2uinf190]----[/color:2uinf190] bash 버전 (예 2.0)
₩V[color=#FFFFFF:2uinf190]----[/color:2uinf190] bash 버전 + 패치 레벨 (예 2.00.0)
₩w[color=#FFFFFF:2uinf190]----[/color:2uinf190] 현재 디렉토리 경로
₩W[color=#FFFFFF:2uinf190]----[/color:2uinf190] 현재 디렉토리의 마지막 경로
₩![color=#FFFFFF:2uinf190]----[/color:2uinf190] 히스토리 숫자
₩#[color=#FFFFFF:2uinf190]----[/color:2uinf190] 명령어 숫자
₩$[color=#FFFFFF:2uinf190]----[/color:2uinf190] 일반 사용자는 $ 관리자 모드는 #
₩nnn[color=#FFFFFF:2uinf190]----[/color:2uinf190] octal 문자
₩₩[color=#FFFFFF:2uinf190]----[/color:2uinf190] ₩문자
₩[[color=#FFFFFF:2uinf190]----[/color:2uinf190][color=#FFFFFF:2uinf190]----[/color:2uinf190] begin a sequence of non-printing characters, which could be used
[color=#FFFFFF:2uinf190]----[/color:2uinf190][color=#FFFFFF:2uinf190]----[/color:2uinf190]to embed a terminal control sequence into the prompt
₩][color=#FFFFFF:2uinf190]----[/color:2uinf190] end a sequence of non-printing characters [/b:2uinf190][/list:u:2uinf190]

원하는 프롬프트를 만들어 ~/.bashrc 에 저장하면 터미널을 열때 자동으로 프롬프트가 바뀝니다.
.bashrc 파일을 열어 [b:2uinf190]제일 마지막 부분[/b:2uinf190]에 다음과 같이 적어 넣으면 됩니다.

[list:2uinf190][b:2uinf190]PS1="₩u:₩w $ "[/b:2uinf190][/list:u:2uinf190]

Bash 프롬프트에 대해 더 자세히 알고 싶으면 다음 사이트를 참고하시면 됩니다.
내용이 구식이긴 하지만 초보자에게 벅찰 정도로 많습니다.

[url=http&#58;//tldp&#46;org/HOWTO/Bash-Prompt-HOWTO/:2uinf190][color=#000080:2uinf190][b:2uinf190]The Linux Documentation Project

이거 보면 프롬프트가 거의 프로그래밍 수준이네요…

[url=http&#58;//ubuntu&#46;or&#46;kr/viewtopic&#46;php?f=9&amp;t=1574:2uinf190][color=#0000BF:2uinf190][b:2uinf190]터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 2/2[/b:2uinf190][/color:2uinf190][/url:2uinf190]

이 글타래를 이제서야 따라가면서 해보고 있습니다. 1/2, 2/2 모두 재밌네요. 근데 본문 중에

[quote="화산폭발":k8o5hltv]원하는 프롬프트를 만들어 ~/.bashrc 에 저장하면 터미널을 열때 자동으로 프롬프트가 바뀝니다.
.bashrc 파일을 열어 제일 마지막 부분에 다음과 같이 적어 넣으면 됩니다.[/quote:k8o5hltv]
의 '.bashrc 파일’은 'bash.bashrc 파일’을 수정하면 되는건가요?

  • 지금 해보니 안되네요;;; 제 개인 폴더(말씀하신 ~/)에 숨긴 파일로 .bashrc 파일이 있군요. 이 파일 맨 끝에 적용해 성공했습니다. 혼자 묻고 답하고 다 했네요;;; 좋은 팁 감사합니다!!! :lol:

우왕ㅋ굳ㅋ :P 재밌네요 ㅎㅎ

가르쳐 주신 링크로 따라가서 이것저것 에러도 많이 내면서

[size=150:7v8uzgj8] PS1="[\033[1;35m][$(date +%H:%M)]\w$[\033[0m] "[/size:7v8uzgj8]

이렇게 해냈답니다 ^ㅡ^

근데[size=150:7v8uzgj8] $(date +%H:%M)[/size:7v8uzgj8] 이 부분이 좀 이해가 안가네요… date라면 날짜 아닌가 싶은데; %H %M 야 뭐 뻔하구요

재밌는 팁 감사합니다

[quote="카이리군":1qh96i9n]
근데[size=150:1qh96i9n] $(date +%H:%M)[/size:1qh96i9n] 이 부분이 좀 이해가 안가네요… date라면 날짜 아닌가 싶은데; %H %M 야 뭐 뻔하구요 [/quote:1qh96i9n]
[b:1qh96i9n]$()[/b:1qh96i9n] 는 예전의 [b:1qh96i9n]backquotes (``)[/b:1qh96i9n] 와 같은 기능을 합니다.
최근 bash 스크립트 가이드라인에 따라 backquotes 대신 사용하도록 권고되고 있습니다.

$( … ) 안에 있는 내용을 미리 실행시켜서 그 출력값을 인자로 사용한다는 말입니다.
예를 들어 $(whoami)는 자신의 아이디를 나타냅니다.

간단히 말씀드려서 터미널을 열고 [b:1qh96i9n]$ date +%H:%M[/b:1qh96i9n] 이라고 입력하면 바로 10:35 와 같이 시간을 출력해 줍니다.

+%H:%M 은 date 명령어의 인자로 복잡해 보이지만 date 프로그램이 시간을 표시하는 방식입니다.
$ man date 하면 그 사용법이 더 자세히 나옵니다.

결국 [b:1qh96i9n]$(date +%H:%M)[/b:1qh96i9n] 부분만 따로 때어서 시간을 나타낸다고 생각하면 이해가 빠르실 겁니다.

그렇군요!! 그럼 프롬프트를 더 복잡하게도 만들수 있겠군요 [후후 <- 웬지 좋아 하고 있다]

친절한 답변 감사합니다 ^ㅡ^ :lol:

[quote="카이리군":39emzs2v]그렇군요!! 그럼 프롬프트를 더 복잡하게도 만들수 있겠군요 [후후 <- 웬지 좋아 하고 있다]
[/quote:39emzs2v]
어떤 분은 프롬프트를 2줄 이상으로 만들어서 시스템 정보와 시간, 네트워크까지 보여주게 사용하시더군요.
저는 그냥 간단하게 이름만 사용하고 있습니다.

카이리군님의 훌륭한 작품 기대할께요.
꼭 올려 주세요 :slight_smile: 기대…기대…

[quote="coreanlibero":24xdhtcu]근데 본문 중에
화산폭발 님의 글:
원하는 프롬프트를 만들어 ~/.bashrc 에 저장하면 터미널을 열때 자동으로 프롬프트가 바뀝니다.
.bashrc 파일을 열어 제일 마지막 부분에 다음과 같이 적어 넣으면 됩니다.

의 '.bashrc 파일’은 'bash.bashrc 파일’을 수정하면 되는건가요?

  • 지금 해보니 안되네요;;; 제 개인 폴더(말씀하신 ~/)에 숨긴 파일로 .bashrc 파일이 있군요. 이 파일 맨 끝에 적용해 성공했습니다. 혼자 묻고 답하고 다 했네요;;; 좋은 팁 감사합니다!!! :lol:[/quote:24xdhtcu]

[code:24xdhtcu]$ gedit ~/.bashrc[/code:24xdhtcu]
하면 되는 걸…;;; :shock:

'터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 1/2’과 '터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 2/2’가 떨어져 있어 찾기 어려운 것 같아서 링크 걸어 놓습니다.

[b:1uqxyxfk]터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 1/2[/b:1uqxyxfk]

[url=http&#58;//ubuntu&#46;or&#46;kr/viewtopic&#46;php?f=9&amp;t=1574:1uqxyxfk][b:1uqxyxfk]터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 2/2[/b:1uqxyxfk][/url:1uqxyxfk]

[quote="coreanlibero":11d9zl5y]'터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 1/2’과 '터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 2/2’가 떨어져 있어 찾기 어려운 것 같아서 링크 걸어 놓습니다.[/quote:11d9zl5y]
coreanlibero님 말씀대로 링크가 있으니 훨씬 편리하네요.

늦었지만 본문 수정했습니다.
좋은 아이디어 감사합니다. Thank you :D

[quote="화산폭발":3e5a16br][quote="coreanlibero":3e5a16br]'터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 1/2’과 '터미널을 사용합시다 ! - 프롬프트를 바꾸어 보세요 2/2’가 떨어져 있어 찾기 어려운 것 같아서 링크 걸어 놓습니다.[/quote:3e5a16br]
coreanlibero님 말씀대로 링크가 있으니 훨씬 편리하네요.

늦었지만 본문 수정했습니다.
좋은 아이디어 감사합니다. Thank you :D[/quote:3e5a16br]
본문에 있으니 더 편하군요! 감사합니다. 8-)