  Bash Prompt HOWTO
  Giles Orr, giles@interlog.com
  $Revision: 1.3 $, $Date: 2001/09/07 17:04:58 $
    <akendo@t3.rim.or.jp>
  v0.60j, 19 January 1999

  [ xterm ł̃vvg̍쐬Ɛ̉ŁA[U[A݂
  fBNgAԂȂǂ\W̃GXP[vEV[PX܂ł
  ܂Bxterm ̃^Cgo[ςAvvgɊO֐g
  ꂽAANSI J[g@qׂ܂B
  ______________________________________________________________________

  ڎ

  1. ͂߂ɁA
     1.1 O
     1.2 ̃hLg̎g
     1.3 |
     1.4 
     1.5 RgĂ𕷂Ă
     1.6 ӎ
     1.7 쌠ƐӔC

  2. BashBash̃vvg
     2.1 BashƂ
     2.2 Bash vvgƂ悢Ƃ̂ł?
     2.3 Ȃʓ|ȂƂ?
     2.4 iK
     2.5 Bashvvg̃GXP[vV[PX
     2.6 PS?̐ݒi

  3. OR}h
     3.1 PROMPT_COMMAND
     3.2 vvg̒ł̊OR}h
     3.3 vvgɉu
     3.4 Bash ̊Ɗ֐

  4. Xterm̃^Cgo[̑
  5. ANSI GXP[vV[PX: FƃJ[\
     5.1 F
     5.2 J[\
     5.3 tput ŃJ[\𓮂

  6. ʂȕ: 8iGXP[vV[PX
  7. Bash PromptpbP[W
     7.1 @
     7.2 Xterm ̃tHgς

  8. vvgς
     8.1 vvgςA
     8.2 vvgςA

  9. IɃvvg̐Fς
     9.1 ǂΉ\

  10. vvg̗
     10.1 uyʁvvvg
     10.2 Bashpromptelite
     10.3 up[[U[vvvg
     10.4 [̃vvg
     10.5 𗧂̃GKgȎ\vvg

  ______________________________________________________________________

  1.  ͂߂ɁA

  1.1.  O

  Bash KvłBقƂǂ Linux ɂĂo[W(
  Ă 98N11_)1.14.7ŁALŁAM̍VFłB Bash
  ̃o[ẂA 2.0 ȏɂȂĂA͂΂炭 Bash 2.0
  gĂ܂AŎقƂǂ̃R[h1.14.7ł܂B
  ̂Ƃ́AmĂAwEĂ܂BȂ
  Bash ̃o[ẂAecho $BASH_VERSIONƃvvgŃ^Cvƕ
  ܂B̋@Bł́A2.02.1(1)-releaseƂȂ܂B

  VFEvO~Ǒo͗LpłAK{ł͂܂Bm
  ΑقǁA蕡Gȃvvg邱Ƃł傤B̃`[
  gAǂނ̂ɁAVFEvO~O Unix c[̊{IȒm
  肵܂ÃVFEvO~O̒m͌肳ꂽ
  ̂łÁAR̗܂A͌oς
  VFEvO}ɂ͕sKvɎv邩܂B

  1.2.  ̃hLg̎g

  𑽂܂Bǂސlς΁Aǂ̕ɗƎv
  ςĂł傤B傫ȕɂȂĂ܂̂ŁAŏʂ
  ǂނƂȂĂĂ܂Bǂ݂ƂEǂ݂AKvɉ
  Ė߂ĉB

  1.3.  |

  (1999N16)A{(Akira Endo, akendo@t3.rim.or.jp)ƃhCc
  (Thomas Keil, thomas@h-preissler.de) ւ̖|󂪐i߂Ă܂B
  lɊӁBURLł܂B

  1.4.  

  ́AvvgvOĂċC_̃Xg
  Bǂݎn߂Ă肵ȂŉBׂ͍ȏȖ
  BςȂƂNɂɖ߂ĉB

  o   Bash ̋@\(Ƃ$(())̒ł̌vZ)́ARpC̃Iv
     VłBW Linux fBXgr[Vɂ͂Ă̂
     悤ɁAoCi[ Bash gĂȂÂ悤ȋ@\ׂ͂
     RpCĂ̂Ǝv܂BAl̃VXeŎd
     ĂȂA҂Ă邱Ƃ܂Ȃꍇɂ̂
     ƂvoĉBɂẮA Learning the Bash Shell,
     p.260-262ɋLڂ܂B

  o  [̃XN[}l[W["screen"́AKANSIJ[T|[
     gĂƂ͌܂BcOȂ玄 screen ɂĂقǏ
     ܂B screen ̃o[W͔ɐV̂ŁA
     Ă̏ꍇɂ܂Ă܂AX [ŁAvvg̐FW
     tHAOEhJ[FɂȂĂ܂Ƃ܂B̂悤
     ȂƂ̓R\[ł͐Ȃ悤łB

  o  Xdefaults t@CŐFςĂ邱Ƃ܂B /.Xdefaults ̒
     ŁA XTerm*background  XTerm*foreground (邢
     XTerm*Background  XTerm*Foreground) ̋LqȂׂĉB

  o  ̒̕"jobs"̏o͂gĂvvgAŏq
     ܂A Bash 2.02 ł́A"jobs"̏o͂pCvɓnƂ낪܂
     ܂B

  o  ANSI J[\V[PX́AׂĂX[ŎĂ킯
     ͂܂B̏͂ŏqׂ܂B

  o  ĥ^OtBbŃALinux W̃tHgł͂ȂAVGA
     tHgɂĕ\܂BcOȂ炱 VGA tHgg
     ƂЂǂpɂȂ܂B܂ǂȃtHggĂ邩[̒
     Œׂ@܂B

  o  Bash 2.0+ oĂAV@\tA@\̂ӂ܂
     قȂĂ܂B1.14.7œĂ̂2.0+œȂA
     t̏ꍇ蓾܂B

  1.5.  RgĂ𕷂Ă

  ƂɂƂĂ̕׋ɂȂ܂B[ɗ Bash
  vvgƂł悤ɂȂ܂BłǍ̕
  APĂɂ́AȂ̊zKvłB̎̂o[
  ẄقȂ Bash (͎gĂ2.02ŁA܂LgĂ
  1.14.7ł)Ń`FbNĂ݂܂Assȓ_Βm点
  B

  ̍̕ŐVł http://www.interlog.com/~giles/bashprompt.html 
  \ł̂ŁA`FbNĉBāA
  giles@interlog.comɋCy e-mail 𑗂AӌB

   LDP  HOWTO قƂ HTML tH[}bgŎgĂ܂B
  āA̕ SGML ϊĂ悭`FbN̂́AHTML łB
  ̃tH[}bgŖ肪Ă܂̂ŁAm点Ă
  KłB

  1.6.  ӎ

  ̕߂ http://bash.current.nu/  Bashprompt vWFN
  gɑ̂̂؂܂B̑A
  http://sunsite.unc.edu/LDP/HOWTO/mini/Xterm-Title.htmlœ\ Ric
  Lister ɂxterm Title mini-HOWTOA
  http://www.ncal.verio.com/~keebler/ansi.htmlœ\ Keebler ɂ
  Ansi PromptsA http://bash.current.nu/bash/HOWTO.htmlœ\
  Stephen Webb ɂHow to make a Bash Prompt ThemeA
  http://home.earthlink.net/~us5zahns/enl/ansifont.htmlœ\
  StumpyɂX ANSI Fonts߂ɂȂ܂B

  肸Ɛ[ Unix ̒m Georgia College & State University
  ̓ Dan  e-mail ɂȂ܂B̑f炵Ă
  ĂA܂ނ̍lɂĂ낢vvgł܂B

  vvgvO邽߂ɁA3̖{ƂĂɗ܂B
  Linux in a Nutshell Jessica Heckman Perry (O'Reilly, 1997)A Learning
  the Bash Shell Cameron Newham and Bill Rosenblatt (O'Reilly, 2nd. ed.,
  1998)A Unix Shell Programming Lowell Jay Arthur (Wiley, 1986A
  1łő4ł1997Nɂł܂)łB

  1.7.  쌠ƐӔC

  This document is copyright 1998-1999 by Giles Orr.  You are encouraged
  to redistribute it.  You may not modify this document (see the section
  on contacting me: I have so far been incorporating all changes
  recommended by readers).  Please contact me if you're interested in
  doing a translation: that's one modification I can live with.

  ̒̕쌠́AGiles OrrA1998-1999 LĂ܂BǂĔzz
  肢܂B̕ςĂ͂Ȃ܂(ւ̃R^Ng̏͂
  ǂŉB܂œǎ҂󂯂Ă͂̒Ɋ܂߂Ă܂)B|
  󂵂͎ɃR^NgĉBꂪ̋B̉ς
  B

  This document is available for free, and, while I have done the best I
  can to make it accurate and up to date, I take no responsibility for
  any problems you may encounter resulting from the use of this
  document.

  ͖̕œł܂Bł邾mōŐV̂̂ɂ
  A̕gpĂȂǂȖɂӔC͂Ƃ܂
  B

  2.  BashBash̃vvg

  2.1.  BashƂ

  Bourne Shell ̗ Bash ́AGNU ŊJĂA Bourne Again
  SHell 疼tĂ܂B Linux ł͕W̃R}hCE
  C^[tF[XɂȂĂ܂BΘbAR}hC̕ҏWA⊮A
  Ƃ@\ɑzĂ܂BvvgݒύXł邱Ƃ͑
  ̐lmĂ܂Aǂ܂ł̂Ƃł邩͂܂mĂ܂
  B

  2.2.  Bash vvgƂ悢Ƃ̂ł?

   Linux ̃ftHg̃vvǵA1F(ʏOC)ŁA[U[
  A}VÃ݂fBNĝɂȂĂ܂B͖ɗ
  łBłvvg͂Ƒ̂Ƃ܂Bǂȏł
  Ƃł܂Btty ԍAԁAtA׏ԁA[U[Aڑ
  ԓXBvvgɂ ANSI ̐FgAڂʔA
  ۗł܂B̂悤ȏ߂ɁAXterm ̃^Cgo
  [𑀍삷邱Ƃł܂B

  2.3.  Ȃʓ|ȂƂ?

  悭ƂłȂAVXe񂪎͖̂ɗ
  Ƃł傤BقȂ@Bł͈قȂFŃvvgoƂ
  ȂƂɎgl܂B Xterm ̋@Bœ
  Aǂ̋@B𓮂Ă̂ႢāAԈt@C폜
  肷悤ȐĺÂ悤ȍHv邱ƂɂāAǂ̋@B𓮂
  Ă邩Y邱ƂȂȂł傤B

  2.4.  iK

  vvǧ`̓VFϐ PS1 ɂČ܂܂BR}h2sȏ
  ɂȂ鎞2sڈȍ~̃vvǵAPS2 ̕Ō܂܂B
  PS1 ƑSł̂ŁA̕ł͂قƂ PS1 ɂĂq
  ׂ܂B(PS3  PS4 Ƃϐ܂B͒ʏ̃[U[
  Ƃ͂܂B΁ABash  man y[WĂ
  B)vvgςɂ́APS1 ς܂BĂ݂ɂ́APS1 
  𒼐ڃvvĝƂŕςĂ݂ĉBʂɕ\
  傤B (̕ω݂͌̊ς邾ŁAOAEg΂ȂȂ
  Ă܂܂B) vvgivɕς΁A /.bashrc  PS1
  ̐V`uĉBA[gĂ
  A/etc/profile t@C̒"PS1="̍sς܂BLinux ̃fBXg
  r[V̎ނɂĂ(RedHat 5.1ł͂ł)/etc/bashrc 
  PS1  PS2 ̐ݒς܂̂ŁAӂĂB

  ͂߂ɒӂĂ܂APS1 ̐ݒ͑̊ϐƓlAɕۑ
  Ă܂BPS1 ̐ݒR}hCŕω΁Avvg
  ܂BύXOɌ݂̃vvgۑ΁Aʂ̊ϐ
  ۑĂĂB

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

  ƂȒPȃvvg1Ȃ̂łBƂ

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

  ȒPȃvvgɂ́Â悤ɃR}hCœ܂B
  [U[͂镶vvg̒ɕ\邱ƂɒӂĉB
  ͎̂悤Ƀvvgݒ肷DłB

  $PS1="$ "
  $ ls
  bin   mail
  $

  邱ƂɂāAvvg̎ɃXy[XuAǂ݂₷Ȃ
  ܂BƂ̃vvgɖ߂ɂ́AۑĂϐĂяo܂B

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

  2.5.  Bashvvg̃GXP[vV[PX

  Bash ɂ́AvvgŎgGXP[vV[PXR܂B Bash
  2.02  man y[W݂ƁA

  Θb^Ŏs鎞ɂ́Abash ̓R}h҂̏ԂŁAꎟ
  vvg PS1 \AR}ĥɂɓ͂
  KvȎɂ͓񎟃vvg PS2 \܂Bbash ł̓obN
  XbVŃGXP[v}邱ƂɂAv
  vgC邱Ƃł܂B̈Ӗ͎̂ƂłB
         \a     ASCII ̃x (07)
         \d     "j  "̃tH[}bgɂt
                ( "Tue May 26")
         \e     ASCII ̃GXP[v (033)
         \h     ŏ"."̂Ƃ܂ł̃zXg
         \H     zXg
         \n     s
         \r     A
         \s     VFA$0 ̃x[X
                (Ō̃XbV̌̕)
         \t     24Ԑ HH:MM:SS ̃tH[}bgɂ鎞
         \T     12Ԑ HH:MM:SS ̃tH[}bgɂ鎞
         \@     am/pm 12Ԑ̃tH[}bgɂ鎞
         \u     [U[̃[U[
         \v     bash ̃o[W( 2.00)
         \V     bash ̃[XԍAo[Wƃpb`x
                ( 2.00.0)
         \w     ݂̃fBNg
         \W     ݂̃fBNg̃x[X
         \!     ݂̃R}h̃qXg[ԍ
         \#     ݂̃R}h̃R}hԍ
         \$     UID0Ȃ#AłȂ$
         \nnn   8innnɑΉ镶
         \\     obNXbV
         \[     \Ȃ̊JnB[V[PX
                vvgɖߍށB
         \]     \Ȃ̏IB

  ł͑łB

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

  ̓ftHg̃vvgƂقƂǕς肠܂BŏX^
  CςĂ݂܂傤B

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

  2.6.  PS?̐ݒi

  ̐lÃfBXgr[V PS? قȂƂ
  ݒ肵Ă܂Bԑ
  ́A/etc/profileA/etc/bashrcA /.bash_profile y /.bashrc
  BJohan Kullstam (johan19@idt.net)͏Ă܂B

  PS1  .bashrc Őݒ肷ׂłBΘb^ bash  PS1 ̐ݒNA
  ܂łBbash many[Wɂ́AbashΘb^ZbVɂ邩A
  Θb^(܂XNvg)ZbVɂ邩m悢@PS1`
  Ă邩ǂƏĂ܂B

  ̂startxbashXNvgŁAstartx͂Ȃ̃v
  vgĂ܂܂B.profile(.bash_profile)PS1ݒ肵A
  R\[ŃOCāAstartxXNƁAȂPS1͔j󂳂
  Ă܂AftHg̃vvgɖ߂܂B

  @̈́Axtermrxvt-lsIvVtŋNA.profilet@C
  ǂݍނ悤ɂ邱ƂłBAΘb^̃VFXNvgɂ
  ăVFĂ΂xPS1܂Bsystem(3) sh -c g܂A
  sh  bash Ȃ PS1 ܂B悢@́APS1 ̒` .bashrc 
  uƂłB bash Nxɓǂݍ܂܂̂ŁAPS1 ̂悤
  ΘbɕKvȂ̂uׂꏊłB

  āAuPS1=炩񂽂v́A.profile ł͂ȂA.bashrc ɒu
  ׂłB

  ͔ނ̐Č悤Ƃĕʂ̖ɂԂ܂B
  PROMPT_COMMAND ϐ(ɐ܂)ȂȂĂ܂̂łB̕
  ł̎̒m͏\łȂ̂ŁAJohan 悤ɂ܂傤B

  3.  OR}h

  3.1.  PROMPT_COMMAND

  Bash ɂ́APROMPT_COMMAND Ƃϐ܂B̓e Bash 
  vvgoOɕʂ Bash ̃R}hƂĎs܂B

  [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:~]

  ł́A\tGXP[vV[PX PS1 ̒ɂ͂܂̂ŁAv
  vgɂ͎ԏ񂪊܂܂܂Bdate +%H%MɂĎ̍D݂̃tH[}b
  gŎԂ\܂BAԂvvgƕʂ̍sɕ\
  BBash 2.0+ ł́Aecho -n ...gĂ𒼂Ƃł܂
  ABash 1.14.7 ł͂łȂ悤łBvvg̕\@قȂĂ
  AeLXg2\悤ɂȂĂ܂܂B

  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:~]

  echo -n ... date R}h̏o͂𐧌䂵AŌ̉s}邱Ƃ
  āAvvg1sŕ\悤ɂȂ܂BŌ unsetR}
  hgāAϐ PROMPT_COMMAND ܂B

  R}hWJsȂ̂ɁA$(<command>)ƂgĂ邱Ƃɒ
  ӂĂB܂A

  $(date +%H%M)

  ́Audate +%H%M̃R}h̏o͂ŒuvƂӖłB
  ́ABash 2.0+ ł͓܂A1.14.7 ȑO Bash ł́AobNNH[g
  gāA`date +%H%M`Ƃ܂BBash 2.0+ łobNNH[g͎g܂
  A$()̕lXg₷̂ŎgȂȂĂ܂B̕ł͂
  ̏gĂ܂BȂ̎gĂ Bash Âo[W
  ȂA$()̑ɃobNNH[ggĂBR}hWJGX
  P[vĂ鎞(܂ \$(command) )́AobNNH[g𗼕GXP
  [v(܂ \`command\` )Ă

  3.2.  vvg̒ł̊OR}h

  ʂ Linux ̃R}h̏o͂𒼐ڃvvgɖߍނƂł
  B̂̂𖄂ߍƂ͂ȂłBvvg
  肷܂BȂ͑R}hgƂvĂł傤Bv
  vgʂɕ\邽тɎsāAƒɃvvg̕\Ɏ
  ԂƃCC܂B(O̗ɎĂ܂A Bash
  1.14.7 ł삵܂B)

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

  R}hWJ̃h̑OɂobNXbVɒӂĉBꂪ
  ȂƊOR}h́APS1 񂪊ɓǂݍ܂鎞ɂx
  s܂B̃vvg̏ꍇɂ́AǂȂɒvvg
  gĂAԂ\邱ƂɂȂ܂BobNXbV
  uƂɂāA$()̓eɂ͎sȂȂA"date" ̓v
  vgxɎs邱ƂɂȂ܂B

  Linux ɂ͑̏ȃ[eBeBĂ܂BdateA grepA wc
  ǂŃf[^𑀍ł܂B̂悤ȃvOgĕGȃvvg
  ɂ́AVFXNvgāAvvgs
  ł傤BXNvg̒łR}hɎs悤A
  GXP[vV[PXKvɂȂ邱Ƃ܂(dateR}h̗
  悤)BPS1̍s̒ł̓xiオ邱ƂɂȂ܂̂ŁAVFX
  Nvg邱Ƃɂ肱̂͂悢lłB

  ȃVFXNvgvvg̒Ŏg܂傤B

  ______________________________________________________________________
  #!/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"
  ______________________________________________________________________

  ̂悤Ȃ̂֐(̕IłA̕ł͊֐͎̏c
  OȂ爵܂)ɂApX̒ʂĂ  /bin fBNg̒
  VFXNvgƂĕۑĂ܂Bvvg̒ł̎ǵA

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

  3.3.  vvgɉu

  vvg̗ł́AقƂǂ[U[A@BAԁA
  ݂̃fBNg\邱ƂɂCÂł傤BԂ΁A
  ̓vvgɕ\Ŵ̂ŁAԂ͂炭̎ɒǉ
  邱Ƃ̑̂ł傤Bł邩́ASl̎ɂ
  ̂łBł́A̒mĂl̗ĂȂɎQlɂ
  炢܂傤B

  Dañvvg͒ZǂʓIłBɔނ̎d̂ɂƂ
  āB

  [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́AfBNgc[𓮂ĂԁAvvg̒}ɑ
  ɕς̂ŁÃ݂fBNg\͍̂Dł͂܂B
  炻͓ɂł܂(܂pwdR}hg܂)Bނ
  Unix  csh  tcsh Ŋw񂾂̂ŁAR}hqXg[悭g
  (Bash g͂܂肻͂Ȃ悤ł)̂ŁAvvg̍ŏɃqX
  gԍ\܂B(tty R}h̏o͂ sed ŉH)tty 
  ̒̓Iȕ\܂B "screen" gĂl
  ɗ܂BOԖڂɁAŌɎgR}hpCvC exit l
  \܂(̓vvgsR}hł͈Ӗ܂
  ̂ŁAexitlʂ̕ϐɕ߂ĕ\悤ȂƂlKv
  )BŌ \$ Œʏ̃[U[ł $ Aroot ɑ΂Ă # \
  悤ɂ܂B

  Torben Fjerdingstad ́AXWuTXyhÂƂɂĖY
  Ă܂̂ŁATXyh̃WuvoĂvvgg
  Ăƃ[Ă܂B

       [giles@nikola:~]$ function jobcount {
       > jobs|wc -l| awk '{print $1}'
       > }
       [giles@nikola:~]$ export PS1='\W[`jobcount`]# '
       giles[0]# man ls &
       [1] 4150

       [1]+  Stopped (tty output)    man ls
       giles[1]#

  Torben ́Aawk wc ̏o͂̒̃Xy[XĂ܂BȂ sed 
  tr gƂł傤B̕ł͂ȂA̕Ă邩
  łB̕@邱Ƃł傤BTorben  PS1 VONH
  [gň͂ł܂A Bash obNNH[g𒼂ɉ߂̂
  h܂BqׂGXP[v̕@͎gĂ܂B

  : Bash 2.02 ɂ̓VF̑gݍ݃R}hł jobs pCvɉ
  nȂƂoOmĂ܂B̃R[h Bash 2.02 ŎƁA
  TXyhWuĂ0AĂ܂BBash ̕ێ
  lł Chet Ramey ́Av2.03 ł͂𒼂ƌĂ܂B

  3.4.  Bash ̊Ɗ֐

  łɏqׂ悤ɁAPS1APS2APS3APS4APROMPT_COMMAND ׂ͂ Bash
  ̊ɕۑ܂B̂悤 DOS 炫̂ɂƂāA DOS 
  ̈͋A܂głȂ̂ŁAɑ̕
  ͋|łB炭̑傫ɂ͎ۏ̏̂ł傤A
  ͒m܂񂵁ADOS [U[Ă傫̉{̃I[_[̘b
  ̂ł傤BDan ͎̂悤ɌĂ܂B

  u̎gĂΘb^̃VFɂ́AGCAX62Ɗ֐25BΘb
  ^ŎĝŁAȒP bash ŏꍇ́A֐ɂĂ (GC
  AXŏɂ͓ꍇ)BCɂȂȂAbash gȂ
  낤Bbash ͎ linux box œĂvO̒
  Oracle ̎ɑ傫Btop R}hXāAM ă̑
  Ń\[gĂBbash قƂǈԏɋ߂Ƃɂ̂
  邾낤Bsendmail 傫񂾂! CɂȂȂ ash ̂悤
  Ȃ̂g΂Bv

  ނ̓R\[gĂ̂ł傤BX  X AvP
  [V𓮂΁ABash 傫̂ς܂Błl
  łB͎ĝׂŁAg߂SzKv͂Ȃ̂ł
  B

  ƁAUnix ̓tɂ͒PĂƌ{󂯂邩
  ܂B֐͊{IɏȃVFXNvgŁÂ߂Ɋ
  ɓǂݍ܂Ă܂BDan ̌t؂΁uVF֐́AEɋ߂
  Ƃ܂ŌIBVFXNvg source ̂Ƃقړl̂Ƃ
  t@Co͂ȂɎsłBłɃɓǂݍ܂Ă邩炾B
  VF֐͒ʏ탍OCVFTuVFɂāA.bashrc 
  .bash_profile t@Cǂݍ܂BVFXNvg𓮂ꍇ
  ́Ã݂VF fork AqvZX exec sȂA炭pX
  TAJ[l̓t@CJAŝɏ\ȃ邩m
  ߁AVFXNvgłꍇɂ͐VVFXNvg
  ė^ċNÃVFt@CJāAessBVF
  ֐̏ꍇƔׂƁAessȊO͕̕sKvȃI[o[wbh
  ɂȂBv

  4.  Xterm̃^Cgo[̑

  \ȂGXP[vV[PX̓vvgɋ[ʂ炷
  ߂ɗp܂B̂悤ȃGXP[vV[PXpɂ́A\[  \]
  ň͂łABashvvg̑傫vZ鎞ɖ܂B
  ؂ĂȂƁAsҏW̍ۂ̃J[\̈ʒǔvZĂ
  BGXP[vV[PX́Ao[W2ȑO Bash ł \033[ 
  ͂߁Aȍ~̃o[Wł́A\033[ ł \e[ ł͂߂邱Ƃ
  ܂B

  R\[gĂ鎞 Xterm ̃^Cgo[ς悤ƂƁAv
  vgɂ݂܂Bɂ͊ϐ TERM 𒲂ׂāA
  Xterm ̎̃vvgg悤ɂ܂B

  ______________________________________________________________________
  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='+ '
  }
  ______________________________________________________________________

  ́A /.bashrc ɏĂ֐łB̊֐ĂԂƎs
  B֐́APS1 Ɠlɒu܂BPS1 ϐ̊֐Œ`
  ꂽÅ֐unset promlŊ菜Ƃł܂B
  Xterm ɂԂ̓R\[ɕς邱Ƃ܂񂩂AϐTERMv
  vgoxɃ`FbNKv͂܂Bpŝ邵 (obNX
  bV)vvg̒`̒ŎgĂ̂́Asɂ܂悤
  ɂāAǂ݈Ղ𑝂ACAfobÔeՂɂĂ܂B

  ֐ɂĂ̂́AŐ Bashprompt pbP[Ŵ
  BȂ΂ȂȂƂƂł͂܂񂪁Â͂
  ܂BȂ̎gvvgGɂȂĂ΂قǁA
  vvĝƂŃ^Cv͖̂ʓ|ɂȂAeLXgt@Cŕۑ
  KvĂ܂B͏̊֐ proml ƂeLXgt@C
  ۑ܂傤B̂悤ɂ܂B

       [giles@nikola:/bin (4.498 Mb)]$ cd          -> vvgۑfBNgɈړ
       [giles@nikola:~ (0 Mb)]$ vi proml           -> vvgt@CҏW
       ...                                         -> ̃eLXg
       [giles@nikola:~ (0 Mb)]$ source proml       -> vvg֐̓ǂݍ
       [giles@nikola:~ (0 Mb)]$ proml              -> vvg֐̎s

  ̃vvg쐬iḰAVF xterm ǂ`FbN
  邱ƂłBxtermȂAVFϐ(${TITLEBAR})`܂B
  ̓e͓K؂ȃGXP[vV[PX\u@\h:\wŁǍʁA <[U[
  >@<}V>:<fBNg> Xterm ̃^Cgo[ɕ\܂B
  ͓ Xterm ŏɓ肵₷Ă܂B̃vv
  ĝȊO͂̕łɍ܂ōvvgłȂ݂̂̂łB

  ̂悤 Xterm ̃^Cgo[𑀍삷B̃fbǵÂ悤
  ȃ^Cgo[ɂȂ悤ɃZbgĂȂ@BgƂA^Cgo
  [̂܂܂ɂȂĂ܂ƂłB

  5.  ANSI GXP[vV[PX: FƃJ[\

  5.1.  F

  łɏqׂ悤ɕ\ȂGXP[vV[PX́A\[\033[  \] 
  ͂łKv܂BF̃GXP[vV[PX̏ꍇ͌ m\]
  ĂKv܂B

  ꂩvvgĂ݂āAw肵F܂\
  ȂȂA /.Xdefaults t@C(邢͂Ɠ̃t@C)
  "XTerm*Foreground: BlanchedAlmond" ̂悤ȍsȂׂĂB
  ̑O!}[N邱ƂɂāARgAEg邱Ƃł
  B́AȂǂ̂悤Ȓ[G~[^gĂ邩ɂˑ
  ܂BȂ̒[̐F㏑\̂Ƃ̂̃t@C
  łB

  vvgɃu[̃eLXgɂ́A

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

  ̃vvǵ̖A34̃J[R[hŕςu[̐FƂ̐F
  ߂Ȃ̂ŁAvvǧɃ^CvvvgƓFɂȂ
  Ă܂ƂłB܂Ãu[͈Â̂ŁAbold R[hgݍ킹
  ܂B

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

  vvg͖邢u[ɕςAŌɐFȂɂĂ܂B(FȂ
  ́ÃtHAOEhJ[łB)

  F͎̂悤ɒ`Ă܂B

       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

  obNOEhJ[̕@Ŏw肷邱Ƃł܂BƂ44
  u[A41ȂԂƂӂɂȂĂ܂BobNOEhJ[ɂ
  {[ĥ̂܂Bu[̔wiɃCgbh̃eLXg\
  ȂA \[\033[44;1;31m\] ̂悤ɑgݍ킹ĎgƂł܂A
  \[\033[44m\]\[\033[1;31m\] ̂悤ɕĐݒ肵悤łB
  ̃R[hƂẮA4:A5:_ŁA7:t]A8:\Ȃǂ܂B

  :̐l(܂)́A_őɋ΂܂BK͒[G
  ~[^ł͍쓮܂񂪁AR\[ł͋@\܂B܂A (
  ł悤)\͉̂߂ɂ̂낤Ǝvł傤B (v
  vgł͂Ȃ)VFXNvg̗ŁApX[h͂ĂXN
  [ɕ\Ȃ悤ɎgĂ̂Ƃ܂B

  Bashprompt pbP[W̒ elite2 Ƃvvg(̂ xterm 
  tHgŗp悤ɂȂĂ̂ŁAR\[Ŏg悤)C
  ̂́Â悭gĂ̂łB

  ______________________________________________________________________

  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 "
  }
  ______________________________________________________________________

  FꎞIVFϐƂēǂ݈Ղ̂ɒ`܂BGRAD1 ϐ͎g
  [߂̂ɗpĂ܂BXterm ォǂ̃`FbNƓlA
  xsȂΏ\łBʂ͐F΂̂悤Ɍ܂B

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

  ǂȐFĝvo߂ɁÃXNvgׂ͂Ă̐FXN
  [ɃGR[܂B

  ______________________________________________________________________
  #!/bin/bash
  #
  #   ̃t@ĆAlXȃJ[R[h[ɃGR[AǂȐF
  #   gp\܂B
  #   ꂼ̍sł́AƃOC̔wȉɈ̐FAR[h𒆉
  #   \Ă܂BAAO[̔wiFŊmFĂ܂B(2 Dec 98)
  #
  echo "  On Light Gray:        On Black:"
  echo -e "\033[47m\033[1;37m  White        \033[0m\
   1;37m \
  \033[40m\033[1;37m  White        \033[0m"
  echo -e "\033[47m\033[37m  Light Gray   \033[0m\
     37m \
  \033[40m\033[37m  Light Gray   \033[0m"
  echo -e "\033[47m\033[1;30m  Gray         \033[0m\
   1;30m \
  \033[40m\033[1;30m  Gray         \033[0m"
  echo -e "\033[47m\033[30m  Black        \033[0m\
     30m \
  \033[40m\033[30m  Black        \033[0m"
  echo -e "\033[47m\033[31m  Red          \033[0m\
     31m \
  \033[40m\033[31m  Red          \033[0m"
  echo -e "\033[47m\033[1;31m  Light Red    \033[0m\
   1;31m \
  \033[40m\033[1;31m  Light Red    \033[0m"
  echo -e "\033[47m\033[32m  Green        \033[0m\
     32m \
  \033[40m\033[32m  Green        \033[0m"
  echo -e "\033[47m\033[1;32m  Light Green  \033[0m\
   1;32m \
  \033[40m\033[1;32m  Light Green  \033[0m"
  echo -e "\033[47m\033[33m  Brown        \033[0m\
     33m \
  \033[40m\033[33m  Brown        \033[0m"
  echo -e "\033[47m\033[1;33m  Yellow       \033[0m\
   1;33m \
  \033[40m\033[1;33m  Yellow       \033[0m"
  echo -e "\033[47m\033[34m  Blue         \033[0m\
     34m \
  \033[40m\033[34m  Blue         \033[0m"
  echo -e "\033[47m\033[1;34m  Light Blue   \033[0m\
   1;34m \
  \033[40m\033[1;34m  Light Blue   \033[0m"
  echo -e "\033[47m\033[35m  Purple       \033[0m\
     35m \
  \033[40m\033[35m  Purple       \033[0m"
  echo -e "\033[47m\033[1;35m  Pink         \033[0m\
   1;35m \
  \033[40m\033[1;35m  Pink         \033[0m"
  echo -e "\033[47m\033[36m  Cyan         \033[0m\
     36m \
  \033[40m\033[36m  Cyan         \033[0m"
  echo -e "\033[47m\033[1;36m  Light Cyan   \033[0m\
   1;36m \
  \033[40m\033[1;36m  Light Cyan   \033[0m"
  ______________________________________________________________________

  5.2.  J[\

  ANSIGXP[vV[PXŃJ[\XN[ŎRɓ܂B
  ̓VFXNvgŃtXN[̃[U[C^[tF[X鎞
  ɖɗ܂Avvgłg܂BJ[\GXP[vV[P
  X͎̂ƂłB

       - J[\̈ʒu߂B
         \033[<L>;<C>H
         J[\ L s C ɒu܂B
       - J[\ N sɓB
         \033[<N>A
       - J[\ N sɓB
         \033[<N>B
       - J[\ C EɓB
         \033[<>C
       - J[\ C 񍶂ɓB
         \033[<C>D

       - J[\̈ʒuLB
         \033[s
       - LĂJ[\̈ʒuɖ߂B
         \033[u

  Ō̓̃R[h͑̒[G~[^ŎĂ܂B
  mĂł́Axterm  nxterm ł͎Ă܂B̒[G
  ~[^ xterm ̃R[hɊÂĂɂ炸BmF
  ArxvtAkvtA xitermAEterm ̓T|[gĂ܂BR\[ł
  T|[gĂ܂B

  ̃R[hvvgɂĂ݂ĉB(ꂪĂ̂
  ͂肳ɂ́A[̏ォ牽słsĉB) echo
  -en "\033[7A\033[1;35m BASH \033[7B\033[6D" ́AJ[\7s
  グ" BASH "ƕ\ÃvvĝƂɃJ[\߂܂B
  ̓vvgł͂܂BNĂ邩͂肳邽߂
  FςāAJ[\XN[œĂ݂Ă邾łB

  "clock"ƂÕt@CɓĉB

  ______________________________________________________________________
  #!/bin/bash

  function prompt_command {
  let prompt_x=$COLUMNS-5
  }

  PROMPT_COMMAND=prompt_command

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

  PS1="${TITLEBAR}\
  \[\033[s\033[1;\$(echo -n \${prompt_x})H\]\
  $BLUE[$LIGHT_RED\$(date +%H%M)$BLUE]\[\033[u\033[1A\]
  $BLUE[$LIGHT_RED\u@\h:\w$BLUE]\
  $WHITE\$$NO_COLOUR "
  PS2='> '
  PS4='+ '
  }
  ______________________________________________________________________

  ̃vvgōsȂĂ邱Ƃ͔rIPŁA[̉E24Ԑ
  ̎\܂B([̃TCYςĂvłB)́AJ[
  \̈ʒűLƉ񕜂T|[gĂȂ[G~[^ł͂܂
  ܂B̂悤Ȓ[G~[^łsƁA͐mɕ\
  ܂Avvg͒[2sڂ瓮܂B

  ̃R[hƑRǵA ``𗧂̃GKgȎ\
  vvg''ɂ܂B

  5.3.  tput ŃJ[\𓮂

  Unix ł̑̂Ƃł悤ɁAʂ𓾂ɂ́Aȏ
  @܂Btput ƌĂ΂郆[eBeBłXN[ŃJ[\
  𓮂܂Btput ̓J[\ł ANSI _ႭA
  ̎w肵WɓƂł邾ŁÄ݂ʒu瑊ΓIɓ
  Ƃ͂ł܂B"tput"g܂̂ŁAȏڂ͐
  ܂B"man tput"ƂΎ̒mĂ邱Ƃ܂B

  6.  ʂȕ: 8iGXP[vV[PX

  L[{[h͂ł镶ȊOɂAXN[ɕ\ł镶͑
  R܂BȂǂȃtHggĂ̂mF邽߂̃XN
  vgĂ݂܂̂ŁAgĂ݂ĉB̂悤ȕg
  ɕKvȎȃR}h"echo -e"łB"-e"XCb`ɂAecho ̓obN
  XbVŃGXP[vꂽ߂悤ɂȂ܂B8i
  200-400ŕ\̂́AW Linux tHg VGA tHgł͔
  ɈقȂĂ܂B̃GXP[vV[PXȂ̒[ł
  Ȍʂ\邩܂̂ŁAӂĉBȂ邱Ƃh
  悤ɂ͂Ă܂BBashprompt ł悭pĂ(Word Perfect
  łȂ݂ɂȂ)rlṕ̕A 8i260337ɂ܂B

  ______________________________________________________________________
  #!/bin/bash

  #   Script: escgen

  function usage {
     echo -e "\033[1;34mescgen\033[0m <lower_octal_value> [<higher_octal_value>]"
     echo "   8iGXP[vV[PXWFl[^[:̒l̒l܂ł"
     echo "   ׂĂ8iGXP[vV[PX\܂BA2Ԗڂ̏"
     echo "   l^Ȃ΁A8̕\܂B"
     echo "   1998 - Giles Orr, no warranty."
     exit 1
  }

  if [ "$#" -eq "0" ]
  then
     echo -e "\033[1;31mPlease supply one or two values.\033[0m"
     usage
  fi
  let lower_val=${1}
  if [ "$#" -eq "1" ]
  then
     #   l^Ȃꍇ́A8ɂB
     upper_val=$(echo -e "obase=8 \n ibase=8 \n $lower_val+10 \n quit" | bc)
  else
     let upper_val=${2}
  fi
  if [ "$#" -gt "2" ]
  then
     echo -e "\033[1;31mPlease supply two values.\033[0m"
     echo
     usage
  fi
  if [ "${lower_val}" -gt "${upper_val}" ]
  then
     echo -e "\033[1;31m${lower_val} is larger than ${upper_val}."
     echo
     usage
  fi
  if [ "${upper_val}" -gt "777" ]
     then
     echo -e "\033[1;31mValues cannot exceed 777.\033[0m"
     echo
     usage
  fi

  let i=$lower_val
  let line_count=1
  let limit=$upper_val
  while [ "$i" -lt "$limit" ]
  do
     octal_escape="\\$i"
     echo -en "$i:'$octal_escape' "
     if [ "$line_count" -gt "7" ]
     then
        echo
        #   Put a hard return in.
        let line_count=0
     fi
     let i=$(echo -e "obase=8 \n ibase=8 \n $i+1 \n quit" | bc)
     let line_count=$line_count+1
  done
  echo
  ______________________________________________________________________

  xfd g X tHgɊ܂܂邷ׂĂ̕\邱Ƃł
  BR}h́A"xfd -fn <fontname>"łB镶̏ŃNbN
  ƁA8i@ł̒l܂߁A̕ɊւlXȏ񂪓܂B
  ̃XNvǵAR\[Ō݂̃tHgȂɖɗ
  ł傤B

  7.  Bash PromptpbP[W

  7.1.  @

  Bash Prompt pbP[ẂAhttp://bash.current.nuœ\łBRob
  Current (ʖBadLandZ) 𒆐SƂl̍iłBpbP[W͂܂
  x[^ł̒iKłAlXȃvvg(e[})(PS1
  /.bash_profile   /.bashrc ɂ邱Ƃɂ)OCVFTu
  VFŎgƂ\ɂĂ܂B̃e[}͊g VGA Zb
  ggĂ܂̂ŁA(̃VXeł̓ftHgɂ͂ȂĂ܂
  ) VGA tHgłȂƂ܂\܂B

  7.2.  Xterm ̃tHgς

  Bash Prompt pbP[W̖͓̑Iȃvvggɂ́Avvg
  z肵Ă镶ZbgɑΉtHgCXg[Kv
  ܂B VGA tHgƌĂ΂Ă܂A Linux ɒʏ
  tHgƂ̈Ⴂ悭܂B炩ɕZbg͈Ă
  BW Xterm tHǵAgꂽAt@xbgĂA
  ANZĝ܂ł܂BVGA tHgł͂̂悤ȕ
  lp_Ȃǂ̐}`ɕςĂ܂Bɂďڂł
  ͎Ƀ[ĂBɐ܂B

  ̃tHg肵ăCXg[ɂ͂ƎԂ
  B܂tHg肵܂B炪 .pcf  .pcf.gz ɂȂĂ邱
  ƂmFĂB .bdf ɂȂĂAbdftopcf R}h
  Ă (man y[Wǂŉ)B.pcf  .pcf.gz t@C
  /usr/X11R6/lib/X11/fonts/misc fBNgɓ܂(RedHat 5.1 
  Slackware 3.4 ł͂ȂĂ܂A Linux fBXgr[V
  ł͈Ⴄ܂)B̃fBNg cd Amkfontdir R}
  hs܂B xset fp rehash s܂BfBNgɂ
   fonts.alias t@CāAtHg̕ʖZ`̂
  傤B

  VtHggɂ͓K؂ Xterm NKv܂Bman y
  [W݂Axterm --help ƂĂ݂ĂBʏ펟̂悤ɋN
  B

       xterm -font <fontname>

  ܂

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

  VGA tHǵA
  http://home.earthlink.net/~us5zahns/enl/ansifont.html Stumpy's ANSI
  Fontsy[W݂ĂB(̃y[W͂̂̕ɑ傢ɎQƂ
  Ă炢܂)

  8.  vvgς

  8.1.  vvgςA

   HOWTO ł̐ŁAϐ PS1 ̍Â悤 PS1  PS2
    /.bashrc ŌĂׂ֐ɂꂽAbashprompt pbP[W̃e[}Ƃ
  Ă@Ă܂B

  bashprompt pbP[WĝɁAbashprompt -iƂΓo^Ăe
  [}̈ꗗoĂ܂BOCVF̃vvgݒ肷ɂ
  bashprompt -l themenameƂ܂Bbashprompt ́A /.bash_profile ɕKv
  ȃe[}ݒ肵܂BTuVFpɐݒ肷ɂ́A bashprompt -s
  themenameƂƁA /.bashrc ύX܂B

  ``PS? ̐ݒi''̏͂ɂ́A /.bashrc PS? u
  Ƃ̏dvĂ܂̂ŁAQƂĉB

  8.2.  vvgςA

  ݂̒[̃vvgςɂ́A elite ֐̗g΁A
  source elitěAeliteƂ܂(elitet@CfBNgɂ
  )B͌\Ԃ܂Bɂ elite֐ۑĂ
  ܂Ă܂Aunset eliteŉ邱Ƃł܂BVFXN
  vgŏ̂Ǝvł傤Ał͂܂܂BX
  Nvgł݂͌̊ς邱ƂłȂłBXNvg̓
  ĂTuVF̊ς邾łBXNvgIƁATu
  VFIAXNvgɂĕω͎܂B݂̃VF
  ̊ϐςɂ́A֐pKv܂B bashprompt
  pbP[Wł́Acallbashprompt Ƃ֐ɌĂэ܂܂B
  ɂẴhLg͂܂񂪁Å֐gƂ̏
  bashprompt ̃e[}[h邱Ƃł܂BCXg[ꂽe[
  }fBNgɒTɂ܂̂ŁAȂge[}t@C͂
  ̃fBNgɂĂȂ΂Ȃ܂BŁA֐͂A
  sA܂B̈͂ӂł܂B
  callbashprompt ͂̂悤Ȏgz肵Ă܂񂵁AG[`Fb
  NsȂ܂񂪁ÂƂoĂ΂܂܂B

  9.  IɃvvg̐Fς

  9.1.  ǂΉ\

  ͖͓IȃvvgƂ́AIɃvvgςɂ͂
  Ή\łƂᎦłB̗ł́AzXgVXeׂɉ
  ĐFς܂(xɂȂ܂)B

  ______________________________________________________________________
  #!/bin/bash
  #   "hostloadcolour" - 17 October 98, by Giles
  #
  #   ̗́Avvg̃zXg𕉉ׂ̒lɂĕς܂B

  # THRESHOLD_LOAD ́Avvg̐F COLOUR_LOW  COLOUR_HIGH 
  # ς1Ԃ̕ח(100{)܂B
  THRESHOLD_LOAD=200
  COLOUR_LOW='1;34'
            # Cgu[
  COLOUR_HIGH='1;31'
             # Cgbh

  function prompt_command {
  ONE=$(uptime | sed -e "s/.*load average: \(.*\...\), \(.*\...\), \(.*\...\)/\1/" -e "s/ //g")
  #   bcscaléAZɂ͓KpꂸAZɓKp悤łB
  ONEHUNDRED=$(echo -e "scale=0 \n $ONE/0.01 \nquit \n" | bc)
  if [ $ONEHUNDRED -gt $THRESHOLD_LOAD ]
  then
      HOST_COLOUR=$COLOUR_HIGH
          # Cgbh
  else
      HOST_COLOUR=$COLOUR_LOW
          # Cgu[
  fi
  }

  function hostloadcolour {

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

  D݂̃GfB^gāA hostloadcolour Ƃt@Cɕۑ
  B Bashprompt pbP[WCXg[ĂȂA̓e[}
  t@CɂȂ܂BCXg[ĂȂȂAsource
  hostloadcolour ɑāAhostloadcolourƂ܂BǂɂĂ
  prompt_command Ȃ̊̊֐ɂȂ܂BR[h݂ƁA
  F($COLOUR_HIGH$COLOUR_LOW) ͐FR[ḧꕔ
  "\[\033[1;34m\]"(̂ł)ł͂Ȃ "1;34"Œ`
  邱ƂɋCÂł傤BSȐFR[hĝłA
  łBǂ炢狳ĂB

  10.  vvg̗

  10.1.  uyʁvvvg

  ______________________________________________________________________

  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='+ '
  }
  ______________________________________________________________________

  10.2.  Bashpromptelite

  VGA tHgKvłB

  ______________________________________________________________________

  # 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="> "
  }
  ______________________________________________________________________

  10.3.  up[[U[vvvg

  ۂɎgĂvvgłBVO[U[
  PentiumII-400MHz łvvg\̒xꂪo܂̂ŁA}`[U[
   Pentium-100MHz Ŏĝ͂߂Ă...BۂɎgƂ
  ́Al̗ƂČĂB

  ______________________________________________________________________
  #!/bin/bash
  #----------------------------------------------------------------------
  #       POWER USER PROMPT "pprom2"
  #----------------------------------------------------------------------
  #
  #   Created August 98, Last Modified 9 November 98 by Giles
  #
  #   :ׂ "1.35down-.08" ƂȂ̂ŁA- ƂKvB
  #   - $PWD ̒30܂łƂA͉E؂̂ĂĂB

  function prompt_command
  {
  #   ϐ TotalMeg ͌fBNg̉t@C̃TCY̍v
  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)

  #      uptime R}hɂAׂ̍vZB
  #      uptime ́A1A5A15̕ϕׂB
  #
  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}")"

  #   t@C̐𐔂
  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='+ '
  }
  ______________________________________________________________________

  10.4.  [̃vvg

  vvg $PWD ܂܂ƁAvvg̒ςƂȂFl
  ̂ŁAvvg̒傤ǒ[̕ɂȂvvgĂ
  ܂B

  ______________________________________________________________________
  #!/bin/bash

  #   [̃vvg
  #      by Giles - created 2 November 98
  #                 last modified 9 November 98
  #
  #   ōl̂́A2sȂvvg1sڂ[̕ɂȂ悤
  #   邱ƂłB邽߂ɁAeLXg̕𐔂Aɍ悤
  #   $PWD AE؂l߂肵܂B
  #
  #   - ƐKv܂AƂ肠܂B
  #   - zXg͖񂳂Kv܂Bω܂񂩂B
  #   - [U[͂ǂ낤? ς邩Ȃ?
  #   - prompt_command ōeLXgϐ͋Ǐϐł͂ȂB
  #     PS1 ɕۑKv邩B

  function prompt_command {

  TERMWIDTH=${COLUMNS}

  #   vvgvZ

  hostnam=$(echo -n $HOSTNAME | sed -e "s/[\.].*//")
  let hostsize=$(echo -n $hostnam | wc -c | tr -d " ")
  #   "whoami"  "pwd" ̍Ō͉sɂȂĂB
  usernam=$(whoami)
  let usersize=$(echo -n $usernam | wc -c | tr -d " ")
  newPWD="${PWD}"
  let pwdsize=$(echo -n ${newPWD} | wc -c | tr -d " ")
  #   ANZTĂ
  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 "

  }
  ______________________________________________________________________

  10.5.  𗧂̃GKgȎ\vvg

  ͎vvg̒ŁA炭Ƃ͓I(Ƃ
  Ȃ) ̂łBX[G~[^́AJ[\ʒűLƕ
  Ă܂̂ŁAEɒu߂ɃJ[\[̍ŉs
  ɌŒ肵Ă܂B̃vvǵA̒[̃vvg̃ACfBA
  gĂAʂ̉E[Ƀvvg玞\̂Ƃ܂Œ
  Ă܂BVGA tHgKvłB

  : ł͕ςȒugĂ܂̂ŁASGML 瑼̃tH[}bg
  ɕςɂƕ\Ȃ܂B\304̕uK
  v܂Bʏ"\304"ł̂łAł͂̂悤Ȓu
  邱ƂKvłB

  ______________________________________________________________________
  #!/bin/bash

  #   ̃vvg VGA tHgKvƂBvvg͒[̈ԉ̍s
  #   [tɕ\Aʂ̉E[ɒ\AE̎\ɂȂ
  #   ĂB

  function prompt_command {
  #   Calculate the width of the prompt:
  hostnam=$(echo -n $HOSTNAME | sed -e "s/[\.].*//")
  #   "whoami""pwd"͍Ōɉs܂łB
  usernam=$(whoami)
  newPWD="${PWD}"
  #   ׂẴANZTȉɉB
  let promptsize=$(echo -n "--(${usernam}@${hostnam})---(${PWD})-----" \
                   | wc -c | tr -d " ")
  #   user@host  PWD ̊Ԃɂǂꂾ΂(PWD ؂΂悢)
  #   vZB
  let fillsize=${COLUMNS}-${promptsize}
  fill=""
  #   vvg[Zꍇɂ́AߑB
  while [ "$fillsize" -gt "0" ]
  do
     fill="${fill}"
     # A EEg(VGA tHgł͒)\304łABash ł͒u
     # ނsȂꂸAł $fill vvgɖߍނƂ
     # ̂ŁÂ悤ɕς܂B
     let fillsize=${fillsize}-1
  done
  #   vvg[蒷߂悤ȂAPWD ̉E؂̂Ă܂B
  if [ "$fillsize" -lt "0" ]
  then
     let cutt=3-${fillsize}
     sedvar=""
     while [ "$cutt" -gt "0" ]
     do
        sedvar="${sedvar}."
        let cutt=${cutt}-1
     done
     newPWD="...$(echo -n $PWD | sed -e "s/\(^${sedvar}\)\(.*\)/\2/")"
  fi
  #
  #   ƒ[̉E[ɕ\o[܂B
  #
  local LIGHT_BLUE="\033[1;34m"
  local     YELLOW="\033[1;33m"
  #   \J[\̈ʒu߂܂B
  echo -en "\033[2;$((${COLUMNS}-9))H"
  echo -en "$LIGHT_BLUE($YELLOW$(date +%H%M)$LIGHT_BLUE)\304$YELLOW\304\304\277"
  local i=${LINES}
  echo -en "\033[2;${COLUMNS}H"
  #   c[̘eɕ\܂B
  while [ $i -ge 4 ]
  do
     echo -en "\033[$(($i-1));${COLUMNS}H\263"
     let i=$i-1
  done

  let prompt_line=${LINES}-1
  #   Bash̐\($(()))̒ł́A\${LINES}܂@\Ȃ悤Ȃ̂
  }

  PROMPT_COMMAND=prompt_command

  function clock3 {
  local LIGHT_BLUE="\[\033[1;34m\]"
  local     YELLOW="\[\033[1;33m\]"
  local      WHITE="\[\033[1;37m\]"
  local LIGHT_GRAY="\[\033[0;37m\]"
  local  NO_COLOUR="\[\033[0m\]"

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

  PS1="$TITLEBAR\
  \[\033[\${prompt_line};0H\]
  $YELLOW\332$LIGHT_BLUE\304(\
  $YELLOW\${usernam}$LIGHT_BLUE@$YELLOW\${hostnam}\
  ${LIGHT_BLUE})\304${YELLOW}\304\${fill}${LIGHT_BLUE}\304(\
  $YELLOW\${newPWD}\
  $LIGHT_BLUE)\304$YELLOW\304\304\304\331\
  \n\
  $YELLOW\300$LIGHT_BLUE\304(\
  $YELLOW\$(date \"+%a,%d %b %y\")\
  $LIGHT_BLUE:$WHITE\$$LIGHT_BLUE)\304\
  $YELLOW\304\
  $LIGHT_GRAY "

  PS2="$LIGHT_BLUE\304$YELLOW\304$YELLOW\304$NO_COLOUR "

  }
  ______________________________________________________________________

  |       akendo@t3.rim.or.jp

  Z yuri aisaka <ayqw@mail2.alpha-net.or.jp> HASEGAWA Yasushi
  <yaz-hase@qb3.so-net.ne.jp>

