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

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 °¡ À§Ä¡ÇÏ´Â ÀÌÀü ½Ã½ºÅÛÀ¸·Î ºÎÅÍÀÇ Á¤º¸¸¦ °è¼ÓÇؼ­ º¸¿© ÁÙ °ÍÀÔ´Ï´Ù.


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