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

3. bash¸¦ ¸¸³ªÀÚ

Èñ¼Ò½Ä : ¸®´ª½º¿¡¼­´Â bash ½©ÀÌ ÇÊ¿äÇÑ °ÍÀ» ¾Ë¾Æ¼­ ŸÀÌÇÁ ÇØÁÖ°í ¸ÚÁø ¶óÀÎ ¿¡µðÆà ±â´ÉµéÀÌ Àֱ⠶§¹®¿¡ ŸÀÌÇÎÀÌ Àû¾îÁø´Ù. ¿ì¼±, È­»ìÇ¥¸¦ »ç¿ëÇϸé ÀÌÀüÀÇ ¸í·ÉÇàÀ» ºÒ·¯¿Â´Ù; ÇÏÁö¸¸ ±× ÀÌ»óÀÇ ±â´Éµµ ÀÖ´Ù. <TAB> Å°¸¦ ´©¸£¸é ÆÄÀÏ À̸§°ú µð·ºÅ丮 À̸§À» ¿Ï¼º½ÃÄÑÁØ´Ù. ±×·¡¼­ ´ÙÀ½°ú °°ÀÌ Å¸ÀÌÇÎÇϸé

        $ ls /uTABloTABbTAB       

¾Æ·¡Ã³·³ ŸÀÌÇÎ ÇÏ´Â °ÍÀÌ µÈ´Ù.

        $ ls /usr/local/bin       

¸¸¾à °°Àº ¾ËÆĺªÀ¸·Î ½ÃÀÛÇÏ´Â ÆÄÀÏÀ̳ª µð·ºÅ丮°¡ ¿©·µ ÀÖÀ¸¸é

    $ ls /uTABloTABiTAB    
¶ó°í ÀÔ·ÂÇϸé bash´Â /usr/local/info¸¦ ÀǹÌÇÏ´ÂÁö /usr/local/include¸¦ ÀǹÌÇÏ´ÂÁö ¸ð¸£±â ¶§¹®¿¡ ¸ØÃá´Ù. ±×·² ¶§´Â ±× ´ÙÀ½ ±ÛÀÚ¸¦ Ä¡°í <TAB>À» ´©¸£¸éµÈ´Ù. ¶Ç ´Ù¸¥ Æí¸®ÇÑ Å° ´©¸£±â·Î <ESC-BACKSPACE>°¡ ÀÖ´Ù. ÀÌ°ÍÀº ¿ÞÂÊ¿¡ ÀÖ´Â ´Ü¾î¸¦ Åë°·Î Áö¿î´Ù. ¹Ý¸é¿¡ <ESC-D>¸¦ ´©¸£¸é ¿À¸¥ÂÊ¿¡ ÀÖ´Â ´Ü¾î¸¦ Áö¿î´Ù. <ESC-F>´Â Ä¿¼­¸¦ ¿À¸¥ÂÊÀ¸·Î ÇÑ ´Ü¾î¸¸Å­ °Ç³Ê ¶Ù°Ô ÇÏ°í <ESC-B>´Â ¿ÞÂÊÀ¸·Î ÇÑ ´Ü¾î ¸¸Å­ °Ç³Ê ¶Ù°Ô ÇÑ´Ù. <ALT>Å°´Â <ESC> Å°¿Í µ¿ÀÏÇÏ°Ô ÀÛµ¿ÇÑ´Ù. Áö±ÝÀ¸·Î¼± ÀÌ Á¤µµ¸é ÃæºÐÇÏ´Ù. ÀÏ´Ü ÀÌ ´ÜÃàÅ°µé¿¡ Àͼ÷ÇØÁö¸é DOS ÇÁ¶÷ÇÁÆ®°¡ ¾ÆÁÖ ºÒÆíÇÏ°Ô ´À²¸Áú °ÍÀÌ´Ù.

3.1 ÆÄÀÏ°ú ÇÁ·Î±×·¥

3.2 ÆÄÀÏ : »çÀü Áö½Ä

¸®´ª½ºÀÇ ÆÄÀÏ°ú µð·ºÅ丮 ±¸Á¶´Â DOSWinÀÇ ±¸Á¶¿Í ¸Å¿ì ºñ½ÁÇÏ´Ù. ÆÄÀϵéÀº ÀÏÁ¤ÇÑ ±ÔÄ¢¿¡ µû¸£´Â ÆÄÀÏ À̸§À» °®°í ÀÖÀ¸¸ç µð·ºÅ丮 ¼Ó¿¡ ÀúÀåµÂ°í, ÀϺδ ½ÇÇà °¡´ÉÇÏ¸ç ½ÇÇà °¡´ÉÇÑ ÆÄÀϵéÀº ´ëºÎºÐ ¸í·É ½ºÀ§Ä¡¸¦ °®°í ÀÖ´Ù. ¶ÇÇÑ ¿ÍÀϵåÄ«µå ¹®ÀÚ, ¸®´ÙÀÌ·º¼Ç, ÆÄÀÌÇÎÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù.

Â÷ÀÌÁ¡Àº ¾ÆÁÖ ÀûÀºµ¥ ´ÙÀ½°ú °°´Ù:

3.3 Symbolic Links

À¯´Ð½º´Â DOS¿¡´Â ¾ø´Â ÆÄÀÏ Á¾·ù°¡ ÀÖ´Ù: ¹Ù·Î Symbolic Link´Ù. ÀÌ°ÍÀº ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ °¡¸®Å°´Â Æ÷ÀÎÅÍ·Î »ý°¢ÇÒ ¼ö Àִµ¥ ±×°ÍÀÌ °¡¸®Å°´Â ÆÄÀÏÀ̳ª µð·ºÅ丮 ´ë½Å »ç¿ëÇÒ ¼ö ÀÖ´Ù. À©µµ¿ìÀÇ '¹Ù·Î °¡±â'¿Í ºñ½ÁÇÏ´Ù. symbolic linkÀÇ ¿¹·Î /usr/X11R6¸¦ °¡¸®Å°´Â /usr/X11; /dev/ttyS0 ¶Ç´Â /dev/ttyS1 µÑ Áß Çϳª¸¦ °¡¸®Å°´Â /dev/modem µîÀÌ ÀÖ´Ù.

symbolic link ¸¸µé±â:

        $ ln -s <file_or_dir> <linkname>

¿¹:

        $ ln -s /usr/doc/g77/DOC g77manual.txt  

ÀÌ·¸°Ô Çϸé /usr/doc/g77/DOC ´ë½Å g77manual.txt¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¸µÅ©´Â µð·ºÅ丮 ¸®½ºÆÃÀ» ÇÏ¸é ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³­´Ù:

        $ls -F
        g77manual.txt@
        $ ls -l       (several things...)           g77manual.txt -> /usr/doc/g77/DOC

3.4 Permission(permission)°ú ¼ÒÀ¯±Ç

DOS ÆÄÀÏ°ú µð·ºÅ丮µéÀº ´ÙÀ½°ú °°Àº ¼Ó¼ºÀ» °®´Â´Ù. A(¾ÐÃà), H(¼û±è), R(Àбâ Àü¿ë), S(½Ã½ºÅÛ). ¸®´ª½º¿¡¼­´Â À̵é Áß H¿Í R¸¸ Àǹ̸¦ °®´Â´Ù. ¼û±è ÆÄÀÏÀº Á¡À¸·Î ½ÃÀÛÇÏ°í R ¼Ó¼º¿¡ ´ëÇؼ­´Â ´ÙÀ½À» °è¼Ó ÀоÀÚ.

À¯´Ð½º¿¡¼­´Â ÆÄÀÏ¿¡ "Permission(permission)"°ú ¼ÒÀ¯ÀÚ°¡ ÀÖ´Ù. ¼ÒÀ¯ÀÚ´Â ¶Ç "±×·ì"¿¡ ¼ÓÇÑ´Ù. ´ÙÀ½ÀÇ ¿¹Á¦¸¦ º¸¶ó.

       $ ls -l /bin/ls
       -rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*
Á¦ÀÏ Ã³À½ Çʵå´Â /bin/ls ÆÄÀÏÀÇ permissionÀ» ³ªÅ¸³»´Â °ÍÀ¸·Î root°¡ ¼ÒÀ¯Çϸç binÀ̶õ ±×·ì¿¡ ¼ÓÇÑ´Ù. ´Ù¸¥ Á¤º¸´Â Â÷Ä¡ÇÏ°í -rwxr-xr-x °¡ ¿ÞÂÊ¿¡¼­ ¿À¸¥ÂÊ ¹æÇâÀ¸·Î ¹«¾ùÀ» ÀǹÌÇÏ´ÂÁö ±â¾ïÇصÎÀÚ:

- ´Â ÆÄÀÏ Á¾·ùÀÇ ÀÏÁ¾ÀÌ´Ù. (- = º¸Åë ÆÄÀÏ, d = µð·ºÅ丮, l = ¸µÅ© µî) rwx´Â ÆÄÀÏ ¼ÒÀ¯ÀÚ°¡ °®´Â permissionÀ¸·Î Àбâ, ¾²±â, ½ÇÇà À» ³ªÅ¸³½´Ù. r-x´Â ÆÄÀÏ ¼ÒÀ¯ÀÚ°¡ ¼ÓÇÑ ±×·ì¿¡ ÁÖ¾îÁø PermissionÀ¸·Î Àбâ, ½ÇÇàÀ» ³ªÅ¸³½´Ù. (Ãʺ¸ÀÚ¶ó¸é ±×·ìÀ» »ç¿ëÇÒ ÀÏÀÌ º°·Î ¾øÀ» Å×´Ï ±×·ìÀÇ °³³ä¿¡ ´ëÇؼ­´Â ¼³¸íÇÏÁö ¾Ê°Ú´Ù ;-) r-x´Â ´Ù¸¥ ¸ðµç »ç¿ëÀÚµéÀÌ °®´Â permissionÀ¸·Î Àбâ, ½ÇÇàÀ» ³ªÅ¸³½´Ù.

µð·ºÅ丮ÀÎ /bin ¿¡µµ permissionÀÌ ºÙ¾îÀÖ´Ù: "µð·ºÅ丮¿Í permission" ¼½¼Ç¿¡ Á» ´õ ÀÚ¼¼ÇÑ ¼³¸íÀÌ ÀÖ´Ù. ¹Ù·Î ÀÌ·¯ÇÑ ÀÌÀ¯ ¶§¹®¿¡ ·çÆ®°¡ ¾Æ´Ï°í¼­´Â /bin/ls ¸¦ Áö¿ï ¼ö°¡ ¾ø´Â °ÍÀÌ´Ù: Áï Áö¿ï permissionÀÌ ¾ø´Â °ÍÀÌ´Ù. ÆÄÀÏÀÇ permissionÀ» ¹Ù²Ù·Á¸é ´ÙÀ½°ú °°Àº ¸í·ÉÀ» »ç¿ëÇÑ´Ù.

       $ chmod <whoXperm> <file>        

¿©±â¿¡¼­ who´Â u(»ç¿ëÀÚ, Áï ¼ÒÀ¯ÀÚ), g (±×·ì), o ( ±× ¿Ü), X´Â + ¶Ç´Â -, permÀº r(Àбâ), w(¾²±â), x(½ÇÇà) Áß Çϳª. ´ÙÀ½Àº chmod¸¦ »ç¿ëÇÏ´Â ÀüÇüÀûÀÎ ¿¹´Ù.

     $ chmod +x file
ÀÌ·¸°Ô Çϸé ÇØ´ç ÆÄÀÏÀÇ ½ÇÇà permissionÀÌ ¼³Á¤µÈ´Ù.

     $ chmod go-rw file

ÀÌ·¸°Ô ÇÏ¸é ¼ÒÀ¯ÀÚ ÀÌ¿ÜÀÇ ¸ðµç »ç¿ëÀڷκÎÅÍ Àбâ¿Í ¾²±â permissionÀ» Á¦°ÅÇÑ´Ù.

  $ chmod ugo+rwx file

ÀÌ°ÍÀº ¸ðµç ÀÌ¿¡°Ô Àбâ, ¾²±â, ½ÇÇà permissionÀ» ºÎ¿©ÇÑ´Ù.

       # chmod +s file

ÀÌ°ÍÀº ¼ÒÀ§ "setuid" ¶Ç´Â "suid" ÆÄÀÏ·Î ¼ÒÀ¯ÀÚÀÇ Æ¯±Ç°ú ÇÔ²² ¸ðµç »ç¶÷ÀÌ ½ÇÇà½Ãų ¼ö ÀÖ´Ù. ÀüÇüÀûÀÎ ¿¹·Î ·çÆ® suid ÆÄÀÏÀ» º¼ ¼ö ÀÖ´Ù. ÀÌ ÆÄÀϵéÀº º¸Åë X ¼­¹ö¿Í °°ÀÌ Áß¿äÇÑ ½Ã½ºÅÛ ÆÄÀÏÀÎ °æ¿ì°¡ ¸¹´Ù.

permissionÀ» Áö½ÃÇÏ´Â Á» ´õ °£´ÜÇÑ ¹æ¹ýÀº ¼ýÀڷΠǥÇöÇÏ´Â °ÍÀÌ´Ù. rwxr-xr-x´Â 755·Î Ç¥ÇöÇÒ ¼ö ÀÖ´Ù( ¸ðµç ¹®ÀÚ¿¡ ÇØ´çÇÏ´Â ºñÆ®°¡ ÀÖ´Ù. ----´Â 0ÀÌ°í --x´Â 1, -w-´Â 2, -wx´Â 3...). ¾î·Á¿ö º¸ÀÌÁö¸¸ Á¶±Ý ¿¬½ÀÇÏ¸é °³³äÀ» ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ·çÆ®´Â ¼öÆÛÀ¯Àú·Î ¸ðµç À̵éÀÇ ÆÄÀÏ permissionÀ» ¹Ù²Ü ¼ö ÀÖ´Ù. RMP.

3.5 ÆÄÀÏ : ¸í·É¾î ¹ø¿ª

¿ÞÂÊ¿¡´Â µµ½º ¸í·É; ¿À¸¥ÂÊ¿¡´Â ±×¿¡ ÇØ´çÇÏ´Â ¸®´ª½º ¸í·É¾îÀÌ´Ù.

        ATTRIB:         chmod
        COPY:           cp       
        DEL:            rm       
        MOVE:           mv       
        REN:            mv       
        TYPE:           more, less, cat  

Redirection and plumbing operators:  < > >> |

Wildcards: * ?  

nul:        /dev/null  

prn, lpt1:  /dev/lp0 or /dev/lp1; lpr  

Examples

DOS                                                             Linux  
---------------------------------------------------------------------  
C:\GUIDO>ATTRIB +R FILE.TXT             $ chmod 400 file.txt  
C:\GUIDO>COPY JOE.TXT JOE.DOC                   $ cp joe.txt joe.doc  
C:\GUIDO>COPY *.* TOTAL                                 $ cat * > total  
C:\GUIDO>COPY FRACTALS.DOC PRN                  $ lpr fractals.doc  
C:\GUIDO>DEL TEMP                                       $ rm temp  
C:\GUIDO>DEL *.BAK                                      $ rm *~  
C:\GUIDO>MOVE PAPER.TXT TMP\                    $ mv paper.txt tmp/  
C:\GUIDO>REN PAPER.TXT PAPER.ASC                $ mv paper.txt paper.asc  
C:\GUIDO>PRINT LETTER.TXT                       $ lpr letter.txt  
C:\GUIDO>TYPE LETTER.TXT                        $ more letter.txt  
C:\GUIDO>TYPE LETTER.TXT                        $ less letter.txt  
C:\GUIDO>TYPE LETTER.TXT > NUL                  $ cat letter.txt > /dev/null          
                n/a                                             $ more *.txt *.asc          
                n/a                                             $ cat section*.txt | less

¾Ë¾ÆµÑ Á¡:

3.6 ÇÁ·Î±×·¥ ½ÇÇà: ¸ÖƼ ŽºÅ·°ú ¼¼¼Ç

ÇÁ·Î±×·¥À» ½ÇÇàÇÒ ¶§´Â DOS¿¡¼­¿Í ¸¶Âù°¡Áö·Î ±× ÇÁ·Î±×·¥ÀÇ À̸§À» ÀÔ·ÂÇÏ¸é µÈ´Ù. ¸¸¾à ÇÁ·Î±×·¥ÀÌ ÀúÀåµÇ¾î ÀÖ´Â µð·ºÅ丮("µð·ºÅ丮 »ç¿ë" ÂüÁ¶)°¡ PATH("½Ã½ºÅÛ ÃʱâÈ­ ÆÄÀÏ" ¼½¼Ç ÂüÁ¶)¿¡ ¼ÓÇØÀÖ´Ù¸é ÇÁ·Î±×·¥ÀÌ ½ÇÇàµÉ °ÍÀÌ´Ù.

¿¹¿Ü: DOS¿¡¼­¿Í´Â ´Þ¸® ¸®´ª½º¿¡¼­´Â ÇØ´ç ÇÁ·Î±×·¥ÀÌ ÇöÀç µð·ºÅ丮¿¡ ÀÖ´Ù ÇÏ´õ¶óµµ PATH¿¡ ¼ÓÇØ ÀÖÁö ¾Ê´Â ÇÑ ½ÇÇàµÇÁö ¾Ê´Â´Ù. ¿¡½ºÄ«¸ðŸÁö: ÇÁ·Î±×·¥ÀÌ progÀ̶ó¸é './prog'À̶ó°í ÀÔ·ÂÇÑ´Ù. ÀüÇüÀûÀÎ ¸í·ÉÇàÀº ´ÙÀ½°ú °°Àº ÇüÅ´Ù.

       $ command [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< input] [> output]

¿©±â¿¡¼­ -s1, ..., -snÀº ÇÁ·Î±×·¥ ½ºÀ§Ä¡, par1, ..., parnÀº ÇÁ·Î±×·¥ ¸Å°³º¯¼ö(parameter)´Ù. ÇϳªÀÇ ¸í·ÉÇà¿¡ ¿©·¯ °³ÀÇ ¸í·ÉÀ» ³»¸± ¼ö ÀÖ´Ù.

       $ command1 ; command2 ; ... ; commandn                     

ÀÌ»óÀÌ ÇÁ·Î±×·¥ ½ÇÇà°ú °ü·ÃµÈ ¸ðµç °ÍÀÌ´Ù. ÇÏÁö¸¸ À̺¸´Ù ÇÑ Â÷¿ø ³ô°Ô »ç¿ëÇÏ´Â °Íµµ ¾î·ÆÁö ¾Ê´Ù. ¸®´ª½º¸¦ »ç¿ëÇÏ´Â Áß¿äÇÑ ÀÌÀ¯ Áß Çϳª°¡ ¸ÖƼŽºÅ· OS À̱⠶§¹®ÀÌ´Ù ---Áï ¿©·¯ °³ÀÇ ÇÁ·Î±×·¥(¾ÕÀ¸·Î´Â ÇÁ·Î¼¼½º¶ó°í ºÎ¸§)À» µ¿½Ã¿¡ ½ÇÇàÇÒ ¼ö ÀÖ´Ù. ¿©·¯ °³ÀÇ ÇÁ·Î¼¼½º¸¦ ¹é±×¶ó¿îµå¿¡¼­ ½ÇÇà½ÃÅ°°íµµ ¶Ç °è¼ÓÇؼ­ ´Ù¸¥ ÀÛ¾÷À» ÇÏ°í À־ µÈ´Ù. °Ô´Ù°¡ ¸®´ª½º´Â º¹¼öÀÇ ¼¼¼Çµµ °¡´ÉÇÏ´Ù: ¸¶Ä¡ ¿©·¯ ´ëÀÇ ÄÄÇ»Å͸¦ ÇÑ °÷¿¡ ³õ°í »ç¿ëÇÏ´Â °Í°ú °°´Ù!

3.7 ¸®¸ðÆ® ÄÄÇ»ÅÍ¿¡¼­ ÇÁ·Î±×·¥ ½ÇÇàÇϱâ

remote.machine.edu¶ó´Â ¸®¸ðÆ® ¸Ó½Å(¿ø°Ý ÄÄÇ»ÅÍ)¿¡¼­ ÇÁ·Î±×·¥À» ½ÇÇàÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù:

       $ telnet remote.machine.edu
·Î±×ÀÎÀ» ÇÑ ´ÙÀ½ ¿øÇÏ´Â ÇÁ·Î±×·¥À» ½ÃÀÛÇÏ¸é µÈ´Ù. ¹°·Ð ±× ¸®¸ðÆ® ¸Ó½Å¿¡ ½© ¾îÄ«¿îÆ®°¡ ÀÖ¾î¾ß ÇÑ´Ù. X11À» °®°í ÀÖ´Ù¸é ¸®¸ðÆ® ÄÄÇ»ÅÍ¿¡¼­ X ¾ÖÇø®ÄÉÀ̼ǵµ ½ÇÇà½ÃÄÑ ÀÚ½ÅÀÇ X È­¸é¿¡ ³ªÅ¸³ª°Ô ÇÒ ¼öµµ ÀÖ´Ù. remote.machine.edu´Â ¸®¸ðÆ® X ÄÄÇ»ÅÍ, local.linux.box´Â ÀÚ½ÅÀÌ »ç¿ëÇÏ°í ÀÖ´Â ¸®´ª½º ¸Ó½ÅÀ̶ó°í °¡Á¤ÇÏÀÚ. remote.machine.edu¿¡ Á¸ÀçÇÏ°í ÀÖ´Â X ÇÁ·Î±×·¥À» local.linux.box¿¡¼­ ½ÇÇàÇÏ·Á¸é ´ÙÀ½°ú °°ÀÌ ÇÏ¸é µÈ´Ù.

o X11, xterm ¶Ç´Â ±×¿Í µ¿°ÝÀÎ Å͹̳Π¿¡¹Ä·¹ÀÌÅ͸¦ ½ÇÇàÇÑ ´ÙÀ½ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù:

       $ xhost +remote.machine.edu
       $ telnet remote.machine.eduo      
·Î±×ÀÎÀ» ÇÑ ´ÙÀ½ ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇÑ´Ù.
       remote:$ DISPLAY=local.linux.box:0.0
       remote:$ progname &
(DISPLAY..., ´ë½Å setenv DISPLAY local.linux.box:0.0 À» ÀÔ·ÂÇØ¾ß ÇÒ ¼öµµ ÀÖ´Ù. ÀÌ´Â ¸ðµÎ ¸®¸ðÆ® ½©¿¡ ´Þ·ÁÀÖ´Ù.)

ÀÚ »õ·ÓÁö¾ÊÀº°¡! ÀÌÁ¦ prognameÀº Àº remote.machine.edu¿¡¼­ ½ÃÀÛÇÏ¿© ´ç½ÅÀÇ ÄÄÇ»ÅÍ È­¸é¿¡ ³ªÅ¸³¯ °ÍÀÌ´Ù. ÇÏÁö¸¸ ¸ðµ©Àº ³Ê¹« ´À¸®´Ï ¸ðµ©À» ÅëÇؼ­ ÀÌ °°Àº ÀÛ¾÷À» ÇÏ·Á´Â °ÍÀº ¾µ¸ð°¡ ¾øÀ» °ÍÀÌ´Ù. ¶ÇÇÑ ÀÌ °°Àº ÀÛ¾÷ ¹æ½ÄÀº ºÒ¿ÏÀüÇÏ°í ºÒ¾ÈÁ¤ÇÏ´Ù. sunsite.unc.edu/LDP/HOWTO/mini/Remote-X-Apps ¿¡ ÀÖ´Â ``Remote X Apps mini-HOWTO'' ¸¦ Àо¶ó.


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