2. C Shell ȯ°æ ¹× »ç¿ë ¹æ¹ý

ShellÀº ¿î¿µÃ¼Á¦¿Í »ç¿ëÀÚ°£ÀÇ Áß°è ¿ªÇÒÀ» ´ã´çÇÑ´Ù. ShellÀÇ »ç¿ëÀÚ¿Í ¿î¿µÃ¼Á¦ »çÀÌ´Â ´ëÈ­½Ä »ç¿ë¹æ¹ý°ú Shell Program½Ä »ç¿ë ¹æ¹ýÀÌ ÀÖ´Ù.

¡¡¿©±â¼­´Â C ShellÀÇ ´ëÈ­½Ä »ç¿ëÀ» À§ÇÑ »ç¿ëÀÚÀÇ (1) ȯ°æ¼³Á¤ ÆÄÀϵé°ú (2) ´ëÈ­½Ä »ç¿ë ¹æ¹ýµé¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.

 

2.1 »ç¿ëÀÚÀÇ È¯°æ ¼³Á¤

  °¢ Shell ¸¶´Ù »ç¿ëÀÚÀÇ È¯°æ ¼³Á¤À» À§ÇÑ È¯°æ ÆÄÀÏÀÌ ÀÖ´Ù. ShellµéÀº »ç¿ëÀÚ°¡ °¢ ShellÀÌ »ç¿ëÇϴ ȯ°æÆÄÀÏÀ» ¼öÁ¤ÇÏ¿© ÀÚ½ÅÀÌ ¿øÇÏ´Â ÀÛ¾÷ ȯ°æÀ» ¸¸µé ¼ö ÀÖµµ·Ï Áö¿øÇÑ´Ù.

  Csh¿¡¼­´Â »ç¿ëÀÚÀÇ È¯°æ¼³Á¤À» À§ÇØ ´ÙÀ½ÀÇ 3 °³ÀÇ ÆÄÀÏÀ» »ç¿ëÇϸç, kshÀÇ °æ¿ì´Â .profileÀ» »ç¿ëÇÑ´Ù. (ȯ°æ ÆÄÀÏ¿¡ ´ëÇÑ ¼³¸íÀº UNIX IÀ» ÂüÁ¶Çϱ⠹ٶõ´Ù.)

 

2.1.1 .cshrc (c-shell run commands)

  C-shellÀ» »ç¿ëÇÒ ¶§ Ç×»ó »ç¿ëµÇ´Â ¸í·É, º¯¼ö, alias µîÀ» ±â·ÏÇÑ´Ù. CshÀº ÇϳªÀÇ shellÀÌ ¿­¸± ¶§(window open) ¸¶´Ù ~/.cshrc¸¦ ÀÐ¾î »ç¿ëÀÚÀÇ È¯°æÀ» ¼³Á¤ÇÑ´Ù. »ç¿ëÀÚ°¡ À©µµ¿ì ȯ°æ (X-Window)¿¡¼­ ÀÛ¾÷À» ÇÏ¸é °¢ À©µµ¿ì°¡ ¿­¸± ¶§ ¸¶´Ù Shell ȯ°æÀÌ ¼³Á¤µÈ´Ù. ÀÌ¹Ì OpenµÈ À©µµ¿ì shell¿¡ º¯°æµÈ .cshrcÀÇ È¯°æÀ» »ç¿ëÇÏ·Á¸é source ~/.cshrc¸¦ ½ÇÇàÇÏ¸é µÈ´Ù.

 

2.1.2 .login

  Ã³À½ system¿¡ loginÇÒ ¶§ login shell¿¡¼­ ÇÑ ¹ø¸¸ Àд´Ù. Å͹̳Π¼³Á¤°ú ȯ°æ º¯¼ö ¼³Á¤ µîÀ» ±â·ÏÇÑ´Ù. login ÇÒ ¶§¸¶´Ù ±âº»ÀûÀÎ ÀÏÀ» ½ÇÇàÇÏ´Â °ÍÀ» ±â·ÏÇÑ´Ù.

 

2.1.3 .logout

  »ç¿ëÀÚ°¡ logoutÀ» ÇÒ ¶§ ½ÇÇàµÉ ¸í·ÉÀ» ±â·ÏÇÑ´Ù.

 

2.2 ´ëÈ­½Ä »ç¿ë

  ´ëÈ­½Ä »ç¿ë ¹æ¹ý¿¡¼­´Â ¿©·¯ °¡Áö ¸í·ÉÀÔ·Â ¹æ¹ý°ú ¸í·ÉÀÔ·ÂÀ» ´ÜÃàÇÏ´Â ¹æ¹ý, ½ÇÇàÇÒ(ÇÑ) ¸í·ÉÀÇ ½ÇÇà¸ðµå¸¦ º¯°æÇÏ´Â Job Control, ±×¸®°í C ShellÀ» º¸´Ù Æí¸®ÇÏ°Ô »ç¿ëÅä·Ï ÇØÁÖ´Â History¿Í Alias ±â´É¿¡ ´ëÇØ ¼³¸íÇÑ´Ù.

 

2.2.1 ¸í·É ÀÔ·Â (Issuing commands)

(1) Single command

  ¿ì¸®°¡ °¡Àå ÈçÈ÷ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ´Ù. ½Ã½ºÅÛÀÇ ¸í·É¾î ÀÔ·Â ¶óÀο¡ ½ÇÇàÇϰíÀÚ ÇÏ´Â ¸í·É¾î¸¦ ÀÔ·ÂÇÑ´Ù. À̶§ ÀÌ ¸í·É¾î´Â ȯ°æ ÆÄÀÏ(CshÀÇ °æ¿ì ~/.cshrc)ÀÇ °æ·Î¸í¿¡ Æ÷ÇÔµÈ ¸í·É¾îÀ̰ųª ÆÐ½º(PATH)¸¦ Æ÷ÇÔÇÑ ¸í·É¾îÀÌ´Ù.

 

(2) Multiple command

  ÇÑ ¸í·É¾î ¶óÀο¡ ¿©·¯ °³ÀÇ ¸í·É¾î¸¦ µ¿½Ã¿¡ ÀÔ·ÂÇÏ´Â °ÍÀ¸·Î ¸í·É¾î¿Í ¸í·É¾î »çÀÌ´Â ¼¼¹ÌÄÝ·Ð(;)À¸·Î ±¸ºÐÇÑ´Ù.

 

(3) Command group

  ÇÑ ¸í·É¾î ¶óÀο¡ ¿©·¯ °³ÀÇ ¸í·É¾î¸¦ µ¿½Ã¿¡ ÀÔ·ÂÇÏ´Â °ÍÀº Mutiple command¿Í °°À¸³ª ¸í·É¾îÀÇ ±ºÀ» °ýÈ£·Î ½Î¼­ ½ÇÇàÇÑ´Ù. Command groupÀ¸·Î ½ÇÇàÀ» Çϸé ÇöÀçÀÇ »ç¿ëÀÚ Interface ShellÀº ÀÚ½ÅÀ» º¹Á¦ÇÑ Sub ShellÀ» ¸¸µé¾î ÀÌ Shell¿¡¼­ ÀÌ ¸í·É¾î ±ºÀ» ½ÇÇàÇÑ´Ù.

 

(4) Command pipe

  UNIX ½Ã½ºÅÛÀ» »ç¿ëÇϸ鼭 °¡Àå ¸¹ÀÌ Á¢ÇÏ´Â ¸í·É¾î ÀÔ·Â ¹æ¹ýÀ¸·Î ¾Õ ¸í·ÉÀÇ ½ÇÇà°á°ú¸¦ ´ÙÀ½ ¸í·É¾îÀÇ ÀÔ·ÂÀ¸·Î »ç¿ëÇÑ´Ù.

 

(5) Conditional command

  ¾Õ ¸í·ÉÀÇ ½ÇÇà °á°ú¿¡ µû¶ó µÚ¿¡ ¿À´Â ¸í·É¾î¸¦ ½ÇÇàÇÑ´Ù. ¾Õ ¸í·ÉÀÇ ½ÇÇà °á°ú°¡ ¼º°ø ½Ã µÚÀÇ ¸í·ÉÀ» ½ÇÇà ½Ã´Â &&, ½ÇÆÐ ½Ã µÚÀÇ ¸í·ÉÀ» ½ÇÇà ½Ã´Â || ¸¦ »ç¿ëÇÑ´Ù.

 

2.2.2 ¸í·É ´ÜÃà (Command shorthand)

(1) ÆÄÀÏ À̸§ È®Àå (file name expansion)

  UNIX¿¡¼­´Â ¿©·¯ °¡Áö ±âÈ£¹®ÀÚ¸¦ »ç¿ëÇÏ¿© ¹®ÀÚ³ª ¹®ÀÚµéÀ» ´ë½ÅÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½°ú °°Àº wildcard ¹®ÀÚ¸¦ ÀÌ¿ëÇÏ¿© ÆÄÀÏ À̸§À» È®ÀåÇÒ ¼ö ÀÖ´Ù.

 

 

(2) ¸í·É ġȯ (command substitution)

  ÇϳªÀÇ ¸í·É °á°ú¸¦ ´Ù¸¥ ¸í·ÉÀÇ ÀϺκÐÀ¸·Î »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÏ´Â °ÍÀ¸·Î ¸í·É ġȯÀ» ÇϰíÀÚ ÇÏ´Â ºÎºÐÀº ÀÎ¿ë ºÎÈ£ " ` " ·Î ¹­¾î¾ß ÇÑ´Ù. C shellÀº ¿ª ÀÎ¿ë ºÎÈ£ ¾È¿¡ ÀÖ´Â ºÎºÐÀ» ¸í·É¾î ±× ÀÚü·Î ÀνÄÇÑ´Ù.

 

2.2.3 Job Control

  ÇÑ °³ÀÇ ¸í·É ÁÙ ³»¿¡ ±â¼úµÈ ÀÏ·ÃÀÇ ¸í·Éµé·Î ±¸¼ºµÇ¸ç, ÇϳªÀÇ job¿¡´Â ½ÇÇà ÇÁ·Î±×·¥À¸·Î ±¸¼ºµÈ ÇÁ·Î¼¼½º°¡ ¸î °³ ÀÖÀ» ¼ö ÀÖ´Ù. JobÀ» ±¸¼ºÇÏ´Â °¢°¢ÀÇ ÇÁ·Î¼¼½º´Â À¯ÀÏÇÑ ÇÁ·Î¼¼½ºID(PID)¸¦ °®´Â´Ù.

 

(1) Foreground Job (fg)

  »ç¿ëÀÚ°¡ ¸í·ÉÀ» ÀÔ·ÂÇÏ¸é ±× ¸í·ÉÀÌ ³¡³¯ ¶§ ±îÁö Å͹̳ÎÀ» ´Ù¸¥ ¿ëµµ·Î »ç¿ëÇÒ ¼ö ¾ø°í, ÇöÀç ½ÇÇà ÁßÀÎ ¸í·ÉÀÌ Å͹̳ÎÀ» ÅëÇØ »ç¿ëÀÚ¿Í Á¤º¸¸¦ Á÷Á¢ ±³È¯ÇÑ´Ù.

°¡Àå ÀüÇüÀûÀÎ º¸±â´Â vi ÆíÁý±âÀÌ´Ù.

 

(2) Background Job (bg)

  »ç¿ëÀÚ°¡ ¸í·ÉÀ» ÀÔ·ÂÇÑ ÈÄ¿¡ ±× ¸í·ÉÀÌ ³¡³ª±â Àü¿¡ Å͹̳ÎÀ» ´Ù¸¥ ÀÏ¿¡ ¾µ ¼ö ÀÖ´Ù. »ç¿ëÀÚ°¡ óÀ½ ½ÇÇàÇÒ ¶§ background jobÀ¸·Î ½ÇÇàÇÏ·Á¸é ¸í·É¾î ¸Ç µÚ¿¡ "&"¸¦ ºÙÀδÙ.

 

(3) Job change

  Æ¯Á¤ jobÀÇ ½ÇÇà ¹æ¹ýÀ» ½ÇÇà Áß¿¡µµ º¯°æÇÒ ¼ö°¡ ÀÖ´Ù. Áï fg jobÀ» bg jobÀ¸·Î, bg jobÀ» fg jobÀ¸·Î º¯°æÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ Æ¯Á¤ jobÀÇ ½ÇÇàÀ» Àá½Ã ¸ØÃß°Ô ÇÒ ¼ö ÀÖ´Ù.

  command &       : ¸í·ÉÀ» background·Î ½ÇÇàÇÑ´Ù.
  jobs            : background job number¿Í status¸¦ Ç¥½ÃÇÑ´Ù.
  nohup command & : logout ÈÄ¿¡µµ ¸í·ÉÀÌ ½ÇÇàÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.

 

2.2.4 History

  ÀÌÀü¿¡ »ç¿ëÇß´ø ¸í·ÉÀ» ´Ù½Ã ÀÔ·ÂÇÏÁö ¾Ê°í ÀçÀÔ·Â Çϵµ·Ï ÇØ ÁÖ´Â ±â´ÉÀ¸·Î Àü¿¡ ÀÔ·ÂÇÑ ¸í·ÉÀ» ¹øÈ£³ª ½ÃÀÛÇÏ´Â ¹®ÀÚ·Î ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ ¹Ù·Î Á÷Àü¿¡ ÀÔ·ÂÇÑ ¸í·ÉÀÇ ÀϺθ¦ ġȯÇÏ¿© ÀçÀÔ·ÂÇÒ ¼öµµ ÀÖ´Ù.

  HistoryÀÇ ±â´ÉÀº ¿¹¾àµÈshell º¯¼öÀÎ ¡°history¡±¿¡ shellÀÌ ±â¾ïÇØ¾ß ÇÒ ¸í·ÉÀÇ °³ ¼ö¸¦ ÁöÁ¤Çϸé shellÀº ÀÌ °³ ¼ö¸¸Å­ »ç¿ëÀÚ°¡ ÀÔ·ÂÇÑ ¸í·ÉÀ» º°µµÀÇ ±â¾ïÀå¼Ò¿¡ ÀúÀåÀ» Çϰí ÀÖ´Ù°¡ history°¡ ÂüÁ¶µÇ¸é ÀÌ ¸í·ÉÀ» ½ÇÇàÇÑ´Ù.

  Æ¯È÷ C ShellÀº À©µµ¿ì º°·Î º°µµÀÇ È¯°æÀ» °ü¸®ÇÑ´Ù. Áï historyµµ À©µµ¿ì ¸¶´Ù º°µµ·Î °ü¸®ÇÑ´Ù.

  HistoryÀÇ ¼³Á¤Àº .cshrc ÆÄÀÏÀ̳ª ¸í·É¾î ¶óÀο¡¼­ ´ÙÀ½°ú °°ÀÌ ¼³Á¤ÇÑ´Ù.

    set history = 30    (30°³ÀÇ history°¡ ÀúÀåµÈ´Ù.)

  History¿¡ »ç¿ëµÇ´Â ¸í·ÉÀº ´ÙÀ½°ú °°´Ù.

 

2.2.5 Alias

  ÇϳªÀÇ ¸í·É ¶Ç´Â ¸í·ÉÀÇ ÁýÇÕ¿¡ ºÙ¿© ÁÖ´Â ¾î¶² À̸§À» alias¶ó ÇÑ´Ù. ÀÚÁÖ »ç¿ëµÇ´Â º¹ÀâÇÑ ¸í·ÉÀ» alias¸¦ »ç¿ëÇÏ¿© ´ÜÃà ¸í·É¾î·Î ¸¸µé¾î µÑ ¼ö ÀÖÀ¸¹Ç·Î alias ±â´ÉÀ» Àß ÀÌ¿ëÇϸé UNIX ½Ã½ºÅÛÀ» Æí¸®ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.

  AliasÀÇ Á¤ÀǴ ȯ°æ ÆÄÀÏÀÎ ~/.cshrc ÆÄÀÏ¿¡ Á¤ÀǸ¦ Çϰųª ¸í·É¾î ¶óÀο¡¼­ Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. C ShellÀº â(Shell)ÀÌ ¸¸µé¾î Áú ¶§ ¸¶´Ù ȯ°æ ÆÄÀÏÀÎ ~/.cshrc ¸¦ Àоî ȯ°æÀ» ¼³Á¤ÇϹǷΠ~/.cshrc¿¡ Á¤ÀÇµÈ ³»¿ëÀº µµµç â¿¡ ¿µÇâÀ» ¹ÌÄ£´Ù.(xterm, dtterm, hantermµîÀÇ ¸í·É¿¡ ÀÇÇØ âÀÌ ¸¸µé¾î Áø´Ù.) ±×¸®°í ÀÎÀÚ(argument) ¾øÀÌ alias ¸í·ÉÀ» ÀÔ·ÂÇϸé ÇöÀç Á¤ÀÇµÈ ¸ðµç alias À̸§°ú ±× Á¤Àǰ¡ listµÈ´Ù.

ÁÖ) aliasµÈ ¸í·É¾î¸¦ ¸í·É¾î ÀÔ·Â ¶óÀο¡¼­ Àá½Ã ±× ±â´ÉÀ» Á¤Áö½ÃŰ·Á¸é ¸í·É¾î ¾Õ¿¡ ¿ª ½½·¡½¬(\)¸¦ ÀÔ·ÂÈÄ ¸í·É¾î¸¦ ÀÔ·Â(\rm -r file_name)ÇÏ¸é µÈ´Ù.

 

2.3 ÇÁ·Î±×·¥ ¾ð¾î

  C shellÀº ¾Õ¿¡¼­ ¾ð±ÞÇÑ ´ëÈ­½Ä ¸í·É ÇØ¼®±âÀÇ ¿ªÇÒ »Ó¸¸ ¾Æ´Ï¶ó °­·ÂÇÑ ÇÁ·Î±×·¡¹Ö ¾ð¾î·Î »ç¿ëµÉ ¼ö ÀÖ´Ù. C shellÀÇ ÇÁ·Î±×·¥ Á¦¾î ±¸Á¶´Â C-language¸¦ ¸¹ÀÌ ´à¾Æ, C shellÀ̶ó°í ºÎ¸£´Âµ¥. C¾ð¾î¿Í À¯»çÇÑ ±â´ÉÀ» Á¦°øÇÑ´Ù. ÀÌ·± ÇÁ·Î±×·¡¹Ö ¾ð¾î ±â´ÉÀ» »ç¿ëÇÏ¿©, C shell program(script)À» ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù.

  C shellÀº ÇÁ·Î±×·¥ ¾ð¾î·Î¼­ ´ÙÀ½ÀÇ ±â´ÉÀ» Á¦°øÇÑ´Ù.