  转(Bash) Ʈ HOWTO
  Giles Orr, giles@interlog.com
  v0.55, 1 December 1998
  ű:  , hskim@supy.kaist.ac.kr
  ű :1998 12 24

  ͹̳ΰ X Ʈ  ϰ ٷ ΰ Ͽ
  ϸ,  ڸ,  ۾ 丮, ð  Ÿ 
  ǥ escape sequence  ϴ  մϴ.  X 
  ǥ(title bar) ϴ , Ʈ  ϱ 
  ܺ Լ  , ANSI (color)   ΰ
  Ͽ     õ˴ϴ.

  1.   Ұ

  1.1.  䱸 

  켱, 转 ʿ Դϴ. κ   Ʈ 
  1.14.7 ̸(98 11,     ),    ˷ 
   ŷ  Դϴ. 转   2.0+  ̰
  ϴ:    转2.0   ϴٸ, ⿡
  õǴ κ ɾ  1.14.7 Ͽ ۵ Դϴ.
    νϰ Ǹ, װͿ ؼ ϵ ϰϴ.
  Ʈ 'echo $BASH_VERSION' ̶ ġ 转  Ȯ 
  ϴ.   , '2.02.1(1)-release' մϴ.

   α׷   ,  ʿ  ƴմϴ:  
  ˸,   Ʈ    Դϴ.  α׷̳
  н 鿡     ִٰ մϴ. ׷,
   ڽ  α׷  Ѱ谡 Ƿ,  
  α׷ӿԴ ʿ   ִ    ϰ 
  Դϴ.

  1.2.   ̳  

   Ǵ Դ  Դϴ.  ϸ ְ 
  Ʈ   ִ  ˰ Ǿ,   
  ϰ  Ű  е  ʿմϴ.   
  ֱ  <http://www.interlog.com/~giles/bashprompt.html> 
  ̿  ϴ.   Ȩ  ȮϽð, Ӱ
  giles@interlog.com  ּҷ e-mail  ֵ Ͻʽÿ.

  1.3.  Ī 

    µ, <http://bash.current.nu/> 转Ʈ
  Ʈ ۾     Ͽϴ.  ٸ
  ó Ʒ ϴ.  Eric Lister  'the xterm Title mini-HOWTO'
  <http://sunsite.unc.edu/LDP/HOWTO/mini/Xterm-Title.html>, Keebler
  'Ansi Prompts' <http://www.ncal.verio.com/~keebler/ansi.html>, Stephen
  Webb 'How to make a Bash Prompt Theme'
  <http://bash.current.nu/bash/HOWTO.html>, Stumpy       'X ANSI
  Fonts' <http://home.earthlink.net/~us5zahns/enl/ansifont.html>.

  , н  Ŀ  ʿϴ Dan, Georgia College &
  State University   ,    а e-mail
    ޾ϴ.  ״     Ȱ ̵
  ,    ִ Ʈ  Ǿϴ.

  Ʈ α׷ϴµ ϰ   å ϴ.
  Jessica Heckman Perry Cameron Newham   Bill Rosenblatt Lowell
  Jay Arthur (Wiley, 1986.  å ù ̰, ׹°  1997⵵
  ǵǾϴ.).

  2.  转 转 Ʈ

  2.1.  转 ΰ

  Bourne Shell  µ, 转 GNU Ʈ "Bourne Again
  SHell"̸, κ  迡 ǥ ɾ 
  ̽Դϴ. ̰ ȣἺ, ׸ ɾ  ,
  Ϸ,  ϴµ Źմϴ.  转 , 
  Ʈ մϴ-   νϰ   
   ϴٴ  𸣰 ϴ.

  2.2.  转  Ʋ  ϰ  ΰ

  κ  ý ܻ(Ϲ ȸ) Ʈ Ʈ
   ־,  , ۾ϰִ  ̸, ׸  ۾
  丮 ǥմϴ.  ̰   , Ʈ
  ξ     ϴ:   (ttyȣ, ð, ¥,
  ,  , ɸ ð...) ǥ   , Ʈ ANSI
     ־ ְ ̰ų,    ̰  
  ϴ.  X  ǥ   ־ ̵   
   ݿ  ֵ մϴ.

  2.3.   ׸Ͻÿ

  ý  븦 ϴ    찡 ϴ. 
    ȣҷ ְ ̴,  ƴ ̵  ϳ, 
   ٸ   ٸ  Ʈ ϵ   ִٴ 
  Դϴ.    ٸ 迡 Xҵ  ִٰų, Ǵ ۾
   谡   ؾ  ϵ  
   ִٸ,    ۾  踦  Űµ ־
  ſ  ̶  ˰  Դϴ.

  2.4.  ù°

  Ʈ  PS1   մϴ.   PS2 
    Ǵµ, ̰ ⼭ ǵǴ ٿ   
    ϴ- -PS2 ϴ  Ȯϰ Ȱ ̶,
  ׷ ̷ Ƿ PS1   κ  Դϴ(Ϲ
  ڵ   PS3, PS4   ϴ-̰͵ 뿡
  ̰  е 转 ޴   ϼ). Ʈ
  ٸ ̵ ϱ ؼ, PS1   ٲٸ ˴ϴ.  ,
   Ʈ  PS1  Էؼ     
  ϴ.(̰  ǿ ȿ ְ α ƿϰ Ǹ
   ˴ϴ). ٲ Ʈ  ҷ Ѵٸ,
  ' /.bashrc'   Ͽ, װ PS1 ο Ǹ ÷ϵ
  Ͻʽÿ.  Ʈ   ôٸ '/etc/profile'̶ 
  ã "PS1="    ϴ.   ( RedHat
  5.1) '/etc/bashrc' PS1, PS2   ȿȭ Ųٴ 
   Ͻʽÿ.

  ϱ , PS1  ٸ ȯ   ȯ溯 
  ҿ Ǿ ִٴ  ؾ մϴ. ɾ ο PS1
  ϰԵǸ,  Ʈ ٲ ˴ϴ.   ϱ
  , Ǵٸ ȯ溯  Ʈ   ϴ.

  [giles@nikola giles]$ SAVE=$PS1
  [giles@nikola giles]$

    Ʈ  , ϳ ڷ  .

  [giles@nikola giles]$ PS1=$
  $ ls
  bin   mail
  $

  ɾ ο Էν, ⺻ Ʈ   ֻ
   մϴ. ڰ Է  Ʈ ٷ ڿ
  Ÿٴ  ָ Ͻʽÿ:  Ʒ  ϱ⸦  
  մϴ.

  $PS1="$ "
  $ ls
  bin   mail
  $

  ̰ Ʈ ڿ  ξ,  б  մϴ. 
  Ʈ ϱ ؼ,  Ͽ  θ⸸ ϸ
  ˴ϴ.

  $ PS1=$SAVE
  [giles@nikola giles]$

  2.5.  转 ̽ (escape sequence)

  转  Ʈ ϱ ؼ  ̽ 
  ˴ϴ.  转2.02 ޴  :

  ȣ  , 转  ޾Ƶ غ Ǹ ⺻ Ʈ
  PS1 ǥϰ, ɾ ϼϱ    Է 䱸 
  ι° Ʈ PS2 Ÿϴ. 转 ̵ Ʈ 
  backslash(\) ϳ ڷ յ Ư ڵ  ϸ,
  װ͵ Ʒ  ؼ ˴ϴ.

           \a    ASCII Ҹ (07)
           \d    "    ¥"  ¥ ǥ
                 ( : "Tue May 26")
           \e    ASCII escape  (033)
           \h    ù° "."  hostname
           \H    hostname
           \n    ο ( ٲٱ)
           \r    carrage return
           \s     ̸, $0  basename
                 ( slash   κ)
           \t    24-ð  ð, HH:MM:SS(::) 
           \T    12-ð  ð, HH:MM:SS(::) 
           \@    12-ð  ð, / 
           \u      username
           \v    bash (: 2.00)
           \V    bash ,  + ġ
                 ( : 2.00.0)
           \w     ۾ 丮
           \W     ۾ 丮 basename
           \!     ɾ history ȣ
           \#     ɾ command ȣ
           \$    ȿ UID 0 ̸ # , ׷  $  ǥ
           \nnn  8  nnn شϴ 
           \\   backslash
           \[    ͹̳  sequence Ʈ  ֱ 
                   ִ non-printing  
           \]    non-printing  

    ؼ :

  [giles@nikola giles]$ PS1="\u@\h \W> "
  giles@nikola giles> ls
  bin   mail
  giles@nikola giles>

  ̰ κ  Ʈ մϴ.  ణ ٸ
  ̱⸦ ؼ ̷ ٲپϴ:

  giles@nikola giles> PS1="[\t][\u@\h:\w]\$ "
  [21:52:01][giles@nikola:~]$ ls
  bin   mail
  [21:52:15][giles@nikola:~]$

  3.  ܺ ɾ

  3.1.  PROMPT_COMMAND

  转  ٸ ȯ  PROMPT_COMMAND ˴ϴ. 转
  Ʈ ǥϱ ٷ ,  转 ɾμ,  
   ˴ϴ.

  [21:55:01][giles@nikola:~] PS1="[\u@\h:\w]\$ "
  [giles@nikola:~] PROMPT_COMMAND="date +%H%M"
  2155
  [giles@nikola:~] d
  bin   mail
  2156
  [giles@nikola:~]

   Ͼ  帮ڸ, ̽   '\t' 
  Ѽ,  Ʈ ð  ̻ Ե ʵ Ͽϴ.
  ׸ 'date +%H%M'  Ͽ   ϴ  ð
  ǥϵ Ͽϴ.  ׷ ̹ Ʈʹ  ٸ ٿ
  Ÿϴ. 转2.0+  转1.14.7 ۵ ʰ ˴ϴ.:
   Ʈ ٸ  ۼ , Ʒ   ߺ
   Ÿϴ.

  2156
  [giles@nikola:~] PROMPT_COMMAND="echo -n [$(date +%H%M)]"
  [2156][giles@nikola:~]$
  [2156][giles@nikola:~]$ d
  bin   mail
  [2157][giles@nikola:~]$ unset PROMPT_COMMAND
  [giles@nikola:~]

  ȭǾ, Ʈ Բ   ٿ Ÿ ˴ϴ. ,
  'unset'    ȯ  PROMPT_COMMAND ŵǾϴ.
  ɾ ġ  $()   Ϳ Ͻʽÿ: ,

  $(date +%H%M)

   "⿡  'date +%H%M'    ġϽÿ" 
  ǹ Դϴ. ̰ 转2.0+  ۵մϴ. 1.14.7   
   转  ο ȣ(backquates)(`date +%H%M`) ʿ 
  ϴ. ο ȣ 转2.0+   , $()  
  ȣ Կ    , $()  ڸ  
  ϴ.        Դϴ.  
   ϰ ôٸ, $()  Ÿ  ο ȣ
  ġϸ  Դϴ. , ɾ ġ ̽ óǾ ִٸ
  (, \$(command) ), basckslash('\') Ͽ  ο ȣ
  ̽ ó Ͻʽÿ(, \'command\' ).

  3.2.  Ʈ ܺ ɾ

  Ʈ        մϴ.
  ʹ  ͵ Ʈ ϱ⸦   Դϴ. ׷
   Ʈ ʹ  ״ϱ. , ż óǴ ɾ
  ϱ⸦  Դϴ. ֳϸ, ũ Ʈ Ÿ  
  ׸ɾ Ǿ ϰ, ۾ ϴ ȿ Ʈ Ÿ
   ð   ֱ Դϴ.(    
  , 转1.14.7 ۵մϴ)

  [21:58:33][giles@nikola:~]$ PS1="[\$(date +%H%M)][\u@\h:\w]\$ "
  [2159][giles@nikola:~]$ ls
  bin   mail
  [2200][giles@nikola:~]$

  ɾ ġ ޷ȣ('$')  backslash ϴ  ߿մϴ.
  װ  ܺ ɾ Ȯϰ ѹ ˴ϴ: PS1 
  о 鿩  .  Ʈ 쿡, Ʈ ̰ 󸶳
  Ǵ   ÿ ǥõ ̶  ǹմϴ.
  backslash('\')  $()   ؼ  ȣǾ, "date"
   ο Ʈ     ˴ϴ.

    , date, grep, Ǵ wc   ׸ ƿƼ
  α׷ μǾ ־, Ÿ ó  ֵ մϴ. ,
  ̵ α׷    ؼ Ʈ ȿ ְ
  Ͻ ٸ,  ڽ  ũƮ ۼ , Ʈ
  װ ҷ ̴     ϴ.    
  Ǯ ϱ   ũƮ   ̽ 
  䱸˴ϴ(  ¥ ɾ ): ̰ Ʈ PS1 
    ܰ   ö  ̸,  ũƮ Ͽ
  ȸϴ   Ǹ ̵Դϴ.

  Ʈ  Ǵ ׸  ũƮ  Ʒ
  ־ϴ.

  #!/bin/bash
  #     lsbytesum - sum the number of bytes in a directory listing
  TotalBytes=0
  for Bytes in $(ls -l | grep "^-" | cut -c30-41)
  do
      let TotalBytes=$TotalBytes+$Bytes
  done
  TotalMeg=$(echo -e "scale=3 \n$TotalBytes/1048576 \nquit" | bc)
  echo -n "$TotalMeg"

   ̰   Լ(ξ ȿ-ϰԵ Լ
   ڼ     Դϴ), Ǵ ο ԵǾ ִ
  ' /bin' 丮 ִ  ũƮ ϴ. Ʈ
  Ǿ Ʒ   ˴ϴ.

  [2158][giles@nikola:~]$ PS1="[\u@\h:\w (\$(lsbytesum) Mb)]\$ "
  [giles@nikola:~ (0 Mb)]$ cd /bin
  [giles@nikola:/bin (4.498 Mb)]$

  3.3.  Ʈ ʿ ׹ ͵

  κ   Ʈ ð  丮 ̸ ԵǾ
  ִٴ    ϴ. ⿡ٰ,  ȿ Dan
   Ʈ ְ մϴ.

  [giles@nikola:~]$ cur_tty=$(tty | sed -e "s/.*tty\(.*\)/\1/")
  [giles@nikola:~]$ echo $cur_tty
  p4
  [giles@nikola:~]$ PS1="\!,$cur_tty,\$?\$ "
  1095,p4,0$

  丮 θ ٲ޿  Ʈ ũⰡ ۽ ٲ 
  ֱ  Dan Ʈ  丮 ǥõǴ 
   ϴ. ׷ ״ 丮 븦  Ӹӿ
  մϴ(Ǵ "pwd" ġ⵵ մϴ.)  Dan cash tcsh
  н  , ״ ɾ history  ϰ ϰ
  (츮 κ 转 ٰ ϱ⿡ ׷ ʿ䰡 ),
  ׷,  Ʈ ù° ׸ ɾ history ȣԴϴ.
  ι° ׸ tty ߿ ڵ Դϴ("tty"  'sed'
  ϴ). °   command/pipeline exit Դϴ(note
  that this is rendered useless by any command executed within the
  prompt - you could work around that by capturing it to a variable and
  playing it back, though). , "\$" Ϲ ڿԴ ޷
  ȣ Ÿ, ڰ Ʈ 쿡 ؽ ǥ("#") 
  Ÿϴ.

  3.4.  转 ȯ Լ

  տ ޵ ٿ , PS1, PS2, PS3, PS4 ׸ PROMPT_COMMAND 
   转 ȯ Ǿ ϴ. DOS ͼ е  ū
    ȯ ѱµ Ͽ η  
  Դϴ. ֳϸ DOS ȯ ׸ ,  Ȯ ʾұ
  Դϴ. ȯ濡   ְ ־߸ ϴ ͵鿡 ؼ 
    , װ͵   𸣰, ⿡  DOS
  ڵ鿡 ͼ ׷ ȯ溸ٴ Ը ־ Ƹ 質 ξ 
  ū Ϳ Ͽ ̾߱⸦ ϰ ϴ. 츮 Dan մϴ:

  " ϴ , 62 ˸ƽ 25 Լ ϴ.
  迡   쿡,   ܵ ʿϰ bash
      , װ  Լ ٴ   ù°
  ĢԴϴ(˸ƽ  ǥ   ٴ Ͽ). 
  ޸𸮿 ؼ ϴ  ִٸ, ׵ bash  ʿ䰡
  ϴ. Bash   迡 Ǵ  ū α׷ 
  ϳԴϴ(Oracle ϰ).  'top'  Ѽ 
  ޸𸮺 зϱ  'M'  -Ͽ bash 󸶳
  ʿ  ִ  . , sendmailٵ  ġ ũ!
  ׵    ash Ǵ ٸ ͵ ϶ ϼ"

  Ƹ ״  ۾ Ϸ ϴ  ܼ ʳ
  մϴ:X X α׷ Ű, 转  ū ͵ 
  ϴ. ׷, ̵ մϴ:ȯ̶  Ǿ
  ϴ ̰, װ  ġ   ʿ䰡 ϴ.

   ̷  (ʹ ܼȭ ״ٴ Ϳ ؼ) н 
   å    , Լ̶ ⺻ ȿ 
  ȯ Ǵ ׸  ũƮԴϴ. Dan  ٽ
  οմϴ:" Լ  ŭ ȿȭ ѰԴϴ.  It is the
  approximate equivalent of sourcing a bash/bourne shell script save
  that no file I/O need be done as the function is already in memory.
   Լ , װ͵   ʿ Ǵ Ϻ
   䱸Ǵ° , [.bashrc Ǵ  .bash_profile] 
  ˴ϴ.  ũƮ ϳ  Ѽ ̰  ʽÿ:
   бϿ, ڽ ν꽺 exec  ϰ, potentially ΰ
  ã, Ŀ       ϱ
   Ʈ ˻ϸ,  ũƮ    ũƮ ̸
   Ͽ Ͽ ϸ,    , а  
  մϴ.  Լ Ͽ,  ϴ   ٸ
  ͵ ʿ  ֵ˴ϴ."

  4.  X  ǥ 

  Non-printing ̽  Ͽ ִ Ʈ 
    . ̵ ̽  ϱ ؼ, װ͵ \[ 
  \]  ѷ  ʿ  ִµ, ׷ ν 转 Ʈ ̸
    װ͵ ϵ    ϴ. ̵ ȹ ڵ
  ߸ Ǹ Ʈ  ̸    Ǳ , Ŀ
    Ÿ ˴ϴ. , ̽  տ 转
  2  쿡 \033[,    쿡 \033[ ̰ų \e[ 
   Ǿ߸ մϴ.

  ֿܼ, Ʈ Ἥ X ǥ ϰ  쿡,
  Ʈ ⵿ϵ Ÿ ˴ϴ. ̰ ϱ ؼ,
  Ʈ Xҿ ְ  ̶  转 Ϸ ֱ TERM
  ȯ溯 ׽Ʈ ʽÿ.

  function proml
  {
  case $TERM in
      xterm*)
          local TITLEBAR='\[\033]0;\u@\h:\w\007\]'
          ;;
      *)
          local TITLEBAR=''
          ;;
  esac

  PS1="${TITLEBAR}\
  [\$(date +%H%M)]\
  [\u@\h:\w]\
  \$ "
  PS2='> '
  PS4='+ '
  }

  ̰ ' /.bashrc' Ե  ִ Լ ϳԴϴ. Լ ̸
  ҷ   ϴ. PS1ڿ , Լ ȯ濡
  Ǿ ϴ.  PS1ڿ Լ  ѹ Ǹ, 'unset
  proml'  Լ ȯ    ϴ. Ʈ
  Xҿ ִ Ϳ ֿܼ ִ     , TERM
   Ʈ     ׽Ʈ   ϴ. Ʈ
    ǥ(backslashes'\') Ͽ,  ٿ  װ
    ϴ. ̷   б  ָ, ϰų 
  ÿ մϴ.

   ̰ Լμ ϴµ, 转Ʈ Ű(̹ Ĺݿ
  ) Ʈ ٷ ̱ Դϴ: 
  ƴ,  ۵մϴ.  ϴ Ʈ   ,
  װ͵ Ʈ Ÿϴ    ð ǹǷ, װ͵
  ؽƮ Ͽ     ǿ ϴ.   쿡 ־,
  Ʈ ׽Ʈϱ , "proml"̶ ؽƮ Ͽ
  Ͻʽÿ. Ʒ  ۾   ϴ.

  [giles@nikola:/bin (4.498 Mb)]$ cd          -> Ʈ ϰ ϴ
                                                 丮 ̵
  [giles@nikola:~ (0 Mb)]$ vi proml           -> Ʈ  ۼ
  ...                                         ->  ־  Է
  [giles@nikola:~ (0 Mb)]$ source proml       -> Ʈ Լ о 
  [giles@nikola:~ (0 Mb)]$ proml              -> Ʈ Լ 

   Ʈ ϴ  ־ ù° , 츮 ϴ 
  X ƴ ׽Ʈմϴ: ׷ٸ,   (${TITLEBAR})
  ǵ˴ϴ.  װ  ̽  X ǥٿ
  <>@<>:<۾  丮> ǥϴ \u@\h:\w  ˴ϴ.
  ̰ Ư ּȭ Xҵ鿡 ϰ,  żϰ ͹̳
  Ȯϵ  ݴϴ.  Ʈ ִ ٸ ͵ 츮 
   ͵  Դϴ.
  ̷  X ǥ ϴ  ־  ϳ ,
  ǥ hack   ý α   
  Ÿϴ:X  ǥ hack  ġϴ  ý 
   ؼ   Դϴ.

  5.  

  տ  ٿ , non-printing ̽  \[\033[
  \] ѷ ο ־߸ մϴ.  ̽  쿡,
  ҹ m  ־ մϴ.

  Ʒ  Ʈ õؼ,   Ÿ ʴ´ٸ,
  "XTerm*Foreground: BlanchedAlmond"    ִ  ʽÿ.
    ʿ ǥ('!') ؼ ּ ó  ϴ. ,
   ۾ ϴ ͹̳ ķ   ޶ ϴ. ̰
  ͹̳   ȿȭ   ִ  ɼ ִ Դϴ.

  Ʈ Ķ ؽƮ ϱ  :

  PS1="\[\033[34m\][\$(date %H%M)][\u@\h:\w]$ "

   Ʈ , 34  ڵ ϴ Ķ 
  ȸ ǵ  ʾƼ, Ʈ ڿ  ִ  
  ؽƮ Ʈ    ȴٴ Դϴ. ̰ ο
  Ķ̶,  ڵ尡 ణ    ϴ.

  PS1="\[\033[1;34m\][\$(date %H%M)][\u@\h:\w]$\[\033[0;37m\] "

    Ķ Ǹ, κ  ٶ ȸ ǵ
     ˴ϴ.

   :     ΰ մϴ. , X ϸ鼭,
  ͹̳   "xterm -bg midnightblue -fg yellow"  
   ̴ٸ,   ٿ   ǵ ۾
  е  "-fg" ȿȭ Ųٴ Դϴ.  ̹
  ذ , е ع ߰ϰ Ǹ  Ϸ ֽñ
  ٶϴ. е    ϰ Ŵٸ,  
  ȸ ؽƮ бⰡ  Դϴ. , Xҿ  
  ϸ鼭, ְܼ X ʿ Ʈ ϱ⸦ Ͻø 
  ǥ    ٿ   "case $TERM in ..." ν  
  ؼ ణ   ʿ䰡 ϴ.

  Ʒ ǥ ־ϴ:

  Black       0;30     Dark Gray     1;30
  Blue        0;34     Light Blue    1;34
  Green       0;32     Light Green   1;32
  Cyan        0;36     Light Cyan    1;36
  Red         0;31     Light Red     1;31
  Purple      0;35     Light Purple  1;35
  Brown       0;33     Yellow        1;33
  Light Gray  0;37     White         1;37

      ִµ, Ķ 濡 ؼ 44,  濡
  ؼ 41,    ϴ.  ؼ  
  ϴ.  Ķ 濡   ؽƮ   ؼ
   ϴ: \[\033[44;1;31m\], ׷,   
  ϴ    ۵ϴ  ϴ(,
  \[\033[44m\]\[\033[1;31m\]). ٸ ڵ鵵 Ͽ   ִµ,
  4:, 5:ڰŸ, 7: ׸ 8:  ϴ.

  Ʈ Ű(  Ͽ,   䱸Ǵ Ư X
  Ʈ  ϱ ٴ ǥ ֿܼ   ۵ϵ
  ϴ) ִ "elite2" ̸  Ʈ ٰϿ,
  Ʒ Ʈ    ϴ Դϴ.

  function elite
  {

  local GRAY="\[\033[1;30m\]"
  local LIGHT_GRAY="\[\033[0;37m\]"
  local CYAN="\[\033[0;36m\]"
  local LIGHT_CYAN="\[\033[1;36m\]"

  case $TERM in
      xterm*)
          local TITLEBAR='\[\033]0;\u@\h:\w\007\]'
          ;;
      *)
          local TITLEBAR=""
          ;;
  esac

  local GRAD1=$(tty|cut -d/ -f3)
  PS1="$TITLEBAR\
  $GRAY-$CYAN-$LIGHT_CYAN(\
  $CYAN\u$GRAY@$CYAN\h\
  $LIGHT_CYAN)$CYAN-$LIGHT_CYAN(\
  $CYAN\#$GRAY/$CYAN$GRAD1\
  $LIGHT_CYAN)$CYAN-$LIGHT_CYAN(\
  $CYAN\$(date %H%M)$GRAY/$CYAN\$(date %d-%b-%y)\
  $LIGHT_CYAN)$CYAN-$GRAY-\
  $LIGHT_GRAY\n\
  $GRAY-$CYAN-$LIGHT_CYAN(\
  $CYAN\$$GRAY:$CYAN\w\
  $LIGHT_CYAN)$CYAN-$GRAY-$LIGHT_GRAY "
  PS2="$LIGHT_CYAN-$CYAN-$GRAY-$LIGHT_GRAY "
  }

   б  ̸ ӽ    Ͽϴ. ̷
  ϸ, ۾ ϱ⿡ մϴ. "GRAD1" Ǿ, ϴ
  ͹̳  մϴ.  Xҿ ۾ ϴ ϱ 
  ׽Ʈ Ͱ ,  ѹ  ʿ䰡 ϴ. 
  ϸ, Ʒ  Ʈ ð ˴ϴ.

  --(giles@nikola)-(75/ttyp7)-(1908/12-Oct-98)--
  --($:~/tmp)--

  6.  转 Ʈ Ű

  6.1.  Լ  

  转 Ʈ Ű  <http://bash.current.nu>   ,
   ۾ Rob Current(aka BadLandZ)  Ͽ  
  Ͽ ̷  Դϴ.   Ű   Ÿ ,
   Ʈ(theme)   ֵ ϴ   
  Ͽ, α  Ϻν Ʈ   ְ մϴ(,
  PS1 ڿ ' /.bash_profile' ' /.bashrc' Ͽ  ν).
  κ ׸(theme) Ȯ VGA  Ʈ ϱ , VGA
  Ʈ(κ ýۿ Ʈ ƴ) ͼ  е鿡Դ
   ʰ Դϴ.

  6.2.  X Ʈ ٲٱ

  转 Ʈ Ű ִ  ŷ Ʈ  
  ؼ, Ʈ  ڼƮ ϴ Ʈ ؼ ġ
  ʿ䰡 ϴ.  ̰͵ "VGA Ʈ" ,  Ϲ
  Ǵ Ʈ-Ȯ ٸ  Ʈ ϱ - ̰
  Ȯ ʴٰ ϴ. ǥ X Ʈ,    ڵ
  ؼ, Ȯ ĺƮ մϴ.  VGA Ʈ, ̷ ͵
  ׷ ڵ-, , - ġ˴ϴ. ̰  ڼ  
  ִ  ôٸ, e-  ֽñ ٶ, ⿡  Ű
  ϰϴ.

  ̵ Ʈ ؼ ġϴ  ణ   Ĩϴ. 켱, 
  Ʈ()  մϴ. , װ͵ .pcf Ǵ .pcf.gz 
   Ȯմϴ.  , װ͵ .bdf ̸, "bdftopcf"
  մϴ(,   о ϴ). ׸ .pcf Ǵ .pcf.gz
  ϵ '/usr/X11R6/lib/X11/fonts/misc' (RedHat5.1  Slackware3.4 
  쿡  丮 ùٸ 丮,   
  ٸ 丮   ϴ) 丮 ű⼼. "cd" 
   丮 ٲ , "mkfontdir"   ŵϴ.  
  "xset fp rehash"  մϴ.  ,  丮 ִ
  'fonts.alias'   ؼ,  Ʈ شϴ  ª ˸ƽ
  ̸  ͵ Ǹ ̵Դϴ.

  ο Ʈ ϱ ؼ,  Xҿ ´ 
  ɾν õ ɼǵ ؼ X α׷ ϸ Ǵµ,
  ̷ ۾ ؼ   Ǵ ɾ ٿ "--help"
  ؼ ˾   ϴ. Ʒ    ̴ 
  Դϴ:

  xterm -font <fontname>

  Ǵ

  xrerm -fn <fontname> -fb <fontname-bold>
  Eterm -f <fontname>
  rxvt -fn <fontname>

  VGA Ʈ  <http://hoome.earthlink.net/~us5zahns/enl/ansifont.htm>
   'Stumpy's ANSI Fonts'    ϴ(  
  鼭  κ  ).

  7.  ٸ Ʈ ҷ ̱

  7.1.   Ŀ, ٸ Ʈ ҷ ̱

   HOWTO , PS1 ȯ   ,  ̵ PS1 PS2
  ڿ  Լ պ ־, ' /.bashrc'  Ʈ
  Ű ׸ν   ִ  Ͽ Ͽϴ.

  转 Ʈ Ű  쿡, 'bashprompt -i' ԷϿ
    ׸    ϴ.   α
  (е X   ٸ , ַ ܼ, Ӹ ƴ϶,
  ڳ̳ X) Ʈ ϱ ؼ, ׷, û ׸
  ۵ , װ θ  ֵ, 转Ʈ  Ϻ
  (밳, X, rxvt, ) Ʈ ϱؼ, Ͽ,
  ⵿ ,  ׸ θ  ֵ մϴ.

  7.2.   , ٸ Ʈ ҷ ̱

   ͹̳ο( õ   'elite'Լ ؼ)
  Ʈ ٲ  ִµ, 'source elite' ģ 
  'elite'('elite'Լ  ۾ 丮 ִٰ ) Էϸ
  ˴ϴ. ̷ ϴ  ణ  ۾̸,  ȯ 
   Լ(elite)    ˴ϴ-ȯ濡 װ 
   ø, , 'unset elite' ԷϽø ˴ϴ. ̷
  ϴ  ׸  ũƮ ؼ ̻   ,
  ⿡ ũƮ ۵ ϴ. ֳϸ, ũƮδ 
   ȯ    Դϴ:ũƮ Ϻ  ȯ游 ٲ
   ϴ.  ũƮ ϴ , Ϻ   ǰ, 
  ũƮ ؼ   Ϻ  ȯ浵  ˴ϴ.   
  ȯ  ٲ  ִ  ȯ Լ Դϴ.  转Ʈ
  Ű ؼ, "callbashprompt" Ҹ Լ ȯ濡 ߰Ǹ,
  ׸, while they don't document it, 转  ߿,  Լ
  Ҹ,  转 Ʈ    ϴ.   Լ
  ׸ ġ 丮( θ ϴ ׸ ⿡ ־
  մϴ)  , û Լ ҽȭ ؼ,  Լ ϰ,
  ׸ Լ  Ǿ, ȯ  · մϴ.
  "callbashprompt" ̷ Ǳ ǵ ͵ ƴϸ,  ˻絵
  ,   Ѵٸ,  ۵մϴ.

  8.  Ʈ   ҷ ̱

  8.1.   "Proof of Concept"

  Ʒ  ̷ο Ʈ ٴ "proof of concept"
  Դϴ: Ʈ   ٲٴ Դϴ.   ,
  ý Ͽ , ȣƮ ̸  ٲٰ ˴ϴ( μ).

  #!/bin/bash
  #   "hostloadcolour" - 17 October 98, by Giles
  #
  #   The idea here is to change the colour of the host name in the prompt,
  #   depending on a threshold load value.

  # THRESHOLD_LOAD is the value of the one minute load (multiplied
  # by one hundred) at which you want
  # the prompt to change from COLOUR_LOW to COLOUR_HIGH
  THRESHOLD_LOAD=200
  COLOUR_LOW='1;34'
            # light blue
  COLOUR_HIGH='1;31'
             # light red

  function prompt_command {
  ONE=$(uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\)/\1/" -e "s/ //g")
  #   Apparently, "scale" in bc doesn't apply to multiplication, but does
  #   apply to division.
  ONEHUNDRED=$(echo -e "scale=0 \n $ONE/0.01 \nquit \n" | bc)
  if [ $ONEHUNDRED -gt $THRESHOLD_LOAD ]
  then
      HOST_COLOUR=$COLOUR_HIGH
          # Light Red
  else
      HOST_COLOUR=$COLOUR_LOW
          # Light Blue
  fi
  }

  function hostloadcolour {

  PROMPT_COMMAND=prompt_command
  PS1="[$(date +%H%M)][\u@\[\033[\$(echo -n \$HOST_COLOUR)m\]\h\[\033[0;37m\]:\w]$ "
  }

   ȣϽô ⸦ ̿ؼ,   "hostloadcolour"
  ̸ Ͻʽÿ.  , 转Ʈ Ű ̹ ġϼ̴ٸ,
    ׸ ϳμ ۵ Դϴ.  转Ʈ ġ
  ʾҴٸ, 'source hostloadcolour' ġ,  ̵,
  "prompt_command" е ȯ濡 Լ  ϳ ˴ϴ.  
  ڵ带   ø, ($COLOUR_HIGH  $COLOUR_LOW) κ
   ڵ(, "\[\033[1;34m\]" ſ "1;34")  Ǿ ִٴ
   ƽð  Դϴ.      ȣմϴ.   ϼ
  ڵ ۵ϰ   µ,   ٷ    Ϸ
  ֽʽÿ.

  9.   Ʈ

  9.1.  "Lightweight" Ʈ

  function proml {
  local BLUE="\[\033[0;34m\]"
  local RED="\[\033[0;31m\]"
  local LIGHT_RED="\[\033[1;31m\]"
  local WHITE="\[\033[1;37m\]"
  local LIGHT_GRAY="\[\033[0;37m\]"
  case $TERM in
      xterm*)
          TITLEBAR='\[\033]0;\u@\h:\w\007\]'
          ;;
      *)
          TITLEBAR=""
          ;;
  esac

  PS1="${TITLEBAR}\
  $BLUE[$RED\$(date +%H%M)$BLUE]\
  $BLUE[$LIGHT_RED\u@\h:\w$BLUE]\
  $WHITE\$$LIGHT_GRAY "
  PS2='> '
  PS4='+ '
  }

  9.2.  转Ʈ ׸ 'elite'

   Ʈ VGA Ʈ ʿϴٴ   Ͻʽÿ.

  # Created by KrON from windowmaker on IRC
  # Changed by Spidey 08/06
  function elite {
  PS1="\[\033[31m\]\332\304\[\033[34m\](\[\033[31m\]\u\[\033[34m\]@\[\033[31m\]\h\
  \[\033[34m\])\[\033[31m\]-\[\033[34m\](\[\033[31m\]\$(date +%I:%M%P)\
  \[\033[34m\]-:-\[\033[31m\]\$(date +%m)\[\033[34m\033[31m\]/\$(date +%d)\
  \[\033[34m\])\[\033[31m\]\304-\[\033[34m]\\371\[\033[31m\]-\371\371\
  \[\033[34m\]\372\n\[\033[31m\]\300\304\[\033[34m\](\[\033[31m\]\W\[\033[34m\])\
  \[\033[31m\]\304\371\[\033[34m\]\372\[\033[00m\]"
  PS2="> "
  }

  9.3.  "Power User" Ʈ

     Ʈ ϰ , PII 400, single-user
  ýۿ Ʈ Ÿ     
  ŸǷ, PII 100 Ǵ ٸ muti-user ýۿ ϱ⸦ 
  ϴ.   Ʈ  ؼ ٴ, ̵ 
     ñ ٶϴ.

  #!/bin/bash
  #----------------------------------------------------------------------
  #       POWER USER PROMPT "pprom2"
  #----------------------------------------------------------------------
  #
  #   Created August 98, Last Modified 9 November 98 by Giles
  #
  #   Problem: when load is going down, it says "1.35down-.08", get rid
  #   of the negative
  #   - limit the length of the $PWD to 30 chars - right-truncate if
  #   it exceeds that

  function prompt_command
  {
  #   Create TotalMeg variable: sum of visible file sizes in current directory
  local TotalBytes=0
  for Bytes in $(ls -l | grep "^-" | cut -c30-41)
  do
      let TotalBytes=$TotalBytes+$Bytes
  done
  TotalMeg=$(echo -e "scale=3 \nx=$TotalBytes/1048576\n if (x<1) {print \"0\"} \n print x \nquit" | bc)

  #      This is used to calculate the differential in load values
  #      provided by the "uptime" command.  "uptime" gives load
  #      averages at 1, 5, and 15 minute marks.
  #
  local one=$(uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\)/\1/" -e "s/ //g")
  local five=$(uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\).*/\2/" -e "s/ //g")
  local diff1_5=$(echo -e "scale = scale ($one) \nx=$one - $five\n if (x>0) {print \"up\"} else {print \"down\"}\n print x \nquit \n" | bc)
  loaddiff="$(echo -n "${one}${diff1_5}")"

  #   Count visible files:
  let files=$(ls -l | grep "^-" | wc -l | tr -d " ")
  let hiddenfiles=$(ls -l -d .* | grep "^-" | wc -l | tr -d " ")
  let executables=$(ls -l | grep ^-..x | wc -l | tr -d " ")
  let directories=$(ls -l | grep "^d" | wc -l | tr -d " ")
  let hiddendirectories=$(ls -l -d .* | grep "^d" | wc -l | tr -d " ")-2
  let linktemp=$(ls -l | grep "^l" | wc -l | tr -d " ")
  if [ "$linktemp" -eq "0" ]
  then
      links=""
  else
      links=" ${linktemp}l"
  fi
  unset linktemp
  let devicetemp=$(ls -l | grep "^[bc]" | wc -l | tr -d " ")
  if [ "$devicetemp" -eq "0" ]
  then
      devices=""
  else
      devices=" ${devicetemp}bc"
  fi
  unset devicetemp

  }

  PROMPT_COMMAND=prompt_command

  function pprom2 {

  local        BLUE="\[\033[0;34m\]"
  local  LIGHT_GRAY="\[\033[0;37m\]"
  local LIGHT_GREEN="\[\033[1;32m\]"
  local  LIGHT_BLUE="\[\033[1;34m\]"
  local  LIGHT_CYAN="\[\033[1;36m\]"
  local      YELLOW="\[\033[1;33m\]"
  local       WHITE="\[\033[1;37m\]"
  local         RED="\[\033[0;31m\]"

  case $TERM in
      xterm*)
          TITLEBAR='\[\033]0;\u@\h:\w\007\]'
          ;;
      *)
          TITLEBAR=""
          ;;
  esac

  PS1="$TITLEBAR\
  $BLUE[$RED\$(date +%H%M)$BLUE]\
  $BLUE[$RED\u@\h$BLUE]\
  $BLUE[\
  $LIGHT_GRAY\${files}.\${hiddenfiles}-\
  $LIGHT_GREEN\${executables}x \
  $LIGHT_GRAY(\${TotalMeg}Mb) \
  $LIGHT_BLUE\${directories}.\
  \${hiddendirectories}d\
  $LIGHT_CYAN\${links}\
  $YELLOW\${devices}\
  $BLUE]\
  $BLUE[${WHITE}\${loaddiff}$BLUE]\
  $BLUE[\
  $WHITE\$(ps ax | wc -l | sed -e \"s: ::g\")proc\
  $BLUE]\
  \n\
  $BLUE[$RED\$PWD$BLUE]\
  $WHITE\$\
  \
  $LIGHT_GRAY "
  PS2='> '
  PS4='+ '
  }

  9.4.  ͹̳  Ʈ

   ģ  ߴµ, Ʈ ȿ $PWD  ־  ̰
  ٲ ׷ Ʈ  ʴ´ٰ ϴ. ׷, е
  ͹̳   µ ̸   ִ Ʈ ۼ
  Ͽϴ.

  #!/bin/bash

  #   termwide prompt
  #      by Giles - created 2 November 98
  #                 last modified 9 November 98
  #
  #   The idea here is to have the upper line of this two line prompt
  #   always be the width of your term.  Do this by calculating the
  #   width of the text elements, and putting in fill as appropriate
  #   or right-truncating $PWD.
  #
  #   - needs a lot of refinement, but it works
  #   - host doesn't need to be figured out every time: that's a
  #     constant
  #   - what about username?  could change?
  #   - text vars generated by prompt_command can't be locals,
  #     because they have to go to PS1.

  function prompt_command {

  TERMWIDTH=${COLUMNS}

  #   Calculate the width of the prompt:

  hostnam=$(echo -n $HOSTNAME | sed -e "s/[\.].*//")
  let hostsize=$(echo -n $hostnam | wc -c | tr -d " ")
  #   "whoami" and "pwd" include a trailing newline
  usernam=$(whoami)
  let usersize=$(echo -n $usernam | wc -c | tr -d " ")
  newPWD="${PWD}"
  let pwdsize=$(echo -n ${newPWD} | wc -c | tr -d " ")
  #   Add all the accessories below ...
  let promptsize=$(echo -n "--(${usernam}@${hostnam})---(${PWD})--" \
                   | wc -c | tr -d " ")
  let fillsize=${TERMWIDTH}-${promptsize}
  fill=""
  while [ "$fillsize" -gt "0" ]
  do
      fill="${fill}-"
          let fillsize=${fillsize}-1
  done

  if [ "$fillsize" -lt "0" ]
  then
      let cut=((${fillsize})*(-1))+3
      sedvar=""
      while [ "$cut" -gt "0" ]
      do
          sedvar="${sedvar}."
      let cut=${cut}-1
      done
      newPWD="...$(echo -n $PWD | sed -e "s/\(^${sedvar}\)\(.*\)/\2/")"
  fi
  }

  PROMPT_COMMAND=prompt_command

  function termwide {

  local GRAY="\[\033[1;30m\]"
  local LIGHT_GRAY="\[\033[0;37m\]"
  local WHITE="\[\033[1;37m\]"

  local LIGHT_BLUE="\[\033[1;34m\]"
  local YELLOW="\[\033[1;33m\]"

  case $TERM in
      xterm*)
          TITLEBAR='\[\033]0;\u@\h:\w\007\]'
          ;;
      *)
          TITLEBAR=""
          ;;
  esac

  PS1="$TITLEBAR\
  $YELLOW-$LIGHT_BLUE-(\
  $YELLOW\${usernam}$LIGHT_BLUE@$YELLOW\${hostnam}\
  ${LIGHT_BLUE})-${YELLOW}-\${fill}${LIGHT_BLUE}-(\
  $YELLOW\${newPWD}\
  $LIGHT_BLUE)-$YELLOW-\
  \n\
  $YELLOW-$LIGHT_BLUE-(\
  $YELLOW\$(date +%H%M)$LIGHT_BLUE:$YELLOW\$(date \"+%a,%d %b %y\")\
  $LIGHT_BLUE:$WHITE\$$LIGHT_BLUE)-\
  $YELLOW-\
  $LIGHT_GRAY "

  PS2="$LIGHT_BLUE-$YELLOW-$YELLOW-$LIGHT_GRAY "
  }

