initÊÇLinuxϵͳÀïµÄ¸ù½ø³Ì£¬ÊÇϵͳËùÓнø³ÌµÄ׿ÏÈ¡£ËüµÄÖ÷Òª×÷ÓÃÊǸù¾Ý¼Ç¼ÔÚ/etc/inittabÀïµÄÒ»¸ö½Å±¾£¨script£©³ÌÐò²úÉú½ø³Ì¡£Õâ¸öÎļþͨ³£ÓÃÓÚ¿ØÖÆÓû§µÄµÇ¼ģʽ¡£LinuxϵͳµÄÓÐЧµÇ¼ģʽÓÐ0~9¹²Ê®ÖÖ£¬²»¹ýÑØÓÃUNIXϵͳµÄÖÁ¶à6ÖÖµÄÏÞÖÆ£¬Ò»°ãÖ»ÓÐ1µ½6ÓÐЧ¡£
¡¡¡¡initÒ»°ãÔÚϵͳÆô¶¯Ê±×Ô¶¯ÔËÐУ¬Ò²¿ÉÒÔÓÉrootÓû§µ÷Óá£ËüµÄ×÷ÓÃÊÇÇл»ÏµÍ³µÄÔËÐÐ״̬¡£ËüµÄÃüÁî¸ñʽÊÇ£ºinit NUM¡´»Ø³µ¡µ£¬ÆäÖÐNUM±íʾ1µ½6µÄÈÎÒ»Êý×Ö¡£
¡¡¡¡6ÖÖģʽÖÐÓÐÁ½ÖÖÊÇϵͳÄÚ¶¨µÄ£º
¡¡¡¡0£ºÍ£Ö¹ÏµÍ³ÔËÐС£init 0¡´»Ø³µ¡µÏ൱ÓÚ halt¡´»Ø³µ¡µ¡£
¡¡¡¡6£ºÖØÆôϵͳ¡£init 6¡´»Ø³µ¡µÏ൱ÓÚ reboot¡´»Ø³µ¡µ¡£
¡¡¡¡Èç¹ûÄãÁ˽â/etc/inittabÎļþ£¬¾ÍǧÍò²»Òª°Ñ0ÉèΪȱʡµÇ¼ģʽ£¬·ñÔòÄãµÄLinuxµÄÔËÐоÍÖ»ÄÜÁ½µãÒ»ÏßÁË——¿ª»ú←→Í£»ú£¬»òÕßÊÇ¿ª»ú←→ÖØÆôµÄÎÞÏÞÑ»·¡£ÆäËûµÄ4ÖÖģʽʵ¼ÊÉÏÊÇÓɲÙ×÷ϵͳȷ¶¨µÄ¡£Èç¹ûÄãÔ¸ÒâÐÞ¸ÄLinuxµÄÔ´´úÂ룬ÄãÒ²¿ÉÒÔ¶¨ÒåÕâ4ÖÖ£¨ÉõÖÁ6ÖÖ£©Ä£Ê½µÄʵ¼Ê¹¦ÄÜ¡£ÆäʵֻҪ֪µÀLinux·¢²¼³§É̵ÄÔ¼¶¨¾Í×ã¹»ÁË£¬ÏÂÃæÎÒÃǾÍÒÔÀ¶µã2.0ΪÀý£¬¿´¿´initµÄ³£ÓÃÔ¼¶¨°É——
¡¡¡¡init 1——½øÈëµ¥Óû§Ä£Ê½¡£ÕâºÍ¿ª»úÊÇÑ¡ÔñSafe ModeÊÇÒ»Ñ ......
Ê×ÏȽéÉÜÏÂpthread_cond_t¡£ ÔÚLinuxϳÆÖ®Îª×´Ì¬±äÁ¿£¬ÓëÖ®Ïà¹ØµÄÓÐÏÂÃæ¼¸¸öAPI:
int pthread_cond_init (pthread_cond_t *COND,pthread_condattr_t *cond_ATTR);
int pthread_cond_signal (pthread_cond_t *COND);
int pthread_cond_broadcast (pthread_cond_t *COND);
int pthread_cond_wait (pthread_cond_t *COND, pthread_mutex_t *MUTEX);
int pthread_cond_timedwait (pthread_cond_t *COND, pthread_mutex_t *MUTEX, const struct timespec *ABSTIME);
int pthread_cond_destroy (pthread_cond_t *COND);
ÕâÀï¾Í½²ÏÂ2¸öapi£¬pthread_cond_signalºÍpthread_cond_wait£¬Ò»°ãµÄÓ÷¨ÈçÏ£º
{
pthread_mutex_lock(lock)
...
pthread_cond_wait(cond, lock);
...
pthread_cond_mutex_unlock(lock);
}
pthread_cond_wait»á½âËølock£¬È»ºóÔÚcondÉϵȴý,ÕâÁ½²½ÊÇatomic operation. µ±pthread_cond_wait·µ»ØÊ±£¬»áͬʱ¶ÔlockÉÏËø. ÕâÀïÎÒµÄÀí½âÊÇ£¬Èç¹û»ñÈ¡²»µ½lockËø£¬¼´Ê¹c ......
ÏàÐÅg r e pÊÇU N I XºÍL I N U XÖÐʹÓÃ×î¹ã·ºµÄÃüÁîÖ®Ò»¡£g r e p£¨È«¾ÖÕýÔò±í´ïʽ°æ±¾£©ÔÊÐí¶ÔÎı¾Îļþ½øÐÐģʽ²éÕÒ¡£Èç¹ûÕÒµ½Æ¥Åäģʽ£¬ g r e p´òÓ¡°üº¬Ä£Ê½µÄËùÓÐÐС£g r e pÖ§³Ö»ù±¾ÕýÔò±í´ïʽ£¬Ò²Ö§³ÖÆäÀ©Õ¹¼¯¡£g r e pÓÐÈýÖÖ±äÐΣ¬¼´£º
G r e p£º ±ê×¼g r e pÃüÁ±¾ÕÂ´ó²¿·ÖÆª·ù¼¯ÖÐÌÖÂ۴˸ñʽ¡£
E g r e p£º À©Õ¹g r e p£¬Ö§³Ö»ù±¾¼°À©Õ¹µÄÕýÔò±í´ïʽ£¬µ«²»Ö§³Ö\ qģʽ·¶Î§µÄÓ¦Óã¬ÓëÖ®Ïà¶ÔÓ¦µÄһЩ¸ü¼Ó¹æ·¶µÄģʽ£¬ÕâÀïÒ²²»ÓèÌÖÂÛ¡£
F g r e p£º ¿ìËÙg r e p¡£ÔÊÐí²éÕÒ×Ö·û´®¶ø²»ÊÇÒ»¸öģʽ¡£²»ÒªÎó½âµ¥´Êf a s t£¬Êµ¼ÊÉÏËüÓëg r e pËÙ¶ÈÏ൱¡£
ÔÚ±¾ÕÂÖÐÎÒÃǽ«ÌÖÂÛ£º
•grep£¨²ÎÊý£©Ñ¡Ïî¡£
•Æ¥Åäg r e pµÄÒ»°ãģʽ¡£
•ֻƥÅä×Öĸ»òÊý×Ö£¬»òÁ½Õß»ìÓá£
•Æ¥Åä×Ö·û´®·¶Î§¡£
ʵ¼ÊÉÏÓ¦¸ÃÖ»ÓÐÒ»¸ög r e pÃüÁµ«²»ÐÒµÄÊÇûÓÐÒ»ÖÖ¼òµ¥ÐÎʽÄܹ»Í³Ò»´¦Àíg r e pµÄÈýÖÖ±äÐΣ¬½«Ö®ºÏ¶øÎªÒ»£¬²¢±£³Ög r e pµ¥Ä£Ê½´¦ÀíʱµÄËÙ¶È¡£GNU grepËäÈ»ÔÚÈÚºÏÈýÖÖ±äÐÎÉÏÂõ½øÁËÒ»´ó²½£¬µ«ÈÔ²»ÄÜÇø·ÖÔª×Ö·ûµÄ»ù±¾¼¯ºÍÀ©Õ¹¼¯¡£ÉÏÒ»ÕÂÖ»ÌÖÂÛÁË»ù±¾µÄÕýÔò±í´ïʽ£¬µ«Ôڲ鿴g r e pÊ±Ò²Éæ¼°µ½Ò»Ð©À©Õ¹Ä£Ê½µÄÆ¥Åä²Ù×÷¡£È»¶ø£¬Ê×ÏÈ»¹ÊÇÏÈÌÖÂÛÒ»ÏÂÔÚg r e pºÍf g r ......
Table of Contents
1. awk¼ò½é
2. awkÃüÁî¸ñʽºÍÑ¡Ïî
2.1. awkµÄÓï·¨ÓÐÁ½ÖÖÐÎʽ
2.2. ÃüÁîÑ¡Ïî
3. ģʽºÍ²Ù×÷
3.1. ģʽ
3.2. ²Ù×÷
4. awkµÄ»·¾³±äÁ¿
5. awkÔËËã·û
6. ¼Ç¼ºÍÓò
6.1. ¼Ç¼
6.2. Óò
6.3. Óò·Ö¸ô·û
7. gawkרÓÃÕýÔò±í´ïʽԪ×Ö·û
8. POSIX×Ö·û¼¯
9. Æ¥Åä²Ù×÷·û(~)
10. ±È½Ï±í´ïʽ
11. ·¶Î§Ä£°å
12. Ò»¸öÑéÖ¤passwdÎļþÓÐЧÐÔµÄÀý×Ó
13. ¼¸¸öʵÀý
14. awk±à³Ì
14.1. ±äÁ¿
14.2. BEGINÄ£¿é
14.3. ENDÄ£¿é
14.4. ÖØ¶¨ÏòºÍ¹ÜµÀ
14.5. Ìõ¼þÓï¾ä
14.6. Ñ»·
14.7. Êý×é
14.8. awkµÄÄÚ½¨º¯Êý
15. How-to
1. awk¼ò½é
awk ÊÇÒ»ÖÖ±à³ÌÓïÑÔ£¬ÓÃÓÚÔÚlinux/unix϶ÔÎı¾ºÍÊý¾Ý½øÐд¦Àí¡£Êý¾Ý¿ÉÒÔÀ´×Ô±ê×¼ÊäÈë¡¢Ò»¸ö»ò¶à¸öÎļþ£¬»òÆäËüÃüÁîµÄÊä³ö¡£ËüÖ§³ÖÓû§×Ô¶¨Ò庯ÊýºÍ¶¯Ì¬ÕýÔò±í´ïʽµÈÏȽø¹¦ÄÜ£¬ÊÇ linux/unixϵÄÒ»¸öÇ¿´ó±à³Ì¹¤¾ß¡£ËüÔÚÃüÁîÐÐÖÐʹÓ㬵«¸ü¶àÊÇ×÷Ϊ½Å±¾À´Ê¹Óá£awkµÄ´¦ÀíÎı¾ºÍÊý¾ÝµÄ·½Ê½ÊÇÕâÑùµÄ£¬ËüÖðÐÐɨÃèÎļþ£¬´ÓµÚÒ»Ðе½×îºóÒ»ÐУ¬Ñ°ÕÒÆ¥ÅäµÄÌØ¶¨Ä£Ê½µÄÐУ¬²¢ÔÚÕâЩÐÐÉϽøÐÐÄãÏëÒªµÄ²Ù×÷¡£Èç¹ûûÓÐÖ¸¶¨´¦Àí¶¯×÷£¬Ôò°ÑÆ¥ÅäµÄÐÐÏÔʾµ½±ê×¼Êä³ö (ÆÁÄ»)£¬Èç¹ûûÓÐÖ¸¶¨Ä£Ê½£¬ÔòËùÓб»²Ù×÷ËùÖ¸¶¨µÄÐж¼±»´¦Àí¡£awk·Ö±ð´ú ......
ÎÄÕÂÀ´Ô´£ºhttp://blog.chinaunix.net/u3/94284/showart_1981110.html
ÔÚLinuxϵͳÖУ¬ÖÕ¶ËÉ豸·Ç³£ÖØÒª£¬Ã»ÓÐÖÕ¶ËÉ豸£¬ÏµÍ³½«ÎÞ·¨ÏòÓû§·´À¡ÐÅÏ¢£¬LinuxÖаüº¬¿ØÖÆÌ¨¡¢´®¿ÚºÍαÖÕ¶Ë3ÀàÖÕ¶ËÉ豸¡£
14.1ÖÕ¶ËÉ豸
ÔÚLinuxϵͳÖУ¬ÖÕ¶ËÊÇÒ»ÖÖ×Ö·ûÐÍÉ豸£¬ËüÓжàÖÖÀàÐÍ£¬Í¨³£Ê¹ÓÃttyÀ´¼ò³Æ¸÷ÖÖÀàÐ͵ÄÖÕ¶ËÉ豸¡£ttyÊÇTeletypeµÄËõд£¬TeletypeÊÇ×îÔç³öÏÖµÄÒ»ÖÖÖÕ¶ËÉ豸£¬ºÜÏñµç´«´ò×Ö»ú£¬ÊÇÓÉTeletype¹«Ë¾Éú²úµÄ¡£LinuxÖаüº¬Èçϼ¸ÀàÖÕ¶ËÉ豸£º
1¡¢´®Ðж˿ÚÖÕ¶Ë£¨/dev/ttySn£©
´®Ðж˿ÚÖÕ¶Ë£¨Serial Port Terminal£©ÊÇʹÓüÆËã»ú´®Ðж˿ÚÁ¬½ÓµÄÖÕ¶ËÉ豸¡£¼ÆËã»ú°Ñÿ¸ö´®Ðж˿ڶ¼¿´×÷ÊÇÒ»¸ö×Ö·ûÉ豸¡£ÕâЩ´®Ðж˿ÚËù¶ÔÓ¦µÄÉ豸Ãû³ÆÊÇ /dev/ttyS0£¨»ò/dev/tts/0£©¡¢/dev/ttyS1£¨»ò/dev/tts/1£©µÈ£¬É豸ºÅ·Ö±ðÊÇ£¨4,0£©¡¢£¨4,1£©µÈ¡£
ÔÚÃüÁîÐÐÉϰѱê×¼Êä³öÖØ¶¨Ïòµ½¶Ë¿Ú¶ÔÓ¦µÄÉ豸ÎļþÃûÉϾͿÉÒÔͨ¹ý¸Ã¶Ë¿Ú·¢ËÍÊý¾Ý£¬ÀýÈ磬ÔÚÃüÁîÐÐÌáʾ·ûϼüÈ룺 echo test > /dev/ttyS1»á°Ñµ¥´Ê“test”·¢Ë͵½Á¬½ÓÔÚttyS1¶Ë¿ÚµÄÉ豸ÉÏ¡£
2.αÖÕ¶Ë£¨/dev/pty/£©
αÖÕ¶Ë£¨Pseudo Terminal£©Ê ......
ºÜÏë½Ó´¥Ò»ÏÂLinuxµÄÄںˣ¬×î½ü¼ÓÈëÁËLKML£¨Linux Kernel Mailing List£©£¬ÓÌÈ糱ˮ°ãµÄmailÓ¿ÈëÁËÎÒµÄGmail>_<
Ò»¿ªÊ¼ºÜÃÔ㣬Èç´ËÅÓ´óÁËLinuxÄں˴úÂ룬´ÓºÎ¿ªÊ¼£¿ÍøÉÏ¿´µ½ÁËÒ»Ìõ½¨Ò飺´ÓLinuxÉ豸Çý¶¯µÄ±àд¿ªÊ¼¡£
ÓÚÊÇÕÒµ½ÁËÒ»±¾Õâ·½Ãæ±È½ÏºÃµÄ½Ì²Ä£ºLinux Device Drivers, 3rd Edition£¨LDD3£©
²»¹ýÕâ±¾ÊéÀïÃæ½²µÄµÚÒ»¸öHello world³ÌÐò¾Í²»ÖªµÀ¸ÃÈçºÎ±àÒ룬ÊéÀï½²µÄÒ²²»ÊǺÜÏêϸ£¬¿ÉÄÜÊÇÈÏΪ¶ÁÕßÒѾÓÐÏà¹ØµÄ֪ʶÁË£¬¿Éϧ°³Ã»ÓÐToT
ºóÀ´ÍøÉÏÓÖÕÒµ½ÁËһƪÎÄÕ£¬½²µÃ±È½ÏÏêϸ£¬ÕâÀï¸ø¸öÁ´½Óhttp://linux.chinaunix.net/bbs/viewthread.php?tid=904034&highlight=Godbach
½ÓÏÂÀ´¾ÍÊÇÕû¸ö±àÒëµÄ¹ý³Ì
dolphin@dolphin-laptop:~/Documents/LDD$ gedit Makefile
dolphin@dolphin-laptop:~/Documents/LDD$ gedit hello.c
dolphin@dolphin-laptop:~/Documents/LDD$ make
make -C /lib/modules/2.6.31-21-generic/build M=/home/dolphin/Documents/LDD modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-21-generic'
CC [M] /home/dolphin/Documents/LDD/hello.o
Building modules, stage 2.
MODPOST 1 mod ......