´ÙÀ½ ÀÌÀü Â÷·Ê

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

´ÙÀ½ ÀÌÀü Â÷·Ê