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 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 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 - 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 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 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 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 - 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 -