많은 사람들이 Window 환경에 익숙하지만, Unix/Linux를 사용하는 모든 직장인 및 학생들이 가장 많이 접하는 것은 다름 아닌 prompt 일 것이다. Window에서 디렉터리를 이동하듯이 cd 명령어를 쓰고, 파일(txt)을 열고 읽듯이 vi(vim)을 사용하고 있을 것이다. 아쉬운 것은 대부분 사용자들이 기본적으로 설치된, 혹은 누군가가 설정해 놓은 환경을 그대로 가져다 쓰게 된다. 물론 그 누군가가 설정한 환경이 모두의 입맛에 맞는 편리한 설정이라면 좋겠지만, 그렇지 않은 경우가 많다. 복잡하지도 않으니 이참에 한번 배워보자.
http://www.understudy.net/custom.html#C_shell
How to make custom prompts
How to change your shell prompt. In my last article I discussed how to change your shell. Now let's change your prompt to make it helpful. Here are what some of my prompts look like: brendhan@TheBaron>$ <--My Bourne shell James@TheBaron:/home/James> <-- My
www.understudy.net
위 사이트를 보면 친절하게도 여러 shell들에 대한 설정 부분이 나와있다. 제가 주로 c-shell을 사용하고 있으므로 c-shell부분만 다루겠다. 다른 shell도 크게 다르진 않다.
The C Shell:
You will want to edit your .cshrc file. You will want to add after the line that says "# An interactive shell -- set some stuff up":
# Custom Prompt settings
# whoami @ hostname current working directory ->
set prompt="`whoami`@`hostname -s` $cwd ->"
간단히 홈 디렉토리의 .cshrc 파일에 set prompt 구문을 넣으면 된다. 물론 저거 그대로 넣으면 재미도 없고 멋도 없다. 해당 사이트에서 조금 더 내려보면 여러 테이블들이 보인다. 기본적인 설정은 위의 한 줄로 되지만, 이 테이블들을 가지고 customizing 할 수 있다.
Current working directory | $CWD | $PWD | \w | %/ | %/ |
Current working directory, with one's home directory by `~' | $CWD:t | $PWD##*/ | \W | %~ | %~ |
Full hostname | 'uname -n' | 'uname -n' | N/A | %M | %M |
Hostname up to the first '.' | `hostname -s` | `hostname -s` | \h | %m | %m |
Start (stop) boldfacing mode | %B (or %b) | N/A | N/A | %B (or %b) | %B (or %b) |
Start (stop) standout mode | %S (or %s) | N/A | N/A | %S (or %s) | %S (or %s) |
Start (stop) underline mode | %U (or %u) | N/A | N/A | %U (or %u) | %U (or %u) |
User name | `whoami` | `logname` | \u | %n | %n |
The shell's tty that the user is logged in on | %l | N/A | N/A | %| | %| |
The current history number | %h | N/A | \! | %h (or %!) | %h (or %!) |
Name of the shell | N/A | N/A | \s | N/A | N/A |
Time of day in 12-hour hh:mm AM/PM | %t | N/A | \@ | %t (or %@) | %t (or %@) |
Time of day in 24-hour hh:mm | %T | N/A | \A | %T | %T |
Time of day in 12-hour with seconds hh:mm:ss AM/PM | %p | N/A | \T | %p | N/A |
Time of day in 24-hour with seconds hh:mm:nn | %P | N/A | \t | %P | %* |
The day in 'dd' format | %D | N/A | N/A | %D | N/A |
The month in 'Mon' format | %w | N/A | N/A | %w | N/A |
The month in 'mm' format | %W | N/A | N/A | %W | N/A |
The year in 'yy' format | %y | N/A | N/A | %y | N/A |
The year in 'yyyy' format | %Y | N/A | N/A | %Y | N/A |
The date in "Weekday Month Date" format | N/A | N/A | \d | N/A | N/A |
The date in day-dd format | N/A | N/A | N/A | N/A | %w |
The date in Mon/dd/yy format | N/A | N/A | N/A | N/A | %W |
The date in yy-mm-dd format | N/A | N/A | N/A | N/A | %D |
The weekday in 'Day' format | %d | N/A | N/A | %d | N/A |
Description 부분을 잘 보면 각종 변수들을 부르는 것인걸 알 수 있다. 위의 설정 예제(?)에서 사용한 whoami 라던지, hostname, CWD 도 테이블에 나와 있다. 이걸로 본인이 원하는 형태의 prompt를 만들 수 있다. 현재 제가 사용하고 있는 prompt의 경우 아래와 같다.
# 실제 프롬프트 -> [ 15:17 hodman@hodman-l: /user/hodman ]
# 설명 -> [ 현재시간 사용자@계정 현재디렉토리 ]
set prompt = "[ %T $user@$hostname: $cwd ]"
개인적인 설정이므로 왜 이렇게 했냐고는 묻지 마시길.. 바라지만 현재 디렉터리 부분의 앞 뒤를 한 칸 띄워놓으면 디렉터리 복사하기 붙여 넣기 할 때 선택하기 쉬워진다. 이렇게 설정하고 나서도 아쉬운 점이 있으니 눈에 잘 띄지 않는다는 점? 계속해서 해당 사이트의 밑으로 밑으로 가다 보면 알록달록한 내용들이 나온다. 우리는 Full HD 시대에 살고 있으니 prompt 에도 아쉬운 대로 색을 집어넣자.
테이블이 여러 개고 사실 다 알 필요는 없는 것들이며 링크된 사이트에 다 나와 있으므로 여기에 적진 않았다. 하지만 중요한 건 색을 넣으면서 사용할 터미널의 배경이다. 흰색 배경은 눈 아프다. 개인적으로는 검정 배경에 흰 글씨를 선호하며 왠지 예전 Text MUD 플레이를 할 때의 console 창과 유사한 느낌이 들어 향수에 젖어들 수 있다. (농담 반 진담 반) 결국 최종적인 프롬프트 설정은 아래와 같다.
# 실제 프롬프트 -> [ 15:24 hodman@hodman-l: /user/hodman ]
# 설명 -> 별거 없는데 코드만 길다. shell 마다 안시코드 사용구문은 조금 다를 수 있다.
set prompt = "\n[ %{\033[0;31m%}%T %{\033[1;32m%}$user%{\033[0m%}@%{\033[1;34m%}$hostname%{\033[0m%s}: $cwd ] "
이렇게 해 놓으면 뭔가 되는 것 같은 느낌이 막 든다. (나만의 착각) 마지막으로 중요한 것은 prompt를 이렇게 해 놓아도 cd 명령어에 alias 로 set prompt를 다시 등록하지 않으면, cd로 옮겨가도 원래 디렉터리만 나타낼 수 있다. 다음에 cd 관련 설정도 글을 한 번 적어 보겠다.
'Unix, Linux 관련 > Shell 설정, 명령어' 카테고리의 다른 글
[CSH] split 명령어 기능 (0) | 2020.12.18 |
---|---|
[CSH] grep 명령어 기능과 옵션 -v (0) | 2020.12.18 |