À¯´Ð½º ½©.... ¿©±â¼­´Â ½©½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÏ´Â°Ô Á©·ç Å«ÀÏÀÌ µÉ²¨ °°½À´Ï´Ù.. ¿©·¯ ¾ð¾îµé...ƯÈ÷, c °è¿­ÀÇ ¾ð¾î¸¦ ´Ù·ç¾îº¸½Å ºÐ´úÀº ÇÑ°á ¼ö¿ùÇϸ®¶ó »ý°¢µË´Ï´Ù.. ¿ª½¬...½©½ºÅ©¸³Æ®µµ º¯¼ö¼±¾ðÀ» ÇÏ°í..Á¦¾î¹®µµ µ¹¸®°Ô µË´Ï´Ù.. ÀÏ´Ü...ÈÔ¿¡¼­ º¯¼ö¸¦ ¼±¾ðÇÏ´Â ¹æ¹ýÀ» ¾Ë¾Æº¸µµ·Ï ÇÏ°Ú½À´Ï´Ù... ½©½ºÅ©¸³Æ®µµ ½©ÀÇ Á¾·ù¿¡ µû¶ó¼­ Ʋ¸®°Ô µË´Ï´Ù.. ±×·¸´Ù¸é..½©À» ¹Ù²Ù¾î ÁÖ¾î¾ß ÇÒÅÙµ¥... ¿ì¸®°¡ vi ÆíÁý±â »ç¿ë¹ý¿¡ ´ëÇÑ ¸Þ´º¾óÀ» °¡Áö°í ÀÕÀ¸´Ï..±×°ÍÀ» º¸±¸.. Â÷±ÙÂ÷±Ù.../etc/passwd ÆÄÀÏÀ» ¼öÁ¤ÇÏ¿©, ½©À» ¹Ù²ÛÈÄ.. logoutÇß´Ù°¡ ´Ù½Ã loginÇÕ´Ï´Ù.. ¿©±â¼­´Â C shell¸¸À» ´Ù·ç°Ú½À´Ï´Ù... C SehllÀº ¼³°è ¸ñÇ¥°¡ ´ëÇü ½Ã½ºÅÛÀ» ¸ñÇ¥·Î Çϱ⠶§¹®¿¡ ¸í·É¾îÀÇ ¿ë¾î¿Í ¹®¹ýÀû ±¸Á¶°¡ Bourne Shell°ú ´Ù¸£¸ç, C ¾ð¾î¿Í À¯»çÇϱ⠶§¹®¿¡ ÇÁ·Î±×·¡¸ÓÇÑÅ× ÀαⰡ ³ô½À´Ï´Ù... ÇÁ·ÒÇÁÆ® ±¸¹®Àº rootÀÇ °æ¿ì´Â hostname # ÀÌ°í.. ÀÏ¹Ý »ç¿ëÀÚÀÇ °æ¿ì´Â hostname % ÀÔ´Ï´Ù.. ÀÏ´Ü ´Ù¸¥ ½©À» »ç¿ëÇϽô ºÐµéÀº... /etc/skel¿¡¼­ local.cshrc¸¦ Ȩ µð·ºÅ丮·Î .cshrc·Î º¹»çÇÕ´Ï´Ù.. ±×¸®°í..root»ç¿ëÀÚ·Î /etc/passwdÆÄÀÏ¿¡¼­ csh·Î ¹Ù²Ù¾î ÁÝ´Ï´Ù.. Á÷Á¢ ½©À» ¹Ù²Ù¾î º¾½Ã´Ù.. ========================================================================================================================== $ cp /etc/skel/local.cshrc /export/home/yasi/.cshrc $ su Password: # pwd /export/home/yasi # vi .cshrc # @(#)cshrc 1.11 89/11/29 SMI stty erase ^H umask 022 set path=(/bin /usr/bin /usr/ucb /etc .) if ( $?prompt ) then set history=32 endif ~ ~ ~ --ÀúÀåÈÄ ´Ù½Ã ·Î±äÀ» Çϸé hostname % ¶ó°í ½©ÇÁ·ÒÇÁÆ®°¡ ¹Ù²ð °ÍÀÔ´Ï´Ù.. yasicom% ========================================================================================================================== C ShellÀÇ ¸í·É ½ÇÇàÀº csh¸í·ÉÀ» »ç¿ëÇϰųª ÆÄÀÏÀÇ Æ۹̼Ç(½ÇÇà±ÇÇÑ)À» ÀÌ¿ëÇÏ¸é µË´Ï´Ù.. ´ÙÀ½Àº csh¸í·ÉÀÇ ¿É¼ÇÀÔ´Ï´Ù.. -v : ½©½ºÅ©¸³Æ®ÀÇ ³»¿ë°ú ½ÇÇà°á°ú¸¦ µ¿½Ã¿¡ ´Ü¸»±â¿¡ Ç¥ÁØ Ãâ·Â -n : ½©½ºÅ©¸³Æ®¸¦ ½ÇÇàÇÏÁö ¾Ê°í ¹®¹ýÀÇ ¿¡·¯¸¸ °ËÃâÇÏ¿© ´Ü¸»±â¿¡ Ç¥ÁØÃâ·Â ½©½ºÅ©¸³Æ® ½ÇÇàÀÇ ¿¹ÀÔ´Ï´Ù. ========================================================================================================================== yasicom% cat sample echo hellow!!! yasicom% csh -c sample hellow!!! yasicom% chmod 774 sample yasicom% sample hellow!!! yasicom% sh sample hellow!!! yasicom% sh -- º»½©·Î º¯È¯ $ csh -- C ½©·Î º¯È¯ yasicom% ========================================================================================================================== ´ÙÀ½Àº C Shell¿¡¼­ÀÇ º¯¼ö ÇÒ´çÇÏ´Â ¹æ¹ýÀ» º¸°Ú½À´Ï´Ù.. Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.. yasicom% set º¯¼ö¸í = º¯¼ö°ª ¼±¾ðµÈ º¯¼ö´Â Á¸ÀçÇÏ°Ç ¾ÈÇÏ°Ç ¼±¾ðµÈ º¯¼ö°ª´ë·Î °©´Ï´Ù.. ¶ÇÇÑ º¯¼ö¿¡ ¾î¶°ÇÑ °ªµéÀÇ ¸®½ºÆ®¸¦ ¼³Á¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.. ¶ÇÇÑ Ç¥ÁØÀÔ·ÂÀ¸·Î ºÎÅÍ º¯¼ö¸¦ ÀÐÀ»¶ó¸é ´ÙÀ½°ú °°Àº Çü½ÄÀ» ÃëÇÕ´Ï´Ù.. º¯¼ö¸í = $< ========================================================================================================================== yasicom% set var = banana yasicom% echo $var banana yasicom% set var = apple yasicom% echo $var apple yasicom% set fruit = ( apple banana orange ) --¸®½ºÆ® ¼³Á¤ yasicom% echo $fruit apple banana orange yasicom% cat > script.csh --½© ½ºÅ©¸³Æ® ÀÛ¼º echo -n "please enter your login name: " set name = $< echo "your login name is $name" yasicom% csh script.csh -- ½ÇÇà please enter your login name: yasi your login name is yasi ========================================================================================================================== ´ÙÀ½Àº ȯ°æ º¯¼öÀÇ »ý¼º°ú ÇÒ´çÀÔ´Ï´Ù.. Çü½ÄÀº ´ÙÀ½°ú °°½À´Ï´Ù.. setenv º¯¼ö¸í º¯¼ö°ª ========================================================================================================================== yasicom% setenv TERM vt100 yasicom% echo $TERM vt100 ========================================================================================================================== C½©¿¡¼­´Â ¹Ì¸® Á¤ÀǵǾî ÀÖ´Â ÁÖ¿ä Áö¿ª º¯¼ö¿¡ Ãß°¡ ´ÙÀ½°ú °°Àº Áö¿ªº¯¼ö¸¦ Á¤ÀÇÇÏ°í ÀÖ½À´Ï´Ù.. $< : Ç¥ÁØ ÀÔ·ÂÀ» ¹Þ¾ÆµéÀÓ $cwd : ÇöÀç ÀÛ¾÷ µð·ºÅ丮 $history : È÷½ºÅ丮 ¸ñ·ÏÀÇ Å©±â $home : ½© ȨÀÇ µð·ºÅ丮 $ignoreeof : Ctrl+D°¡ ÀÔ·Â µÇ¾úÀ»¶§ ¼¿ÀÇ ·Î±×¾Æ¿ô ¹æÁö $noclobber : Ç¥ÁØ Ãâ·ÂÀ» ÀçÁöÁ¤(>)ÇÒ¶§ ±âÁ¸ÀÇ ÆÄÀÏ¿¡ °ãÃľ²±â ¹æÁö, Á¸ÀçÇÑ ÆÄÀÏÀÌ ÀÖ´Ù´Â ¸Þ¼¼Áö¸¦ º¸¿©ÁØ´Ù. $prompt : ½© ÇÁ·ÒÇÁÆ® $shell : ·Î±×ÀÎ ½© Àý´ë °æ·Î¸í $path : ½ÇÇà°¡´ÉÇÑ ÆÄÀÏÀÇ À§Ä¡¸¦ ÁöÁ¤Çϱâ À§ÇÏ¿© ½©¿¡¼­ »ç¿ë $status : ¸¶Áö¸· ¸í·É¾î Á¾·á ÄÚµå ´ÙÀ½Àº »ê¼ú ¿¬»ê¿¡ ´ëÇؼ­ »ìÆ캸µµ·Ï ÇÏ°Ú½À´Ï´Ù.. ¿ì¼±¼øÀ§ÀÇ ³»¸²Â÷¼øÀ¸·Î ³ª¿­µÈ ´ÙÀ½ÀÇ »ê¼ú ¿¬»êÀÚ¸¦ Áö¿øÇÕ´Ï´Ù.. - : ´ÜÇ×À½¼ö ! : ³í¸®Àû ºÎÁ¤ * : °ö / : ³ª´°¼À % : ³ª¸ÓÁö >= : Å©°Å³ª °°´Ù < : ÀÛ´Ù > : Å©´Ù == : °°´Ù != : °°Áö ¾Ê´Ù + : µ¡¼À - : »¬¼À << : ºñÆ®º° ÁÂÃø À̵¿ >> : ºñÆ®º° ¿ìÃø À̵¿ <= : À۰ųª °°´Ù(ÀÌÇÏ) & : ºñÆ®º° and ^ : ºñÆ®º° xor | : ºñÆ®º° or || : ³í¸®Àû or && : ³í¸®Àû and C ½©¿¡¼­´Â ¿¬»ê °á°ú¸¦ Ç×´çÇϱâ À§Çؼ­ set ¸í·É¾î¸¦ »ç¿ëÇÏÁö ¾Ê°í ´ÙÀ½°ú °°Àº ÇüÅÂÀÇ ³»Àå ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù. @ @ º¯¼ö¸í ¿¬»êÀÚ expression ========================================================================================================================== yasicom% set a = 5 * 3 set: ±¸¹® ¿À·ù yasicom% @ a = 5 * 3 yasicom% echo $a 15 yasicom% set var = 5 yasicom% @ var ++ -- Áõ°¡ ¿¬»êÀÚ(++) À» ½á¼­ º¯¼ö°ªÀ» Áõ°¡½ÃŲ´Ù. yasicom% echo $var 6 yasicom% @ var -- -- °¨¼Ò ¿¬»êÀÚ(--) ¸¦ ½á¼­ º¯¼ö°ªÀ» °¨¼Ò½ÃŲ´Ù. yasicom% echo $var 5 ========================================================================================================================== ÀÌÁ¦ Á¦¾î±¸Á¶¸¦ »ìÆ캸°Ú½À´Ï´Ù.. Á¦¾î±¸Á¶´Â ´Ù¸¥ ¾ð¾î¿¡¼­ÀÇ if, whileµîÀÇ Á¦¾î¹®°ú ±× ¼º°ÝÀÌ ºñ½º¹«¸®ÇÕ´Ï´Ù.. Á÷Á¢...½Ç½ÀÀ¸·Î °¡°Ú½À´Ï´Ù.. ========================================================================================================================== yasicom% vi if1.csh -- if ¹®... set num = $< if ( $num < 10 ) then echo The number is less than 10 endif echo bye ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ :wq yasicom% csh if1.csh enter a number: 6 The number is less than 10 bye yasicom% csh if1.csh enter a number: 11 bye yasicom% cat if2.csh -- ¾Ë¾Æ¼­ ÆÄÀÏÀ» ¸¸µå½Ã±æ...vi ¿¡µðÅͳª cat > if2.csh¸¦ ÀÌ¿ëÇؼ­... echo -n 'enter a number: ' set num = $< if ( $num < 10 ) then echo The number is less than 10 else echo The number is not less than 10 endif echo bye yasicom% csh if2.csh enter a number: 6 The number is less than 10 bye yasicom% csh if2.csh enter a number: 45 The number is not less than 10 bye yasicom% cat > while.csh -- ¿©±âºÎÅÍ´Â while¹®.. set x = 1 while ( $x <= 10 ) echo hellow x is $x @ x = $x + 1 -- Áõ°¡¿¬»êÀÚÀÎ ++ À» ½á¼­ @ x ++·Î ´ëÄ¡°¡´ÉÇÏ´Ù.. end echo bye yasicom% csh while.csh hellow x is 1 hellow x is 2 hellow x is 3 hellow x is 4 hellow x is 5 hellow x is 6 hellow x is 7 hellow x is 8 hellow x is 9 hellow x is 10 bye yasicom% yasicom% cat foreach.csh -- ¿©±âºÎÅÍ´Â foreach ¹®.... foreach x ( 1 2 3 4 5 ) echo -n "2 * $x is " @ x = $x * 2 echo $x end yasicom% csh foreach.csh 2 * 1 is 2 2 * 2 is 4 2 * 3 is 6 2 * 4 is 8 2 * 5 is 10 yasicom% yasicom% repeat 2 echo hellow --repeatÀÇ »ç¿ë... hellow hellow yasicom% yasicom% cat switch.csh echo -n "your choice?: " set ans = $< switch ( $ans ) case "yes" : echo OK. breaksw case "no" : echo no go. breaksw default: echo wait and see breaksw endsw echo bye yasicom% csh switch.csh your choice?: yes OK. bye yasicom% csh switch.csh your choice?: no no go. bye yasicom% yasicom% cat > ex.csh #! /bin/csh foreach file ( * ) if ( ! -d $file && -x $file ) then -- ¿©·¯ ¿ÀÆÛ·£µå°¡ Á¸ÀçÇϴµ¥..ÀÌ°ÍÀº man ÂüÁ¶... ls -l $file endif end yasicom% csh ex.csh -rwxrwxr-- 1 yasi users 15 11¿ù 29ÀÏ 05:03 sample ========================================================================================================================== ÀÌ·¸°Ô C Shell°üÇÑ ºÎºÐÀº ¸¶Ä¨´Ï´Ù.. °¢ ºÎºÐ¸¶´Ù ¾È´Ù·é ºÎºÐµµ ³Ê¹«³ª ¸¹½À´Ï´Ù...Á¦°¡ ¸ð¸£´Â Å¿µµ ÀÖ°í...¾çÀÌ ³Ê¹«µµ ¹æ´ëÇÑ Å¿µµ ÀÖ½À´Ï´Ù.. Àú´Â ¸í½ÃÇØ³í ´ë·Î.....µ¥ÀÌŸº£À̽º¸¦ Çϱâ À§ÇÑ ±âº»ÀûÀÎ OS »ç¿ëÀ» ÇÏ°í ÀÖÀ½À» ÀÎÁöÇØ Áֽñ⠹ٶø´Ï´Ù..