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 ±ÌhL gÌg¢û 1.3 |ó 1.4 âè 1.5 RgâñÄ𷩹ľ³¢ 1.6 Ó« 1.7 ì ÆÓCúü 2. BashÆBashÌ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 Bashprompt©çelite 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[hÍ1.14.7Å஫ܷB½ ©âèÌ éƱëÍAªmÁÄ¢éÀè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ÍAòRÌáâà¾ð«Üµ½ªA»êçÍo±ðÏñ¾ VFEvO}ÉÍsKvÉv¦é©àµêܹñB 1.2. ±ÌhL gÌ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. âè ±êÍAªvvgðvOµÄ¢ÄCªÂ¢½âè_ÌXgÅ ·B±±©çÇÝnßĪÁ©èµÈ¢Åº³¢B±êÍשȬ³ÈâèÅ ·B½©ÏȱƪN±Á½É±±ÉßÁĺ³¢B o ½Ì Bash Ì@\(½Æ¦Î$(())ÌÅÌvZ)ÍARpCÌIv VÅ·BWÌ Linux fBXgr [VÉÍ¢ÁÄéàÌÌ æ¤ÉAoCi[Ì Bash ðgÁÄ¢éÈçA±Ìæ¤È@\Í·×Ä RpC³êÄ¢éàÌÆv¢Ü·Bµ©µAർlÌVXeÅd ðµÄ¢éÈçAúҵĢé±Æª¤Ü¢©È©Á½êɱ̱ Æðv¢oµÄº³¢B±êÉ¢ÄÍA Learning the Bash Shell, p.260-262ÉLÚª èÜ·B o [ÌXN[}l[W["screen"ÍAK¸µàANSIJ[ðT|[ gµÄ¢éÆÍÀèܹñBcOȪçÍ screen É¢ĻêÙÇÚ µ èܹñBÌ screen Ìo[WÍñíÉVµ¢àÌÅA·× ÄÌêɤܢÁĢܷªAX [ãÅAvvgÌFªWÌ 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ÁÄ¢évvgª èA»±Å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 tHgðgíÈ ¢ÆÐÇ¢pÉÈèÜ·BܽÇñÈtHgðgÁÄ¢é©ð[Ì Å²×éû@ª èܹñB o Bash 2.0+ ªo³êĨèAVµ¢@\ªtÁ³êA é@\ÌÓéÜ¢ ªÙÈÁĢܷB1.14.7Å®¢Ä¢½à̪2.0+Å®©È©Á½èAÜ ½tÌêª è¾Ü·B 1.5. RgâñÄ𷩹ľ³¢ ±êð±ÆªÉÆÁÄÌ×ÉàÈèܵ½B»¡[¢ðɧ Bash vvgð±ÆªÅ«éæ¤ÉÈèܵ½BÅàA±Ì¶Ìëèð¼ µAüPµÄ¢ÉÍA Ƚ©çÌ´zªKvÅ·B̦µ½àÌðo[ WÌÙÈé Bash (½ÍªgÁÄ¢é2.02ÅAܽLgíêÄ¢ é1.14.7Åà)Å`FbNµÄÝܵ½ªA½©ssÈ_ª êÎ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 vvgðvO·é½ßÉ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. BashÆBashÌvvg 2.1. BashÆÍ Bourne Shell ̬êðÞ Bash ÍAGNU ÅJ³êĨèA Bourne Again SHell ©ç¼t¯çêĢܷB½Ì Linux ÅÍWÌR}hCE C^[tF[XÉÈÁĢܷBÎb«âAR}hCÌÒWAâ®A ðÆ¢Á½@\ÉìzµÄ¢Ü·BvvgðÝèÏXÅ«é±Æͽ ÌlªmÁĢܷªADZÜÅ̱ƪūé©Í ÜèmçêĢܹ ñB 2.2. Bash vvgð¢¶éÆ梱ƪ éÌÅ·©? ½Ì Linux ÌftHgÌvvgÍA1F(ÊíOC)ÅA[U[ ¼A}V¼A»ÝÌfBNgð¦·àÌÉÈÁĢܷB±êÍðɧ ÂîñÅ·BÅàvvgÍàÁƽ̱Æð¦¹Ü·BÇñÈîñÅà ¦·±ÆªÅ«Ü·Btty ÔAÔAútA×óÔA[U[AÚ± ÔXBvvgÉÍ ANSI ÌFªg¦A©½Úðʵ½èA éîñ ðÛ§½¹½èÅ«Ü·B±Ìæ¤Èîñ𦷽ßÉAXterm Ì^Cgo [ðì·é±ÆàÅ«Ü·B 2.3. ȺÊ|ȱÆð·éÌ? ©Á±æ©¹éÆ¢¤¾¯ÅÈAVXeîñª¦³êéÌÍðɧ± ƪ½¢Åµå¤BÙÈÁ½@BÅÍÙÈÁ½FÅvvgðo·Æ¢¤æ ¤È±ÆÉg¤là¢Ü·B¢ÂàÌ Xterm ð¢ÂàÌ@BÅ®©µÄ ¢½èAÇÌ@B𮩵ĢéÌ©ð¨á¢µÄAÔáÁ½t@Cðí µ½è·éæ¤ÈlÍA±Ìæ¤ÈHvð·é±ÆÉæÁÄAÇÌ@B𮩠µÄ¢é©ðYêé±ÆªÈÈéŵå¤B 2.4. æêiK vvgÌ`óÍVFÏ PS1 ÉæÁÄÜèÜ·BR}hª2sÈã ÉÈéÌ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) àµvvgðivÉϦ½¯êÎA /.bashrc É PS1 ÌVµ¢è`ðu¢Äº³¢BàµA[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ÏX·éOÉ»ÝÌvvgðÛ¶µ½¯êÎAÊÌ«ÏÉ Û¶µÄ¨¢Ä¾³¢B [giles@nikola giles]$ SAVE=$PS1 [giles@nikola giles]$ àÁÆàÈPÈvvgÍ1¶©çÈéàÌÅ·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[Xªu©êAÇÝâ·Èè Ü·BàÆÌvvgÉß·ÉÍAÛ¶µÄ¨¢½ÏðÄÑoµÜ·B $ PS1=$SAVE [giles@nikola giles]$ 2.5. BashvvgÌGXP[vV[PX Bash ÉÍAvvgÅg¦éGXP[vV[PXªòR èÜ·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 vgðCü·é±ÆªÅ«Ü·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 VF¼A$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Ô \$ UIDª0Èç#A»¤ÅȯêÎ$ \nnn 8innnÉÎ·é¶ \\ obNXbV \[ \¦³êÈ¢¶ñÌJnB[§äV[PXð vvgÉßÞB \] \¦³êÈ¢¶ñÌIèB »êÅͱ«Å·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 ±êðªðµ½ÌÍstartxªbashXNvgÅAstartxÍ È½Ìv vgðÁµÄµÜ¢Ü·B.profile(àµÍ.bash_profile)ÅPS1ðÝèµA R\[ÅOCµÄAstartxÅXðN®·éÆA ȽÌPS1Íjó³ê ĵܢAftHgÌvvgÉßèÜ·B ð@ÌêÂÍAxtermârxvtð-lsIvVt«ÅN®µA.profilet@C ðÇÝÞæ¤É·é±ÆÅ·Bµ©µAñÎb^ÌVFXNvgÉæ ÁÄVFªÄÎêéxÉPS1ª¸íêÜ·Bsystem(3)Í sh -c ðg¢Ü·ªA sh ª bash Èç PS1 ª¸íêÜ·Bæèæ¢ð@ÍAPS1 Ìè`ð .bashrc É u±ÆÅ·B±êÍ bash ªN®³êéxÉÇÝÜêÜ·ÌÅ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 ª vvgðo·OÉÊÌ 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ÅÔª\¦³êÜ·Bµ©µAÔªvvgÆÊÌsÉ\êÜ ·BBash 2.0+ ÅÍAecho -n ...ðgÁıê𼷱ƪūܷ ªABash 1.14.7 ÅÍÅ«È¢æ¤Å·BvvgÌ\¦û@ªÙÈÁĨ èAeLXgª2ñ\¦³êéæ¤ÉÈÁĵܢܷ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ð}§·é±ÆÉ æÁÄAvvgª1sÅ\¦³êéæ¤ÉÈèÜ·BÅãÉ unsetR} hðgÁÄAÂ«Ï PROMPT_COMMAND ð«Ü·B R}hWJðsȤÌÉA$(<command>)Æ¢¤«ûðgÁÄ¢é±ÆÉ ÓµÄ¾³¢BÂÜèA $(date +%H%M) ÍAudate +%H%MÌR}hÌoÍÅu··évÆ¢¤Ó¡Å·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[gðgÁľ³¢BR}hWJªGX P[v³êÄ¢é(ÂÜè \$(command) )ÍAobNNH[gð¼ûGXP [v(ÂÜè \`command\` )µÄ¾³¢ 3.2. vvgÌÅÌOR}h ÊÌ Linux ÌR}hÌoÍð¼ÚvvgÉßÞ±ÆàÅ«Ü ·B½³ñÌàÌðßà¤Æ͵Ȣž³¢Bvvgª·È 跬ܷB Ƚͬ¢R}hðg¢½¢Æà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 vgª¶¬³êéxÉÀs³êé±ÆÉÈèÜ·B Linux Éͽ̬³È[eBeBªÂ¢Ä«Ü·BdateA grepA wcÈ ÇÅf[^ðìÅ«Ü·B±Ìæ¤ÈvOðgÁÄ¡GÈvvg ðìéÉÍAVFXNvgðìÁÄA»êðvvg©çÀs³¹½û ª¢¢Åµå¤BXNvgÌÅàR}hª³µ¢ÉÀs³êéæ¤A GXP[vV[PXªKvÉÈé±Æª èÜ·(ãÌdateR}hÌáÌ æ¤É)BPS1ÌsÌÅÍxªêiãªé±ÆÉÈèÜ·ÌÅAVFX Nvgðìé±ÆÉæè±êðð¯éÌÍæ¢l¦Å·B ¬³ÈVFXNvgðvvgÌÅ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@B¼AÔ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}hðg¢Ü·)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ÅãÉgÁ½R}hâpCvCÌ exit lð \¦µÜ·(±êÍvvg©çÀs³êéR}hÅÍÓ¡ª èܹñ ÌÅAexitlðÊÌÏÉߦÄ\¦·éæ¤È±Æðl¦éKvª èÜ ·)BÅãÉ \$ ÅÊíÌ[U[ÅÍ $ ðAroot ÉεÄÍ # ð\¦·é æ¤ÉµÜ·B Torben Fjerdingstad ÍAXWuðTXyhµA»Ì±ÆÉ¢ÄYê ĵܤÌÅATXyhÌWuðv¢o³¹ÄêévvgðgÁ Ä¢éÆ[µÄêܵ½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¬Ü·Bªq×½GXP[vÌû@ÍgÁĢܹñB Ó: Bash 2.02 ÉÍVFÌgÝÝR}hÅ é jobs ªpCvɽà n³È¢Æ¢¤oOªmçêĢܷBãÌR[hð Bash 2.02 Å·ÆA TXyhµ½Wuª¢Â ÁÄà0ªAÁÄ«Ü·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ÉÍAGCAXª62ÆÖª25 éBÎb ^¾¯Åg¤àÌÅAÈPÉ bash ůéêÍAÖɵĢé (GC AXÅÉÍïµ¢ê)B൪CÉÈéÈçAbash ðgíÈ¢û ª¢¢¾ë¤Bbash ÍÌ linux box Å®¢Ä¢évOÌÅ Oracle ÌÉå«¢Btop R}hðX®©µÄAM ðµÄÌå «³Å\[gµÄ²çñBbash ªÙÆñÇêÔãÉߢƱëÉ éÌªí ©é¾ë¤Bsendmail æèå«¢ñ¾æ! ªCÉÈéÈç ash Ìæ¤ ÈàÌðg¦Î¢¢Bv ±¤¢½ÞÍR\[¾¯ðgÁÄ¢½Ìŵå¤BX â X AvP [V𮩹ÎABash æè嫢̪¢ÁÏ¢ èÜ·BÅàl¦ûÍ ¯¶Å·B«Íg¤×«àÌÅAg¢ß¬ðSz·éKvÍÈ¢ÌÅ·© çB ±¤ÆAUnix ̱t½¿ÉÍP»µ·¬Ä¢éÆ{ðó¯é©àµ êܹñBµ©µÖÍî{Iɬ³ÈVFXNvgÅAø¦Ì½ßÉ «ÉÇÝÜêĢܷBDan ̾tðØèêÎuVFÖÍAÀEÉߢ ƱëÜÅø¦I¾BVFXNvgð source ·éÌÆÙÚ¯ḻÆð t@CüoÍȵÉÀsÅ«éB·ÅÉÉÇÝÜêÄ¢é©ç¾B VFÖÍÊíOCVF©TuVF©ÉæÁÄA.bashrc © .bash_profile t@C©çÇÝÜêéBVFXNvg𮩷êÉ ÍA»ÝÌVFÍ fork µAqvZXª exec ðsÈ¢A¨»çpXª T³êAJ[lÍt@CðJ«AÀs·éÌÉ\ªÈª é©m© ßAVFXNvgÅ Á½êÉÍVµ¢VFðXNvg¼ðøÆ µÄ^¦ÄN®µA»ÌVFªt@CðJ¢ÄAesðÀs·éBVF ÖÌêÆä×éÆAesðÀs·éÈO̪ÍsKvÈI[o[wbh É·¬È¢Bv 4. XtermÌ^Cgo[Ìì \¦³êÈ¢GXP[vV[PXÍvvgÉ»¡[¢øÊðà½ç·½ ßÉp¢çêÜ·B±Ìæ¤ÈGXP[vV[PXðp¢éÉÍA\[ Æ \] ÅÍñÅâèABashªvvgÌ嫳ð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 ̾¯»Ìvvgðg¤æ¤ÉµÜ·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ÏTERMðv vgðo·xÉ`FbN·éKvÍ èܹñBp±sÌµéµ (obNX bV )ðvvgÌè`ÌÅgÁÄ¢éÌÍA¡sÉܽªéæ¤ ÉµÄAÇÝÕ³ðµAC³µ½èAfobO·éÌðeÕɵĢܷB ±êðÖÉµÄ éÌÍAãÅྷé Bashprompt pbP[WÌâèûÅ ·B±¤µÈ¯êÎÈçȢƢ¤±ÆÅÍ èܹñªA±ÌâèûÍ¤Ü ¢«Ü·B ȽÌg¤vvgª¡GÉÈÁÄêÎéÙÇ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 ·é±ÆÅ·BàµxtermÈç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µÄ¢È¢@BðgÁ½Æ«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ÌãÉ^Cvµ½¶àvvgƯ¶FÉÈÁ ĵܤ±ÆÅ·BܽA±Ìu[ÍâÌÅAbold R[hàgÝí¹ Ü·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)-- ÇñÈFªg¦éÌ©ðv¢o·½ßÉAÌXNvgÍ·×ÄÌFðXN [ÉGR[µÜ·B ______________________________________________________________________ #!/bin/bash # # ±Ìt@CÍAlXÈJ[R[hð[ÉGR[µAÇñÈFª # gpÂ\©ð¦µÜ·B # »ê¼êÌsÅÍAÆOCÌwiÌãÉêÂÌFð¦µAR[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[\ÌÊuðL¯·éB \033[s - L¯µÄ¢½J[\ÌÊuÉß·B \033[u ÅãÌñÂÌR[hͽÌ[G~ [^ÅÀ»³êĢܹñBÌ mÁÄ¢éÀèÅÍAxterm Æ nxterm ÅÍÀ»³êĢܷB½Ì[G ~ [^ª xterm ÌR[hÉîâĢéÉà©©íç¸BªmFµ½ ÀèArxvtAkvtA xitermAEterm ÍT|[gµÄ¢Ü¹ñBR\[ÅÍ T|[g³êĢܷB ÌR[hðvvgÉ¢êÄÝĺ³¢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ÅÍ èܹñB½ªN±ÁÄ¢é©ðÍÁ«è³¹é½ßÉ 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[ÌEãÉ24Ô§ ̪\¦³êÜ·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 ȽªÇñÈtHgðgÁÄ¢éÌ©ð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 ÅȶÝÉÈÁ½)rüâlp̶ÍA 8i260©ç337É èÜ·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ð\¦µÜ·BàµA2ÔÚÌãÀÌ" 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·é ÆA»Ì8i@ÅÌ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 É¢êé±ÆÉæè)OCVFâTu VFÅg¤±ÆðÂ\ɵÄêÜ·B½Ìe[}Íg£ VGA ¶Zb gðgÁĢܷÌÅA(½ÌVXeÅÍftHgÉÍÈÁĢܹñ ª) VGA tHgÅȢƤÜ\¦³êܹñB 7.2. Xterm ÌtHgðϦé Bash Prompt pbP[Ẉ̽ÍIÈvvgðg¤ÉÍAvvg ªzèµÄ¢é¶ZbgÉε½tHgðCXg[·é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} hðÀsµÜ·BÉ xset fp rehash ðÀsµÜ·B¯¶fBNgÉ é fonts.alias t@Cð©ÄAtHgÌʼðZè`·éÌࢢŠµå¤B Vµ¢tHgðg¤ÉÍKØÉ Xterm ðN®·éKvª èÜ·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[Wðg¤ÌÉ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@Cª»fBNgÉ éÆ µÄ)B±êÍ\èÔª©©èÜ·B«Éà eliteÖªÛ¶³êĵ ÜÁĢܷªA±êÍunset eliteÅðú·é±ÆªÅ«Ü·BVFXN vgÅ·é̪¢¢Æv¤Åµå¤ªA±±Åͤܢ«Ü¹ñBX NvgÅÍ»ÝÌ«ðϦé±ÆªÅ«È¢©çÅ·BXNvgÌ®¢ Ä¢éTuVFÌ«ðϦ龯ŷBXNvgªI¹·éÆATu VFàI¹µAXNvgÉæÁÄÏ»µ½Â«Í¸íêÜ·B»ÝÌVF Ì«ÏðϦéÉÍA«Öðp¢éKvª èÜ·B bashprompt pbP[WÅÍAcallbashprompt Æ¢¤ÖªÂ«ÉÄÑÜêÜ·B±ê É¢ÄÌhL gÍ èܹñªA±ÌÖðg¤Æ»ÌêÅ bashprompt Ìe[}ð[h·é±ÆªÅ«Ü·BCXg[³ê½e[ }fBNgÉTµÉ¢«Ü·ÌÅA Ƚªg¢½¢e[}t@Cͱ ÌfBNgÉ¢êĨ©È¯êÎÈèܹñB¢ÅAÖðð͵AÀ sµAððúµÜ·B«ÌæÍÓçñÅ¢«Ü¹ñB callbashprompt ͱÌæ¤ÈgíêûðzèµÄ¢Ü¹ñµAG[`Fb NàsȢܹñªA»Ì±Æ¾¯o¦Ä¨¯Î¤Ü¢«Ü·B 9. ®IÉvvgÌFðϦé 9.1. Ǥ·êÎÂ\© ±êÍ£ÍIÈvvgÆ¢¤æèÍA®IÉvvgðϦéÉͱ¤ ·êÎÂ\Å éÆ¢¤á¦Å·B±ÌáÅÍAzXg¼ªVXe×É ¶Ä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") # bcÌscaleÍAæZÉÍ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[WªCXg[³êÄ¢éÈçA±êÍe[} t@CÉÈèÜ·BàµCXg[µÄ¢È¢ÈçAsource hostloadcolour ɱ¢ÄAhostloadcolourƵܷBÇ¿çɵÄà prompt_command ª ȽÌ«ÌÖÉÈèÜ·BR[hðÝéÆA F($COLOUR_HIGHÆ$COLOUR_LOW) ÍFR[hÌêÂÜ è"\[\033[1;34m\]"(±¤µ½©Á½ÌÅ·ª)ÅÍÈ "1;34"Åè`³êÄ ¢é±ÆÉCÃŵå¤B®SÈFR[hðg¢½©Á½ÌÅ·ª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. Bashprompt©çelite VGA tHgªKvÅ·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- ðÆéKvª éB # - $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 ÍA1ªA5ªA15ªÌ½Ï×ð¦·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©çÈévvgÌ1sÚª[ÌÉÈéæ¤É # ·é±ÆÅ·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} # vvgðvZ 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È(àÁÆà𠧽Ȣ) àÌÅ·B½ÌX[G~ [^ÍAJ[\ÊuÌL¯Æ ðÀ»µÄ¢Ü¹ñÌÅAðEãÉu½ßÉJ[\ð[Ìźs ÉÅèµÄ¢Ü·B±ÌvvgÍAãÌ[ÌvvgÌACfBA ðgÁĨèAæÊÌE[Évvg©ç\¦ÌƱëÜżüðø¢ ĢܷBVGA tHgªKvÅ·B Ó: ±±ÅÍÏÈu·ªgíêĢܷÌÅASGML ©ç¼ÌtH[}bg ÉϦ½É«¿ñÆ\¦³êÈ¢©àµêܹñB\304̶ðu··éK vª èܵ½BÊíÍ"\304"Å¢¢ÌÅ·ªA±±ÅͱÌæ¤Èu·ð· é±ÆªKvŵ½B ______________________________________________________________________ #!/bin/bash # ±ÌvvgÍ VGA tHgðKvÆ·é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 ©çØèæêÎ梩)ð # vZ·éB 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>