Red hat Linux ʵÑé¼òÒ×½Ì³Ì - 1.1 - ͼÎÄ

Red Hat Linux

¡ªÊµÑé¼òÒ׽̳Ì(1.1²âÊÔ°æ)

»ù´¡Èí¼þ½â¾ö·½°¸ÍŶӳöÆ·

ǰÑÔ

- 1 -

Ŀ¼

µÚÒ»Õ ºìñLinuxϵͳ°²×°Óë¼òµ¥ÅäÖÃ

µÚÒ»½Ú ×¼±¸¹¤×÷¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­4 µÚ¶þ½Ú °²×°Red Hat Linux9¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­.4

µÚ¶þÕ Linux ³£ÓÃÃüÁîÓ÷¨

µÚÒ»½Ú ʵÑéÄ¿µÄ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­19 µÚ¶þ½Ú ʵÑéÄÚÈÝ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­19 µÚÈý½Ú Ö÷Òª²Ù×÷²½Öè¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­19

µÚÈýÕ vi ±à¼­Æ÷ʹÓÃ

µÚÒ»½Ú ʵÑéÄ¿µÄ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­23 µÚ¶þ½Ú ʵÑéÄÚÈÝ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­23 µÚÈý½Ú Ö÷Òª²Ù×÷²½Öè¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­23

µÚËÄÕÂ

µÚÒ»½Ú ʵÑéÄ¿µÄ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­25 µÚ¶þ½Ú ʵÑéÄÚÈÝ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­25 µÚÈý½Ú Ö÷Òª²Ù×÷²½Öè¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­25

µÚÎåÕ µÚÒ»½Ú ʵÑéÄ¿µÄ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­30 µÚ¶þ½Ú ʵÑéÄÚÈÝ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­30 µÚÈý½Ú Ö÷Òª²Ù×÷²½Öè¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­30

- 2 -

µÚÁùÕÂ

µÚÒ»½Ú ʵÑéÄ¿µÄ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­34 µÚ¶þ½Ú ʵÑéÄÚÈÝ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­34 µÚÈý½Ú Ö÷Òª²Ù×÷²½Öè¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­34

µÚÆßÕÂ

µÚÒ»½Ú ʵÑéÄ¿µÄ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­40 µÚ¶þ½Ú ʵÑéÄÚÈÝ¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­40 µÚÈý½Ú Ö÷Òª²Ù×÷²½Öè¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­40

- 3 -

µÚÒ»Õ ºìñLinuxϵͳ°²×°Óë¼òµ¥ÅäÖÃ

RedHat LinuxÊÇĿǰÊÀ½çÉÏʹÓÃ×î¶àµÄLinux²Ù×÷ϵͳ¡£ÒòΪËü¾ß±¸×îºÃµÄͼÐνçÃæ£¬ÎÞÂÛÊǰ²×°¡¢ÅäÖû¹ÊÇʹÓö¼Ê®·Ö·½±ã£¬¶øÇÒÔËÐÐÎȶ¨£¬Òò´Ë²»ÂÛÊÇÐÂÊÖ»¹ÊÇÀÏÍæ¼Ò¶¼¶ÔËüÓÐºÜ¸ßµÄÆÀ¼Û¡£±¾Ñ§ÆÚËùÓÃRedHat Linux9.0°æ±¾ÔÚÔ­Óлù´¡ÉÏÓÖÓÐÁ˺ܴóµÄ½ø²½¡£ËüÍêÉÆÁËͼÐνçÃæ£¬ÔöÇ¿ÁËÓ²¼þµÄ¼æÈÝÐÔ£¬°²×°ÆðÀ´¸ü¼ÓµÃÐÄÓ¦ÊÖ£¬ÓÈÆäÔöÇ¿Á˶àýÌå·½ÃæµÄÄÜÁ¦¡ªÊ¹ÄãÄܹ»ÔÚLinuxϲ¥·Å¶àýÌåÎļþ¡£Ëü»¹²ÉÓÃÁËOpenSSL 128λ¼ÓÃܼ¼Êõ£¬Ê¹ÄãµÄÍøÂçͨПü¼Ó°²È«£»×îеÄÄںˣ»ÌṩÁËUSB½è¿ÚµÄÊó±êºÍ¼üÅ̵ÄÖ§³Ö£»ÌṩÁ˸ü¼ÓÈÝÒ×¹ÜÀíºÍÅäÖõÄͼÐÎ×ÀÃæÒÔ¼°Í¼ÐνçÃæµÄÄں˵÷ÕûºÍ·À»ðǽÅäÖù¤¾ß¡£×ÜÖ®£¬²»ÂÛÄãÊÇÒ»¸öÐÂÊÖ»¹ÊÇÒ»¸öLinuxÀÏÍæ¼Ò£¬²»ÂÛÄãÊǸöÈËʹÓû¹ÊÇÆóÒµÓ÷þÎñÆ÷£¬RedHat Linux9.0¶¼ÊÇÄã×îºÃµÄÑ¡Ôñ¡£

ÔÚÍøÂ粡¶¾ÂþÐеĽñÌ죬´ó¼Ò¶¼¶ÔLinuxÔ½À´Ô½ÇãĽ£¬»¹ÊǾÍÊÇѧǶÈëʽ¿ª·¢µÄÊǾ­³£Óõ½Õâ¸öϵͳµÄ£¬µ«ÊǺܶàÈËÔÚÓ¦ÓÃÇø¡¢Ë®ÇøÌ¸µ½¶¼²»»á°²×°Õâ¸öËùνµÄ³¬¼¶°²È«µÄϵͳ£¬»¹ÊǾÍÊÇÒòΪ°²×°¹ý³ÌÖгöÏÖµÄÕâÑùÄÇÑùµÄÎÊÌ⣬ËùÒÔÕë¶ÔÕâÑùÒ»¸öÇé¿ö£¬ÎÒ¾ÍÕûÀíÁËһϲ¢¼òµ¥µÄÏò´ó¼Ò½éÉÜÒ»ÏÂLinuxµÄ°²×°°É¡£

Ò»¡¢ ×¼±¸¹¤×÷

1¡¢¹ºÂò»òÏÂÔØRedHat9µÄ°²×°¹âÅÌ(3CD)»ò¾µÏñÎļþ¡£

2¡¢ÔÚÓ²ÅÌÖÐÖÁÉÙÁô2¸ö·ÖÇø¸ø°²×°ÏµÍ³Ó㬹ÒÔØµãËùÓ÷ÖÇøÍÆ¼ö4GÒÔÉÏ£¬½»»»·ÖÇø²»ÓÃÌ«´óÔÚ250M×óÓұȽϺÏÊÊ£¬Îļþϵͳ¸ñʽ²»ÂÛ£¬ÒòΪ°²×°¹ý³Ì»áÖØÐ¸ñʽ»¯¡£

3¡¢¼Ç¼ÏÂÄãµçÄÔÖÐÏÂÁÐÉ豸ÐͺţºÊó±ê¡¢¼üÅÌ¡¢ÏÔ¿¨¡¢Íø¿¨¡¢ÏÔʾÆ÷£¬¼°ÍøÂçÉèÖÃÓõ½µÄIPµØÖ·¡¢×ÓÍøÑÚÂ롢ĬÈÏÍø¹ØºÍDNSÃû³Æ·þÎñÆ÷µØÖ·µÈÐÅÏ¢¡£

¶þ¡¢ °²×°RedHat Linux9 µÚ1²½£ºÑ¡Ôñ°²×°·½Ê½ (1)¡¢Í¼Ðΰ²×°£¨Ö±½Ó»Ø³µ£© (2)¡¢Îı¾°²×°£¨ÊäÈë linux text£©

- 4 -

µÚ2²½£ºÑ¡Ôñ¡°OK¡±Îª¼ì²é¹âÅÌ Ñ¡Ôñ¡°Skip\Ìø¹ý¼ì²é¡£ÎÒÈ·ÈÏÎҵĹâÅÌÊǺõģ¬ÎÒÌø¹ý£¡

µÚ3²½£ºÕâÒ»¶ÎÊÇ·Ñ»°£¬Ìø¹ý£¡

- 5 -

µÚ4²½£ºÎÒÑ¡Ôñ¼òÌåÖÐÎÄ£¬ÒòΪÎÒÊÇÖйúÈË£¬Ç°¶þÌìÎÒ»¹²Î¼ÓÉϺ£µÄ¿¹ÈÕ´óÓÎÐÐÄØ£¡²»¹ýÑ¡Ôñº«ÓïÒ²ÎÞËùν£¬ÒòΪÎÒÒ²¶®Ò»µãµãº«Ó

µÚ5²½£ºÕâÒ»²½£¬ÊÇÈÃÄãÑ¡ÔñÄãµÄ¼üÅÌ£¬ÎÒÓõ½ÏÖÔڵļüÅÌ£¬³ýÁËUSµÄ£¬ÎÒ»¹Ã»ÓùýÆäËüµÄÄØ£¡ÏÂÒ»²½£¡

- 6 -

µÚ6²½£ºÈÃÄãÑ¡ÔñÊó±ê¡£¾ÍËãÄã²»ÖªµÀÄãÊÇʲôÀàÐ͵ÄÊó±êÒ²ÎÞËùν£¬ÒòΪÎÒÃÇÒÔºó¶¼ÊÇÓÃ×Ö·û²Ù×÷£¬ÓÐûÓÐÊó±êÒ²ÎÞËùν£¡

Ñ¡Ôñ°²×°ÀàÐÍ£¬ÕâÀïÎÒÃÇÑ¡Ôñ¡°·þÎñÆ÷¡±ÆäʵֻҪÄã¶®£¬ÄãÑ¡ÔñÄÄÖÖÀàÐͶ¼ÎÞËùν£¡

- 7 -

µÚ7²½£ºÒòΪ´ó¼ÒÊǸú×ÅÎÒ×ö£¬ËùÒÔ²»Òªµ£ÐÄÄã¶®²»¶®£¡ÎÒÃÇÑ¡Ôñ¡°ÊÖ¹¤·ÖÇø¡±£¡

µÚ8²½£ºÈç¹ûÄãµÄÓ²ÅÌÖ»ÓÐÒ»¸ö·ÖÇø£¬Äã¾Í»á¿´µ½ÈçϽçÃæ£¬Èç²»ÊÇ£¬Äã¿ÉÒÔµãɾ³ýËüÃÇ£¡ÏÂÃæÎÒÃǵ㡰н¨¡±£¡

- 8 -

µÚ9²½£ºµã¡°Ð½¨¡±ÈÃÄãÌí¼ÓÒ»¸ö·ÖÇø£¡ÎÒÃÇÊ×ÏÈÌí¼ÓÒ»¸ö£¬/boot·ÖÇø£¨Ïëµ±ÓÚwindowsϵÄÒýµ¼·ÖÇø£©ÀàÐÍΪext3£¨Ï൱ÓÚFAT32¡¢NTFS£©´óСΪ100 £¬Ä£·ÂÎÒµÄͼ¾Í¶ÔÁË£¡

µÚ10²½£ºÔٵ㡰н¨¡±ÎÒÃǽ¨Ò»¸öswapÎļþϵͳ£¨ÄÚ´æ½»»»Çø£©ÔÚ¡°ÎļþϵͳÀàÐÍ¡±ÄÇÒ»À¸Ñ¡Ôñ ¡°swap¡± ´óС£ºÄãµÄÄÚ´æ 512*2=1024£¬ÉèÕâÀïҪעÒâһϣ¡´óСҪÉè³ÉÄãÄÚ´æ´óСµÄË«±¶£¬µ«Òª¿¼Âǵ½ÒÔºóÄãÒª¼ÓÄڴ棬ÎÒÃǾÍÉè¸ßÒ»µã£¬Èç¹ûÄãÒÔºóÄÚ´æµÄ¼«ÏÞΪ2G*2=4096£¬ÄÇôÎÒÃǾÍÌáǰÉè³É4096£¡²»¹ýlinuxÊǵÍÅäÖ㬸ßÐÔÄܵIJÙ×÷ϵͳŶ£¡

- 9 -

µÚ11²½£ºÏÂÃæÔÙ½¨Ò»¸ö ¡°/¡± linuxϵĸù·ÖÇø ÕâÀïÉè³É¡°1000¡±°É£¡

µÚ12²½£ºÉÏÃæÐ½¨µÄ¼¸¸ö·ÖÇøÎªlinux±ØÐëµÄ·ÖÇø£¬ÏÂÃæÎÒÃǾͰÑʣϵÄÓ²ÅÌ·ÖÇø£¬·Ö³ÉÒ»¸ö·ÖÇø£¡ ÕâÀïҪעÒâµÄÊÇ£º/mnt/linux Õâ¸ö·¾­£¬ÊÇÄãµÄ·ÖÇøÂ·¾­£¨Ï൱ÓÚÄãµÄEÅÌÒ»Ñù£©£¬Ñ¡ÔñÈ«²¿¿ÉÓÿռ䣡

- 10 -

µÚ13²½£ºÉÏÃæËù×÷µÄ²½Ö裬½¨ºÃÁËËùÓеķÖÇø¡£ Èç¹ûÄãÕÕ×ÅÎҵϰ£¬Ó¦¸ÃÊÇÈçÏÂͼһÑù£¡µã»÷ÏÂÒ»²½¡£

µÚ14²½£ºÕâÒ»²½£¬Ã»±ØÒªÃ÷°×£¡

- 11 -

µÚ15²½£ºÍøÂçÅäÖ㬵ã±à¼­

µÚ16²½£ºÈ¡Ïû¡°Ê¹ÓÃDHCP½øÐÐÅäÖá±ÆäËüµÄ°´ÕÕ˵Ã÷Ìîд£¡

- 12 -

µÚ17²½£ºÈçͼ£¡Ö»×öΪ²Î¿¼£¡

µÚ18²½£ºÕâÀïÎÒÃÇÑ¡Ôñ¡°ÎÞ·À»ðǽ¡±!Èç¹ûÄãÒÔºóÒªÉè¡°·À»ðǽ¡±Äã¿ÉÒÔÊÖ¶¯Ð´¹æÔò£¬ÎÒ¾ÍÊÇÕâô×öµÄ£¡

- 13 -

µÚ19²½£ºÏÂÒ»²½¡£

µÚ20²½£ºÏÂÒ»²½¡£

µÚ21²½£ºÕâÀïÉ趨¡°root¡±³¬¼¶Óû§µÄÃÜÂë

- 14 -

µÚ22²½£ºÈç¹ûÄãÖ»Ïë×öµçÓ°·þÎñÆ÷ºÍFTP·þÎñÆ÷£¡Äã°ÑËùÓеġ°¡Ì¡°¶¼È¥µô£¬Ö»ÁôÏ¡°FTP·þÎñÆ÷¡±ºÍ¡°¿ª·¢¹¤¾ß¡±Ç°ÃæµÄ¡°¡Ì¡±¡£ ÎÒÃÇÖ»°²×°¡°FTP·þÎñÆ÷¡±£¨ÓÃÀ´´«µçÓ°£©ºÍ¡°¿ª·¢¹¤¾ß¡±£¨¿ª·¢°ü£¬ÊÇlinuxϾ­³£Óõ½µÄ£¡£©

µÚ23²½£ºÏÂÒ»²½

- 15 -

µÚ24²½£ºµÈ´ýÖС£¡£¡£¡£¡£¡£

µÚ25²½£º»»µÚ¶þÕÅÅÌ£¡

µÚ26²½£º»»µÚÈýÕÅÅÌ£¡

- 16 -

µÚ27²½£ºËæ±ãÄãÑ¡²»Ñ¡Ôñ£¡

µÚ28²½£ºÍê³É°²×°ÁË£¡

µÚ29²½£ºlinuxµÄÆô¶¯½çÃæ

- 17 -

µÚ30²½£ºÆô¶¯Íê³É£¬µÈ´ýÓû§µÄµÇ½£¡

µÚ31²½£ºLigin: root Password:ÄãµÄ³¬¼¶Óû§ÃÜÂë

µ½ÕâÀïlinuxµÄ°²×°ÒѾ­È«²¿Íê³ÉÁË£¬¸Ï¿ìÈ¥åÛÓεÄlinuxµÄÊÀ½ç°É£¡

- 18 -

µÚ¶þÕ Linux ³£ÓÃÃüÁîÓ÷¨

Ò»¡¢ ʵÑéÄ¿µÄ

1. 2. 3. 4.

ÕÆÎÕLinux Ò»°ãÃüÁî¸ñʽ¡£

ÕÆÎÕÓйØÎļþºÍĿ¼²Ù×÷µÄ³£ÓÃÃüÁî¡£ ÕÆÎÕÓйؽø³Ì²Ù×÷µÄ³£ÓÃÃüÁî¡£ ÊìÁ·Ê¹ÓÃman ÃüÁî¡£

¶þ¡¢ ʵÑéÄÚÈÝ

1. ÕýÈ·µØµÇ¼ºÍÍ˳öϵͳ¡£

2. ÊìϤdate, cal, who, echo, clear, passwd ÃüÁî¡£

3. ÔÚÓû§Ö÷Ŀ¼Ï¶ÔÎļþ½øÐвÙ×÷£º¸´ÖÆÒ»¸öÎļþ¡¢ÏÔʾÎļþÄÚÈÝ¡¢²éÕÒÖ¸¶¨ÄÚÈÝ¡¢

ÅÅÐò¡¢Îļþ±È½Ï¡¢Îļþɾ³ýµÈ¡£

4. ¶ÔĿ¼½øÐйÜÀí£º´´½¨ºÍɾ³ý×ÓĿ¼¡¢¸Ä±äºÍÏÔʾ¹¤×÷Ŀ¼¡¢ÁгöºÍ¸ü¸ÄÎļþȨÏÞ¡¢

Á´½ÓÎļþµÈ¡£

5. ÀûÓÃman ÏÔʾ date, echo µÈÃüÁîµÄÊÖ²áÒ³¡£ 6. ÏÔʾϵͳÖеĽø³ÌÐÅÏ¢¡£

Èý¡¢ Ö÷ҪʵÑé²½Öè

1. µÇ¼½øÈëϵͳ£¬Ð޸ĸöÈËÃÜÂë¡£

ʾÀý£ºµÇ¼½øÈëϵͳӦ¸ÃÏÈÊäÈëÓû§ÃûÈ磺yucheng £¬È»ºóÊäÈëÃÜÂë******£¨Èô¸É룩¡£ $ passwd

Changing password for user yucheng. [Óû§ÃûÊÇ yucheng ] Changing password for yucheng (current) UNIX Password: [ÌáʾÊäÈëÀÏÃÜÂë] New password: [ÒªÇóÊäÈëÐÂÃÜÂë]

Retype new password: [ÖØÐÂÊäÈëÒ»±éÐÂÃÜÂë¡£Èç¹ûÁ½´ÎÊäÈëµÄÃÜÂë

ÍêȫһÑù£¬ÏµÍ³¾Í½ÓÊÕÕâ¸öÃÜÂë×÷ΪÏ´εǼʱµÄÃÜÂë]

Passwd:all authentication tokens updated successfully. !!!×¢ÒâÊÂÏ

a, ϵͳ³öÓÚ°²È«¿¼ÂÇ£¬ÊäÈëµÄËùÓÐÃÜÂë¶¼²»ÔÚÆÁÄ»ÉÏÏÔʾ¡£

b, Èç¹ûÊäÈëµÄÃÜÂë²»¶Ô£¬ÏµÍ³»á·¢³öÌáʾ£¬ÒªÇóÖØ¸´ÒÔÉϲ½Öè¡£

2. ʹÓüòµ¥ÃüÁdate, cal, who, echo, clear µÈ£¬Á˽âLinux ÃüÁî¸ñʽ¡£

ʾÀý£ºdate ÃüÁîÓÃÓÚÔÚÆÁÄ»ÉÏÏÔʾ»òÉèÖÃϵͳµÄÈÕÆÚºÍʱ¼ä¡£Èç¹ûûÓÐÑ¡ÏîºÍ²ÎÊý£¬

½«Ö±½ÓÏÔʾµ±Ç°µÄÈÕÆÚºÍʱ¼ä¡£

cal ÃüÁî¿ÉÒÔÏÔʾ¹«Ôª1~9999ÄêÖеÄÈÎÒâÒ»Äê»òÕßÒ»¸öÔµÄÈÕÀú¡£ who ÃüÁÁгöËùÓÐÕýÔÚʹÓõÄϵͳµÄÓû§¡¢ËùÓÃÖÕ¶ËÃûºÍ×¢²áµ½ÏµÍ³µÄʱ¼ä¡£ echo ÃüÁî¿ÉÒÔ½«ÃüÁîÐÐÖеIJÎÊýÏÔʾµ½±ê×¼Êä³ö£¨¼´ÆÁÄ»£©ÉÏ¡£

clear ÃüÁîÇå³ýÆÁÄ»ÉϵÄÐÅÏ¢£¬ËüÀàËÆÓëDOS ÖÐµÄ CLS ÃüÁî¡£ÇåÆÁºó£¬Ìáʾ

·ûÒÆµ½ÆÁÄ»µÄ×óÉÏ·½¡£

- 19 -

ÃüÁîµÄÑÝʾÈçÏÂËùʾ£º

3. ä¯ÀÀÎļþϵͳ£º

£¨1£©¡¢ÔËÐÐpwd ÃüÁ È·Èϵ±Ç°¹¤×÷Ŀ¼¡£

ʾÀý£ºpwd ÃüÁî¿ÉÒÔÔÚÆÁÄ»ÉÏÏÔʾ³öµ±Ç°¹¤×÷Ŀ¼µÄ¾ø¶Ô·¾¶£¬ÀýÈ磺 $pwd

/home/yucheng £¨2£©¡¢ÔËÐÐ ls ¨Cl ÃüÁ Àí½â¸÷×ֶεĺ¬Òå¡£ ʾÀý£ºls ÃüÁîÁгöÖ¸¶¨Ä¿Â¼µÄÄÚÈÝ¡£

-l ÒÔ³¤¸ñʽÏÔʾÎļþµÄÏêϸÐÅÏ¢¡£Êä³öµÄÐÅÏ¢·Ö³É¶àÁУ¬ËüÃÇÒÀ´ÎÊÇ£º

ÎļþÀàÐÍÓëȨÏÞ Á´½ÓÊý ÎļþÖ÷ Îļþ×é Îļþ´óС ½¨Á¢»ò×î½üÐ޸ĵÄʱ¼ä ÎļþÃû ÀýÈ磺-rw-r- -r- - 1 yucheng yucheng 0 3 Ô 21 00£º43\\ £¨3£©¡¢ÔËÐÐ ls ¨Cai ÃüÁ Àí½â¸÷×ֶεĺ¬Òå¡£ ʾÀý£º-a ÏÔʾָ¶¨Ä¿Â¼ÏÂËùÓÐ×ÓĿ¼ºÍÎļþ£¬°üÀ¨ÒÔ¡° . ¡±¿ªÍ·µÄÒþ²ØÎļþ£¨.emacs£©¡£ -i ÔÚÊä³öµÄµÚÒ»ÁÐÏÔʾÎļþµÄI ½ÚµãºÅ¡£ ÀýÈ磺308763 .emacs £¨4£©¡¢Ê¹ÓÃcd ÃüÁ ½«¹¤×÷Ŀ¼¸Äµ½¸ù£¨/£©ÉÏ¡£ ʾÀý£ºcd ÃüÁîÓÃÀ´¸Ä±ä¹¤×÷Ŀ¼¡£

ÀýÈ磺$cd [½«µ±Ç°Ä¿Â¼¸Äµ½Óû§µÄÖ÷Ŀ¼] $cd .. [½«µ±Ç°Ä¿Â¼ÏòÉÏÒÆ¶¯Ò»¼¶] $cd ../.. [½«µ±Ç°Ä¿Â¼ÏòÉÏÒÆ¶¯Á½¼¶] $cd /bin/chmod [½«µ±Ç°Ä¿Â¼¸Äµ½/bin/chmod] £¨5£©¡¢Óà mkdir ½¨Á¢Ò»¸ö×ÓĿ¼ subdir ¡£ ʾÀý£º$mkdir subdir £¨6£©¡¢½«¹¤×÷Ŀ¼¸Äµ½subdir ¡£

ʾÀý£º$cd subdir [½«µ±Ç°Ä¿Â¼¸Äµ½subdirĿ¼ÏÂ] $pwd [Óà pwd ÑéÖ¤½á¹ûÈçÏÂËùʾ£º] /home/yucheng/subdir

4. Îļþ²Ù×÷£º

£¨1£©¡¢ÑéÖ¤µ±Ç°¹¤×÷Ŀ¼ÔÚ subdir ¡£

- 20 -

ʾÀý£º$pwd [Óà pwd ÑéÖ¤½á¹ûÈçÏÂËùʾ£º] /home/yucheng/subdir £¨2£©¡¢ÔËÐÐ date>file1 £¬È»ºóÔËÐÐ cat file1 £¬¿´µ½Ê²Ã´ÐÅÏ¢£¿ ʾÀý£º$date>file1 [½«date Êä³öµÄÄÚÈݶ¨Ïòµ½Îļþfile1 ÖÐ] $cat file1 [ÏÔʾ date¶¨Ïòµ½Îļþfile1 ÖеÄÄÚÈÝ ÈçÏÂËùʾ£º] Ò» 3 Ô 28 21£º28£º42 CST 2011 £¨3£©¡¢ÔËÐÐ cat subdir £¬»áÓÐʲô½á¹û£¿ÎªÊ²Ã´£¿

ʾÀý£º$ cat subdir [ÏÔʾ½á¹ûÈçÏÂËùʾ£º] cat : subdir ûÓÐÄǸöÎļþ»òĿ¼

Ô­Òò£ºcat ÃüÁîÓÃÓÚÏÔʾÎļþµÄÄÚÈÝ£¬¶øsubdirÊÇÒ»¸öĿ¼ £¨4£©¡¢ÀûÓà man ÃüÁîÏÔʾ date ÃüÁîµÄʹÓÃ˵Ã÷¡£

ʾÀý£º$man date [½«date ÃüÁîµÄʹÓÃ˵Ã÷ÏÔʾÔÚÆÁÄ»ÉÏ ] £¨5£©¡¢ÔËÐÐ man date>>file1 £¬¿´µ½Ê²Ã´£¿ ÔËÐÐ cat file1 £¬¿´µ½Ê²Ã´£¿

ʾÀý£º$ man date>>file1 [½«date ÃüÁîµÄʹÓÃ˵Ã÷¶¨Ïòµ½Îļþfile1 ÖÐ] $ cat file1 [½«date ÃüÁîµÄʹÓÃ˵Ã÷¶¨Ïòµ½Îļþfile1 ÖеÄÄÚ

ÏÔʾÔÚÆÁÄ»ÉÏ]

£¨6£©¡¢ÀûÓà ls ¨Cl file1, Á˽âÁ´½Ó¼ÆÊýÊǶàÉÙ£¿ ÔËÐÐ ln file1 ../fa £¬ÔÙÔËÐÐ ls ¨Cl file1 £¬¿´Á´½Ó¼ÆÊýÓÐÎޱ仯£¿Óà cat ÃüÁîÏÔʾfa ÎÄ

¼þÄÚÈÝ¡£

ʾÀý£º$ ls ¨Cl file1 [ÒÔ³¤¸ñʽÏÔʾfile1ÎļþµÄÏêϸÐÅÏ¢ ÈçÏÂËùʾ£º] -rw-r- -r- - 1 yucheng yucheng 5402 3 Ô 21 21£º42 file1

ÔËÐкó¿É¿´µ½£ºÁ´½Ó¼ÆÊýΪ1 $ ln file1 ../fa $ ls ¨Cl file1

-rw-r- -r- - 2 yucheng yucheng 5402 3 Ô 21 21£º42 file1 ÔËÐкó¿É¿´µ½£ºÁ´½Ó¼ÆÊýΪ2

$cd .. [ĬÈÏÁ´½ÓÎļþ½¨Á¢ÔÚÉÏÒ»¼¶Ä¿Â¼Öм´yucheng Ŀ¼ÖÐ Ëù

ÒÔÒªÏȻص½ÉÏÒ»¼¶Ä¿Â¼²ÅÄÜÓÃcat À´ÏÔʾÎļþfa µÄÄÚÈÝ]

$cat fa [½«Îļþfa ÖеÄdate ÃüÁîµÄʹÓÃ˵Ã÷ÄÚÈÝÏÔʾÔÚÆÁÄ»ÉÏ]

£¨7£©¡¢ÏÔʾ file1 µÄǰ10 ÐУ¬ºó10 ÐС£

ʾÀý£º$head -10 file1 [ÔÚÆÁÄ»ÉÏÏÔʾ file1 µÄǰ10 ÐÐ] $tail 10 file1 [ÔÚÆÁÄ»ÉÏÏÔʾ file1 µÄºó10 ÐÐ] £¨8£©¡¢ÔËÐÐ cp file1 file2 £¬È»ºóÔËÐÐ ls ¨Cl £¬ ¿´µ½Ê²Ã´£¿ ÔËÐÐ mv file2 file3 £¬È»ºóÔËÐÐ ls ¨Cl £¬ ¿´µ½Ê²Ã´£¿ ÔËÐÐ cat f* £¬½á¹ûÔõôÑù£¿

ʾÀý£º$ cp file1 file2 [½«Îļþfile1¸´ÖÆfile2ÎļþÖÐ] $ ls ¨Cl [ÔÚµ±Ç°Ä¿Â¼ÏÂÓÖ³öÏÖÒ»¸öfile2Îļþ] $ mv file2 file3 [½«Îļþfile2ÖØÃüÃûΪfile3Îļþ] $ ls ¨Cl [ÔÚµ±Ç°Ä¿Â¼ÏÂÔ­À´µÄfile2Îļþ±ä³ÉÁËfile3Îļþ] $ cat f* [½«¿ªÍ·ÎªfµÄÎļþÖеÄÄÚÈÝÏÔʾÔÚÆÁÄ»ÉÏ] £¨9£©¡¢ÔËÐÐ rm file3 £¬È»ºó ls ¨Cl £¬½á¹ûÈçºÎ£¿

ʾÀý£º$rm file3 [ɾ³ýÎļþfile3] $ls ¨Cl [ÔÚµ±Ç°Ä¿Â¼ÏÂÔ­À´µÄfile3Îļþ²»¼ûÁË]

- 21 -

£¨10£©¡¢ÔÚ /etc/passwd ÎļþÖвéÕÒÊʺÏÄãµÄ×¢²áÃûµÄÐС£

ʾÀý£º$cd .. [»Øµ½yucheng µÄÉÏÒ»¼¶ ¼´ home ] $cd .. [»Øµ½ home µÄÉÏÒ»¼¶ ¼´ root ] $cd etc [תµ½ etc Ŀ¼ÏÂ]

$cat passwd|more [½«ÎļþµÄÄÚÈÝÏÔʾÔÚÆÁÄ»ÉÏ£¬ÇÒÿ´ÎÏÔʾһ

ÆÁ£¬Í¨¹ý»Ø³µÏòÏÂ×ßÒ»ÐУ¬¿Õ¸ñÏòÏÂ×ßÒ»ÆÁ¡£]

ÏÔʾ½á¹ûÈçÏ£¨ÎÒµÄ×¢²áÃû£©£º

yucheng:x:500:500:yuchengtianxia:/home/yucheng:/bin/bash

£¨11£©¡¢ÔËÐÐ ls ¨Cl £¬Àí½â¸÷ÎļþµÄȨÏÞÊÇʲô£¿

ʾÀý£º$ls ¨Cl|more [ÏÔʾetc Ŀ¼Ïµĸ÷Îļþ£¬ passwd ÎļþµÄ

ÏÔʾÈçÏ£º]

-rw-r- -r- - 1 root root 1654 3 Ô 20 00£º08 passwd

ÎļþÀàÐÍΪÆÕͨÎļþ£¬ÎļþÖ÷ȨÏÞÊǿɶÁ¿Éд²»¿ÉÖ´ÐУ¬×éÓû§È¨ÏÞÊǿɶÁ²»¿Éд²»¿ÉÖ´ÐУ¬ÆäËûÓû§È¨ÏÞÊǿɶÁ²»¿Éд²»¿ÉÖ´ÐС£ £¨12£©¡¢ÓÃÁ½ÖÖ·½·¨¸Ä±ä file1 µÄȨÏÞ¡£ ʾÀý£º£¨1£©¡¢ÒÔ·ûºÅģʽ¸Ä±äȨÏÞ¡££¨2£©¡¢ÒÔ¾ø¶Ô·½Ê½¸Ä±äȨÏÞ¡£

$chmod a+x myfile [½«ÎļþµÄȨÏÞ¸ÄΪËùÓÐÓû§¶¼ÓÐÖ´ÐÐȨÏÞ] $chmod 111 myfile [½«ÎļþµÄȨÏÞ¸ÄΪËùÓÐÓû§¶¼ÓÐÖ´ÐÐȨÏÞ] £¨13£©¡¢Í³¼Æ file1 ÎļþµÄÐÐÊý¡¢×ÖÊý¡£ ʾÀý£º$wc ¨Clw file1 £¨14£©¡¢ÔËÐÐ man ls|more £¬ÏÔʾ½á¹ûÊÇʲô£¿

ʾÀý£º$ man ls|more [½«lsµÄʹÓÃ˵Ã÷µÄÄÚÈÝÏÔʾÔÚÆÁÄ»ÉÏ£¬ÇÒÿ´ÎÏÔʾ

Ò»ÆÁ£¬Í¨¹ý»Ø³µÏòÏÂ×ßÒ»ÐУ¬¿Õ¸ñÏòÏÂ×ßÒ»ÆÁ¡£]

ÔËÐÐ cat file1|head -20|tee file5 £¬½á¹ûÈçºÎ£¿

ʾÀý£º$ cat file1|head -20|tee file5 [½«file1ÎļþµÄǰ20ÐÐÏÔʾÔÚÆÁÄ»ÉÏ£¬²¢ÇÒ½«

ÏÔʾÔÚÆÁÄ»ÉϵÄ20ÐÐÊý¾Ý´æµ½Îļþfile5ÖС£]

ÔËÐÐ cat file5|wc £¬½á¹ûÈçºÎ£¿ ʾÀý£º$ cat file5|wc [½«ÎļþµÄÄÚÈÝµÄ ÐÐÊý ×ÖÊý ×Ö½ÚÊý]

- 22 -

µÚÈýÕ vi ±à¼­Æ÷ʹÓÃ

Ò»¡¢ ʵÑéÄ¿µÄ

ѧϰʹÓÃvi ±à¼­Æ÷µÄ½¨Á¢¡¢±à¼­¡¢ÏÔʾ¡¢¼°¼Ó¹¤´¦ÀíÎı¾Îļþ¡£

¶þ¡¢ ʵÑéÄÚÈÝ

1. 2. 3. 4. ½øÈëºÍÍ˳övi ¡£

ÀûÓÃÎı¾²åÈ뷽ʽ½¨Á¢Ò»¸öÎļþ¡£ ÔÚн¨µÄÎı¾ÎļþÉÏÒÆ¶¯¹â±êλÖᣠ¶Ô¸ÃÎļþÖ´ÐÐɾ³ý¡¢¸´Ô­¡¢Ð޸ġ¢Ìæ»»µÈ²Ù×÷¡£ Èý¡¢ Ö÷ҪʵÑé²½Öè 1. ½øÈëºÍÍ˳övi£¬¼°vi ±à¼­Æ÷µÄÈýÖÖ¹¤×÷·½Ê½µÄת»»¡£ ʾÀý£º Linux shell ÃüÁʽ ²åÈ뷽ʽ exתÒ巽ʽ ÃüÁʽ Linux shell

2. ½¨Á¢Ò»¸öÎļþ£¬Èç file.c ¡£½øÈë²åÈ뷽ʽ£¬ÊäÈëÒ»¸öC ÓïÑÔ³ÌÐòµÄ¸÷ÐÐÄÚÈÝ£¬¹ÊÒâÖÆÔ켸´¦´íÎó¡£×îºó£¬½«¸ÃÎļþ´æÅÌ¡£»Øµ½shell ״̬Ï¡£ ʾÀý£º$vi file.c [½¨Á¢Ò»¸öÎļþÃûΪfile.c £¬²¢ÇÒ½øÈëÃüÁʽ] ÊäÈëµÄ£ÃÓïÑÔ´úÂëÈçÏÂËùʾ£º

- 23 -

3. ÔËÐÐ gcc file.c ¨Co myfile £¬±àÒë¸ÃÎļþ£¬»á·¢ÏÖ´íÎóÌáʾ¡£Àí½âÆäº¬Òå¡£

ʾÀý£º

ÔÚµÚÁùµÄ int ֮ǰ´æÔÚ´íÎó£¬ÒòΪint bÖ®ºóÎÒÃǹÊÒâ°Ñ¡° ; ¡°¸øÉ¾ÁË¡£ÕâÒ²µ¼ÖÂÔÚµÚÆßÐÐÒýÓõÄʱºò£¬¾Í»á·¢ÉúûÓж¨Ò塱b¡°µÄ´íÎó¡£½ÓÏÂÀ´¾Íµ±È»»áÔÚµÚ°ËÐбí´ïʽ¡±c = a+b;¡°ÒýÓõÄʱºò¡±c¡°µÃ²»µ½Öµ£¬·¢Éúû¶¨ÒåµÄ´íÎó¡£

4. ÖØÐ½øÈëvi £¬¶Ô¸ÃÎļþ½øÐÐÐ޸ġ£È»ºó´æÅÌ£¬Í˳övi ¡£ÖØÐ±àÒë¸ÃÎļþ¡£Èç¹û±àÒëͨ¹ýÁË£¬¿ÉÒÔÓà ./myfile ÔËÐиóÌÐò¡£ ʾÀý£º

5. ÔËÐÐman date>file10£¬È»ºó vi file10¡£

ʾÀý£º$ man date>file10 [½«date µÄʹÓÃ˵Ã÷ÖØ¶¨ÏòµÄÎļþ file10 ÖÐ] $ vi file10 [½øÈëvi ±à¼­Æ÷µÄÃüÁʽ] ʹÓà x£¬dd µÈÃüÁîɾ³ýijЩÎı¾ÐС£ ˵Ã÷£ºx ÃüÁîɾ³ý¹â±êËùÔÚµÄ×Ö·û¡£ dd ÃüÁîɾ³ý¹â±êËùÔÚµÄÕûÐС£ ˵Ã÷£ºÊ¹ÓÃu ÃüÁî¿ÉÒÔ¸´Ô­´ËǰµÄÇé¿ö¡£ ʹÓà c£¬r£¬s µÈÃüÁîÐÞ¸ÄÎı¾ÄÚÈÝ¡£

˵Ã÷£ºc ÃüÁîÐÞ¸ÄÎı¾¶ÔÏó£¬ÓÃÐÂÊäÈëµÄÎı¾´úÌæÀϵÄÎı¾¡£ r ÃüÁîÊÇÓÃËæºóÊäÈëµÄµ¥¸ö×Ö·ûÈ¡´ú¹â±êËùÔÚµÄ×Ö·û¡£ s ÃüÁîÊÇÓÃËæºóÊäÈëµÄÎı¾´úÌæ¹â±êËùÔÚµÄ×Ö·û¡£ ʹÓüìË÷ÃüÁî½øÐиø¶¨Ä£Ê½µÄ¼ìË÷¡£

˵Ã÷£º½øÈëÎļþµÄvi ±à¼­×´Ì¬ÔÚÃüÁʽÏÂÊäÈ룺/ģʽ+»Ø³µ¼ü

ϵͳ¾Í´Óµ±Ç°ÐпªÊ¼Ïòǰ²éÕÒÕâ¸öģʽ£¬ÕÒµ½µÚÒ»¸öÏàÆ¥ÅäµÄ×Ö·û´®ºó£¬¹â±ê¾ÍÍ£ÔÚ¸ÃģʽµÄµÚÒ»¸ö×Ö·ûÉÏ¡£

- 24 -

µÚËÄÕÂshell ±à³Ì

Ò»¡¢ ʵÑéÄ¿µÄ

1. 2. 3. 4.

Á˽âshell µÄ×÷ÓúÍÖ÷Òª·ÖÀà¡£ ÕÆÎÕbash µÄ½¨Á¢ºÍÖ´Ðз½Ê½¡£ ÕÆÎÕ bash µÄ»ù±¾Óï·¨¡£ ѧ»á±àд shell ½Å±¾¡£

¶þ¡¢ ʵÑéÄÚÈÝ

1. 2. 3. 4. 5. 6.

shell ½Å±¾µÄ½¨Á¢ºÍÖ´ÐС£ ÀúÊ·ÃüÁîºÍ±ðÃû¶¨Òå¡£

shell ±äÁ¿ºÍλÖòÎÊý¡¢»·¾³±äÁ¿¡£ bash µÄÌØÊâ×Ö·û¡£ Ò»°ã¿ØÖƽṹ¡£

ËãÊõÔËËã¼°bash º¯Êý¡£

Èý¡¢ Ö÷ҪʵÑé²½Öè

1£® ÀûÓÃvi ½¨Á¢Ò»¸ö½Å±¾Îļþ£¬ÆäÖаüÀ¨ date£¬cal£¬pwd£¬ls µÈ³£ÓÃÃüÁȻºóÒÔ²»Í¬·½Ê½Ö´Ðиýű¾¡£

ʾÀý£º$vi cmd.sh [½øÈëvi ±à¼­Æ÷²¢´´½¨Îļþ cmd.sh ] $cat ¨Cn cmd.sh [ÏÔʾÎļþcmd.sh ²¢ÇÒ±àÐкŠÈçÏÂËùʾ]

$bash cmd.sh [Ö´ÐÐbash ½Å±¾Îļþ cmd.sh Ö´Ðнá¹ûÈçÏÂËùʾ]

ÆäËüÁ½ÖÖ·½Ê½ÈçÏÂËùʾ£º

$bash

2£® ÔËÐÐ history ÃüÁÅäÖÃÀúÊ·ÃüÁî»·¾³¡£

ʾÀý£º$history [ÏÔʾÀúÊ·ÃüÁî] $touch .myhistory [´´½¨Ò»¸öÒþ²ØÎļþ] $vi HISTFILE=¡±/home/yucheng/.myhistory¡± [ÀúÊ·ÃüÁ´æ·ÅÔÚ´ÎÎļþÖÐ]

- 25 -

3£® Ìå»ábash µÄÃüÁî²¹Æë¹¦ÄÜ¡£

ʾÀý£º$bash cm +tab¼ü [ÊäÈëĿ¼Ãû»òÎļþÃûµÄ¿ªÍ·²¿·Ö£¬È»ºó°´Tab¼ü¾Í±äΪÈç

ÏÂËùʾ]

$bash cmd.sh

4£® Óà alias ¶¨Òå±ðÃû£¬È»ºóÖ´ÐС£

ʾÀý£º$alias [ÏÔʾ±ðÃûÇåµ¥]

$bashcmd cmd.sh [ÑéÖ¤bashcmd ÊÇ·ñÒѾ­¶¨Òå] $alias bashcmd=¡¯bash¡¯ [¶¨Òåbashcmd ]

$bashcmd cmd.sh [ÑéÖ¤bashcmd ÊÇ·ñÒѾ­Æð×÷ÓÃ] $unalias bashcmd [È¡Ïûbashcmd ±ðÃû]

$bashcmd cmd.sh [ÑéÖ¤bashcmd ÊÇ·ñÒѾ­È¡Ïû] 5£® ·ÖÎöÏÂÁÐshell ½Å±¾µÄ¹¦ÄÜ£º

ÔËÐÐÈçÏ£º

$bash chapter4_8.sh a b c d ½á¹ûÈçÏ£º

d c b a chapter4_8.sh ÔËÐÐÈçÏ£º

$bash ¨Cx chapter4_8.sh a b c d [-x ÊÇΪÁ˵¥²¹¸ú×ٽű¾] ½á¹ûÈçÏ£º

- 26 -

˵Ã÷£ºµÚÒ»ÐÐÊÇ˵ʹÓÃbash ±àÒë»·¾³¡£µÚ¶þÐÐÊÇ˵½«²ÎÊýµÄ¸öÊý¸³¸ø±äÁ¿count ¡£µÚÈý

ÊÇ˵ʹÓÃcmd ±äÁ¿´úÌæÄÚÖÃÃüÁîecho £¬¾ÍÊÇ˵cmd ¾ßÓÐÄÚÖÃÃüÁîechoµÄ¹¦ÄÜ¡£ ËÄÐÐÊÇ×öÁËÒ»¸öwhileÑ­»·µ±Ìõ¼þÎªÕæÊǽøÈëÑ­»·Ì壬¼´µÚÎåÐе½µÚ°ËÐÐÖ®¼äµÄ´úÂë¡£ µÚÁùÐÐÊǽ«»ñµÃµÄ½á¹ûÓÃcmd ´æÆðÀ´¡£µÚÆßÐÐÊÇcount ×Ô¼õÒ»¡£µÚ¾ÅÐÐÊÇÏȽ«$cmd À©Õ¹³ÉÒªÖ´ÐеÄÃüÁȻºóÔÙÖ´ÐС£

6£®±àдһ¸ö½Å±¾£¬Çóì³²¨ÄÉÆæÊýÁеÄǰʮÏî¼°×ܺ͡£ ½Å±¾³ÌÐòÈçÏ£º

7. Éè¼ÆÒ»¸ö³ÌÐòcuts £¬ËüµÄ±ê×¼ÊäÈë¶ÁÈ¡Êý¾Ý£¬»ñÈ¡ÓɵÚÒ»¸ö²ÎÊýn ºÍµÚ¶þ¸ö²ÎÊým Ëù

ÏÞ¶¨·¶Î§µÄÊý¾Ý£¬n ºÍ m ¶¼ÊÇÕûÊý£¬¼´´ÓÊäÈëµÄ×Ö·û´®ÖгéÈ¡µÚn ¸ö×Ö·ûÖÁµÚm ¸ö×Ö·ûÖ®¼äµÄËùÓÐ×Ö·û£¨°üÀ¨ÕâÁ½¸ö×Ö·û£©¡£ ʾÀý³ÌÐòÈçÏÂËùʾ£º

8. ½Å±¾¶¨ÒåÁËÁ½¸öº¯Êý£ºgetc() ºÍ press_any_key() ¡£

½Å±¾´úÂëÈçÏÂËùʾ£º

- 27 -

ÔËÐÐ $bash 4_8.sh ½á¹ûÈçÏÂËùʾ£º

Èç¹ûÎÒÃǵÚÁùÐÐ×¢ÏúµôÔÙÔËÐÐ $bash 4_8.sh ½á¹ûÈçÏÂËùʾ£º

Õâ¸ö²î±ðºÜÃ÷È·¾ÍÊǵڶþÐÐûÓÐÏÔʾ¡®A¡¯Ñ½£¡¿ÉÊÇÎªÊ²Ã´ÄØ£¿ÏÂÃæÎÒÃǽ«µ«²»¸ú×ٽű¾µÄÔËÐУ¬Ô­Òò¾ÍһĿÁËÈ»ÁË¡£ ÔËÐÐ $bash ¨Cx 4_8.sh ÔËÐÐÍê½á¹ûÈçÏÂËùʾ£º [Ô­À´µÄ½Å±¾]

- 28 -

×¢ÏúµôµÚÁùÐÐÔÙÔËÐÐ $bash ¨Cx 4_8.sh ÔËÐÐÍê½á¹ûÈçÏÂËùʾ£º

´ÓÁ½´ÎÔËÐеIJ½Öè¾Í¿É¿´³ö²î±ð£¬½Ó×ÅÎÒ½«¾ÍΪʲô»á³öÏÖÕâÖÖÇé¿ö×÷³ö½âÊÍ£¬¼´µÚÁùÐÐÖÐeval µÄ×÷Óá£ÄÚÖÃÃüÁîeval Ç¿ÖÆshell ¶Ô¸ÃÐнøÐÐÁ½´ÎɨÃ裺һ´Î½«$1 À©Õ¹µ½±äÁ¿ÃûÖУ¬½Ó×ÅÖ´ÐÐÌæ»»ºóµÄÃüÁî¡£

- 29 -

µÚÎåÕ ³£Óÿª·¢¹¤¾ß

Ò»£®ÊµÑéÄ¿µÄ

1.ÕÆÎÕCÓïÑÔ±àÒëµÄ»ù±¾Ó÷¨ 2.ÕÆÎÕgdbµ÷ÊÔ¹¤¾ßµÄ»ù±¾Ó÷¨

3.Àí½âmake¹¤¾ßµÄ¹¦ÄÜ£¬Ñ§»á±àÖÆmakefile µÄ·½·¨ ¶þ£®ÊµÑéÄÚÈÝ

1.ÀûÓÃgcc±àÒëCÓïÑÔ³ÌÐò£¬Ê¹Óò»Í¬Ñ¡Ï¹Û²ì²¢·ÖÎöÏÔʾ½á¹û(ËæÒâ±àдһCÎļþcc.c) 2.ÀûÓÃgdbµ÷ÊÔÒ»¸ö±àÒëºóµÄCÓïÑÔ³ÌÐò(×Ô¼º±àдCÎļþsort.c)

3.±àдһ¸öÓɶàÎļþ¹¹³ÉµÄCÓïÑÔ³ÌÐò£¬±àÖÆmakefile£¬ÔËÐÐmake¹¤¾ß½øÐÐά»¤¡£ Èý¡¢Ö÷ҪʵÑé²½Öè

1.ÀûÓÃgcc±àÒëCÓïÑÔ³ÌÐò£¬Ê¹Óò»Í¬Ñ¡Ï¹Û²ì²¢·ÖÎöÏÔʾ½á¹û(ËæÒâ±àдһCÎļþcc.c) $gcc cc.c //Ö±½Ó±àÒëÔ´Îļþcc.c $./a.out //ÔËÐпÉÖ´ÐÐÎļþ a.out $gcc cc.c -o exe //-o Ö¸¶¨Éú³ÉÎļþÃû $./exe //ÔËÐпÉÖ´ÐÐÎļþexe $gcc -E cc.c -o cc.i // Ô¤´¦Àí $gcc cc.i -o cc $./cc

2.ÀûÓÃgdbµ÷ÊÔÒ»¸ö±àÒëºóµÄCÓïÑÔ³ÌÐò(×Ô¼º±àдCÎļþsort.c) $gcc -g sort.c -o debug // -g Ñ¡Ïî±àÒëÓÃÒÔµ÷ÊÔ

$ gdb debug //½øÈëµ÷ÊÔ»·¾³ ÓÃgdbµ÷ÊÔ debug (gdb)list 1,30 // ÏÔʾԴÂë (gdb)break 12 //Ôö¼Ó¶Ïµã (gdb)run //ÔËÐе½¶Ïµã

(gdb)step //µ¥²½ÔËÐÐ »Ø³µ¼ÌÐø... (gdb)p a[j] //ÏÔʾa[j]Öµ ... //Èô¸ÉÃüÁî (gdb)quit //Í˳öµ÷ÊÔ»·¾³

3.±àдһ¸öÓɶàÎļþ¹¹³ÉµÄCÓïÑÔ³ÌÐò£¬±àÖÆmakefile£¬ÔËÐÐmake¹¤¾ß½øÐÐά»¤¡£ //Îļþ1£¬ bubbleSort.c void bubbleSort(int a[], int n) { }

int i,j;

for(i=0; i

for(j=0; j

if(a[j] > a[j+1])

swapdata(a+j, a+j+1);

- 30 -

//Îļþ2£¬swapdata.c

void swapdata(int *a, int *b) { }

*a = *a + *b; *b = *a - *b; *a = *a - *b;

//Îļþ3£¬selectSort.c

void selectSort(int a[], int n) { }

//Îļþ4£¬main.c #include int main() { }

int a[]={9,1,5,11,7,3,2,8,6,4,0}; int len=sizeof(a)/sizeof(int); int i=0;

for(i=0; i

printf(\puts(\bubbleSort(a, len); for(i=0; i

printf(\putchar(10); int i,j,max;

for(i=0; i

max = i;

for(j=i+1; j

if( a[max] < a[j]) max = j; swapdata(a+max, a+i); if(max != i)

//Îļþ5£¬makefile

sort.exe:main.o bubbleSort.o selectSort.o swap.o

gcc main.o bubbleSort.o selectSort.o swap.o -o sort.exe main.o:main.c

- 31 -

gcc -c main.c -o main.o

gcc -c bubbleSort.c -o bubbleSort.o gcc -c selectSort.c -o selectSort.o gcc -c swapdata.c -o swap.o

bubbleSort.o:bubbleSort.c selectSort.o:selectSort.c swap.o:swapdata.c

#make clean Ãü¡§1Áî¡é?Ö´??ÐÐDÒÔ??ÏÂ?ÄÚ¡§2ÈÝ¡§Y£¬¨º?Ä¿?¼?ÏÂ?ÓÐ?DÎÄ?¼þtcleanÒ²?2Ö´??ÐÐD .PHONY:clean clean:

rm sort.exe *.o

½øÈëÒÔÉÏ5¸öÎļþËùÔÚĿ¼£¬ÔËÐÐ

$make //make±àÒëÒÔÉÏ5Îļþ

4.Íê³É¶Ô˼¿¼Ìâ6.5µÄµ÷ÊÔ ¼û ./6_5 ,µ÷ÊÔ²½Öè¼û£º

#include #include

int main(int argc, char**argv) { }

char *p; int i;

p = malloc(30);

strcpy(p,\printf(\if(argc == 2){ } /*free(p)*/ return 0; if(strcmp(argv[1], \ }

p[50] = 'a'; //Êýoy×騢¡§|ÏÂ?±í¨¤¡§aÔ½?½ç? free(p); p[0]='b';//·Ç¡è?·¨¡è?¡ì·Ã¡è?ÎÊ¡§o£¬¨º?ÒÑ??¾­-free(p) else if(strcmp(argv[1], \5.Íê³É¶Ô˼¿¼Ìâ6.6µÄµ÷ÊÔ

//Ô´ÎļþÈçÏ£¬µ÷ÊÔ²½Öè¼û£º¶þ¡¢2

#include #include int make_key(void); int get_key_num(void); int number(void);

- 32 -

int main() { }

int make_key(void) { }

int get_key_num(void) { }

int number(void) { }

return 10;

int ret = number(); return ret;

int ret = get_key_num(); return ret;

int ret = make_key();

printf(\exit(EXIT_SUCCESS);

6.Íê³É¶Ô˼¿¼Ìâ6.9µÄ±àÖÆ£¬²¢Ê¹ÓÃmake½øÐÐά»¤ //Îļþ makefile ÒÔдºÃ£¬Ô´ÎļþÇë×ÔÐнâ¾ö

prog:a.o b.o c.o d.o assmb.o

gcc a.o b.o c.o d.o assmb.o -L/home/user/lib -lm -o prog gcc -c a.c -o a.o gcc -c b.c -o b.o gcc -c c.c -o c.o gcc -c d.c -o d.o as -o aassmb.o assmb.s a.o:a.c b.o:b.c defs.h c.o:c.c d.o:d.c defs.h assmb.o:assmb.s .PHONY:clean clean:

rm prog *.o

//×Ô¼º°´ÕÕÒªÇó±àдÌâÄ¿ÖÐÎļþºóÔËÐÐ

$make

- 33 -

µÚÁùÕ¡¢Linux»·¾³±à³Ì

Ò»¡¢ ʵÑéÄ¿µÄ

1. Àí½âϵͳµ÷ÓúͿ⺯ÊýµÄÒìͬ¡£ 2. ѧ»áÓÃϵͳµ÷ÓúͿ⺯Êý½øÐбà³Ì¡£

3. ÕÆÎÕһЩ³£ÓõÄϵͳµ÷ÓúͿ⺯ÊýµÄ¹¦Äܼ°Ó¦Óá£

¶þ¡¢ ʵÑéÄÚÈÝ

1. 2. 3. 4.

ʹÓÃϵͳµ÷ÓöÔÎļþ½øÐвÙ×÷¡£ ʹÓÃϵͳµ÷ÓöԽø³Ì½øÐвÙ×÷¡£ ʹÓùܵÀ»úÖÆ½øÐÐI/O¡£

ʹÓÃÐźŻúÖÆ½øÐнø³ÌͨÐÅ¡£

Èý¡¢ Ö÷ҪʵÑé²½Öè

1. ±àдһ¸ö³ÌÐò£¬°ÑÒ»¸öÎļþµÄÄÚÈݸ´ÖƵ½ÁíÒ»¸öÎļþÉÏ£¬¼´ÊµÏÖ¼òµ¥µÄcopy ¹¦ÄÜ¡£

ÒªÇó£ºÖ»ÓÃopen()£¬read()£¬write()ºÍclose()ϵͳµ÷Ó㬳ÌÐòµÄµÚÒ»¸ö²ÎÊýÊÇÔ´Îļþ£¬µÚ¶þ¸ö²ÎÊýÊÇÄ¿±êÎļþ¡£ ʾÀý´úÂëÈçÏÂËùʾ£º #include #include #include #include #include #include

void file_copy(char *fname_str1, char *fname_str2) {

int fd1,fd2,nbytes; char buf[10];

if( (fd1=open(fname_str1,O_RDONLY))<0 ) { printf(\ exit(EXIT_FAILURE); } if( (fd2=open(fname_str2,O_WRONLY))<0 ) { printf(\ exit(EXIT_FAILURE); }

while( (nbytes=read(fd1,buf,10))>0 ) { if(write(fd2,buf,10)<0) { printf(\

- 34 -

} }

close(fd1); close(fd2);

exit(EXIT_SUCCESS); }

int main(void) {

char fnamestr1[20], fnamestr2[20]; printf(\ printf(\ scanf(\

printf(\ scanf(\

file_copy(fnamestr1,fnamestr2); return 0; }

2.±àдһ¸ö³ÌÐò£¬ËüÀûÓÃfork() ´´½¨Ò»¸ö×Ó½ø³Ì£»¸¸½ø³Ì´ò¿ªÒ»¸öÎļþ£¬¸¸½ø³ÌÏò¹ÜµÀÖÐдÐÅÏ¢£¬×Ó½ø³Ì´Ó¹ÜµÀÖжÁÐÅÏ¢¡£´òӡÿ¸ö½ø³ÌµÄÁ½¸öIDºÅ¡£×îºó¸¸½ø³ÌÖ´ÐÐwaitpid()¡£ÁíÍâÈç¹ûûÓÐwaitpidµ÷Ó㬻á³öÏÖʲôÇé¿ö£¿ ʾÀýÈçÏÂËùʾ£º #include #include #include #include #include #include

int main(int argc, char *argv) { int fd[2]; int len; pid_t pid; pid_t current_process; pid_t parent_process; char filename[10]; char childbuf[10]; //create a pipe if (pipe(fd) < 0) {

perror(\ exit(1); }

//create the child process if ((pid = fork()) < 0) { perror(\ exit(1);

- 35 -

}

if (pid == 0) { close(fd[1]);

len = read(fd[0], childbuf, 100); childbuf[len] = '\\0';

printf(\ current_process=getpid(); parent_process=getppid();

printf(\ printf(\ printf(\ printf(\

if (execlp(\ perror(\ exit(1); } } else {

close(fd[0]);

printf(\ current_process=getpid(); parent_process=getppid();

printf(\ printf(\ printf(\ scanf(\ write(fd[1], filename, strlen(filename)); //wait the pid process quit waitpid(pid, NULL, 0); return 0; } }

¹ÜµÀ¾ÍÊÇΪÁËÔÝʱ´æ´¢¶«Î÷µÄ£¬int pipe(int filedes[2]); filedes[0]ÊDZíʾ¹ÜµÀµÄ¶Á¶Ë£¬filedes[1]ÊDZíʾ¹ÜµÀµÄд¶Ë¡£Èô³É¹¦£¬Ôò·µ»Ø0£¬Ê§°Ü£¬·µ»Ø-1 ¡£ Ö´Ðнá¹ûÈçÏÂËùʾ£º

- 36 -

¿ÉÊÇÈç¹û°Ñµ¹ÊýµÚËÄÐÐwaitpid(pid, NULL, 0);×¢ÊÍÆðÀ´µÄ»°¡£½á¹ûÓÖ»áÔõôÑùÄØ£¿ ÔËÐнá¹ûÈçÏÂËùʾ£º

ÎÒ¿ÉÒÔ´Ó½á¹û²»ÄÑ¿´³ö£¬µ±Ç°½ø³ÌÔÚ×Ó½ø³ÌûÓÐÍ˳ö֮ǰ¾ÍÌáǰÍ˳öÁË¡£

3.±àдһ¸ö³ÌÐò£¬¾¡¿ÉÄÜ¶àµØÊä³öÓйص±Ç°½ø³ÌµÄÐÅÏ¢£ºPID¡¢PPID¡¢´ò¿ªÎļþ¡¢µ±Ç°Ä¿Â¼¡¢niceÖµµÈ¡£ÄãÈçºÎÈ·¶¨ÎļþÊÇ·ñ´ò¿ª£¿Èç¹û¶à¸öÎļþÃèÊö·û±íʾͬһ¸öÎļþ£¬Çë¼òҪ˵Ã÷¡££¨Í¬ÑùµØ£¬ÈçºÎÈ·¶¨£¿£© ʾÀýÈçÏÂËùʾ£º #include #include #include #include #include #include

int main(int argc, char *argv) { int fd[2];

int len,n,fd1,fd2; pid_t pid; pid_t current_process; pid_t parent_process; char filename[10]; char childbuf[10]; if (pipe(fd) < 0) {

perror(\ exit(1); }

//create the child process if ((pid = fork()) < 0) { perror(\ exit(1);

- 37 -

}

if (pid == 0) {} else {

close(fd[0]);

printf(\ current_process=getpid(); parent_process=getppid();

printf(\ printf(\ printf(\ scanf(\

if( (fd1=open(filename,O_RDONLY))>=0) {

printf(\ } if( (fd2=open(filename,O_WRONLY))>=0) {

printf(\ }

waitpid(pid, NULL, 0); return 0; } }

˵Ã÷£ºfd1£¬fd2 ÊÇÎļþÃèÊö·û£¬±íʾͬһ¸öÎļþcai.txt¡£µ«ÊÇ×÷Óò»Í¬¡£ ÔËÐнá¹ûÈçÏÂËùʾ£º

4.±àдһ¸ö³ÌÐò£¬Ëû´´½¨Ò»¸ö×Ó½ø³Ì¡£¸¸½ø³ÌÏò×Ó½ø³Ì·¢ËÍÒ»¸öÐźţ¬È»ºóµÈ´ý×Ó½ø³ÌÖÕÖ¹£»×Ó½ø³Ì½ÓÊÕÐźţ¬Êä³ö×Ô¼ºµÄ״̬ÐÅÏ¢£¬×îºóÖÕÖ¹×Ô¼º¡£ ʾÀýÈçÏÂËùʾ£º #include #include #include #include #include int main(void ) { pid_t pid; int status,retval; if((pid=fork())<0)

- 38 -

{ printf(\ exit(EXIT_FAILURE); } if(pid==0) {

printf(\ printf(\

printf(\ sleep(1); kill(getpid(),NULL); } else {

printf(\ printf(\ printf(\ if( (kill(pid, SIGTERM))<0) { printf(\ }

else {

printf(\ } waitpid(pid, NULL,0); } }

ÔËÐнá¹ûÈçÏÂËùʾ£º

- 39 -

µÚÆßÕÂ

- 40 -

ÁªÏµ¿Í·þ£º779662525#qq.com(#Ìæ»»Îª@)