linuxµÄechoÃüÁî, ÔÚshell±à³ÌÖм«Îª³£ÓÃ, ÔÚÖÕ¶ËÏ´òÓ¡±äÁ¿valueµÄʱºòÒ²Êdz£³£Óõ½µÄ, Òò´ËÓбØÒªÁ˽âÏÂechoµÄÓ÷¨
echoÃüÁîµÄ¹¦ÄÜÊÇÔÚÏÔʾÆ÷ÉÏÏÔʾһ¶ÎÎÄ×Ö£¬Ò»°ãÆðµ½Ò»¸öÌáʾµÄ×÷Óá£
¸ÃÃüÁîµÄÒ»°ã¸ñʽΪ£º echo [ -n ] ×Ö·û´®
ÆäÖÐÑ¡Ïîn±íʾÊä³öÎÄ×Öºó²»»»ÐУ»×Ö·û´®ÄܼÓÒýºÅ£¬Ò²Äܲ»¼ÓÒýºÅ¡£ÓÃechoÃüÁîÊä³ö¼ÓÒýºÅµÄ×Ö·û´®Ê±£¬½«×Ö·û´®ÔÑùÊä³ö£»ÓÃechoÃüÁîÊä³ö²»¼ÓÒýºÅµÄ×Ö·û´®Ê±£¬½«×Ö·û´®Öеĸ÷¸öµ¥´Ê×÷Ϊ×Ö·û´®Êä³ö£¬¸÷×Ö·û´®Ö®¼äÓÃÒ»¸ö¿Õ¸ñ·Ö¸î¡£
¹¦ÄÜ˵Ã÷£ºÏÔʾÎÄ×Ö¡£
Óï ¡¡ ·¨£ºecho [-ne][×Ö·û´®]»ò echo [--help][--version]
²¹³ä˵Ã÷£ºecho»á½«ÊäÈëµÄ×Ö·û´®ËÍÍù±ê×¼Êä³ö¡£Êä³öµÄ×Ö·û´®¼äÒÔ¿Õ°××Ö·û¸ô¿ª, ²¢ÔÚ×îºó¼ÓÉÏ»»Ðкš£
²Î¡¡¡¡ Êý£º-n ²»ÒªÔÚ×îºó×Ô¶¯»»ÐÐ
-e Èô×Ö·û´®ÖгöÏÖÒÔÏÂ×Ö·û£¬ÔòÌØ±ð¼ÓÒÔ´¦Àí£¬¶ø²»»á½«Ëüµ±³ÉÒ»°ã
ÎÄ×ÖÊä³ö£º
\a ·¢³ö¾¯¸æÉù£»
\b ɾ³ýǰһ¸ö×Ö·û£»
\c ×îºó²»¼ÓÉÏ»»ÐзûºÅ£»
\f »»Ðе«¹â±êÈÔ¾ÉÍ£ÁôÔÚÔÀ´µÄλÖã»
\n »»ÐÐÇÒ¹â±êÒÆÖÁÐÐÊ×£»
\r ¹â±êÒÆÖÁÐÐÊ×£¬µ«²»»»ÐУ»
\t ²åÈëtab£»
\v Óë\fÏàͬ£» ......
Shell±¾ÉíÊÇÒ»¸öÓÃCÓïÑÔ±àдµÄ³ÌÐò£¬ËüÊÇÓû§Ê¹ÓÃLinuxµÄÇÅÁº¡£Shell¼ÈÊÇÒ»ÖÖÃüÁîÓïÑÔ£¬ÓÖÊÇÒ»ÖÖ³ÌÐòÉè¼ÆÓïÑÔ¡£×÷ΪÃüÁîÓïÑÔ£¬Ëü½»»¥Ê½µØ½âÊͺÍÖ´ÐÐÓû§ÊäÈëµÄÃüÁ×÷Ϊ³ÌÐòÉè¼ÆÓïÑÔ£¬Ëü¶¨ÒåÁ˸÷ÖÖ±äÁ¿ºÍ²ÎÊý£¬²¢ÌṩÁËÐí¶àÔڸ߼¶ÓïÑÔÖвžßÓеĿØÖƽṹ£¬°üÀ¨Ñ»·ºÍ·ÖÖ§¡£ËüËäÈ»²»ÊÇLinuxϵͳºËÐĵÄÒ»²¿·Ö£¬µ«Ëüµ÷ÓÃÁËϵͳºËÐĵĴ󲿷ֹ¦ÄÜÀ´Ö´ÐгÌÐò¡¢½¨Á¢Îļþ²¢ÒÔ²¢Ðеķ½Ê½Ðµ÷¸÷¸ö³ÌÐòµÄÔËÐС£Òò´Ë£¬¶ÔÓÚÓû§À´Ëµ£¬shellÊÇ×îÖØÒªµÄʵÓóÌÐò£¬ÉîÈëÁ˽âºÍÊìÁ·ÕÆÎÕshellµÄÌØÐÔ¼«ÆäʹÓ÷½·¨£¬ÊÇÓúÃLinuxϵͳµÄ¹Ø¼ü¡£¿ÉÒÔ˵£¬shellʹÓõÄÊìÁ·³Ì¶È·´Ó³ÁËÓû§¶ÔLinuxʹÓõÄÊìÁ·³Ì¶È¡£
¡¡¡¡Ò»¡¢Ê²Ã´ÊÇshell
¡¡¡¡µ±Ò»¸öÓû§µÇ¼Linuxϵͳ֮ºó£¬ÏµÍ³³õʼ»¯³ÌÐòinit¾ÍΪÿһ¸öÓû§ÔËÐÐÒ»¸ö³ÆÎªshell(Íâ¿Ç)µÄ³ÌÐò¡£ÄÇô£¬shellÊÇÊ²Ã´ÄØ£¿È·ÇÐÒ»µã˵£¬shell¾ÍÊÇÒ»¸öÃüÁîÐнâÊÍÆ÷£¬ËüΪÓû§ÌṩÁËÒ»¸öÏòLinuxÄں˷¢ËÍÇëÇóÒÔ±ãÔËÐгÌÐòµÄ½çÃæÏµÍ³¼¶³ÌÐò£¬Óû§¿ÉÒÔÓÃshellÀ´Æô¶¯¡¢¹ÒÆð¡¢Í£Ö¹ÉõÖÁÊDZàдһЩ³ÌÐò¡£
¡¡¡¡µ±Óû§Ê¹ÓÃLinuxʱÊÇͨ¹ýÃüÁîÀ´Íê³ÉËùÐ蹤×÷µÄ¡£Ò»¸öÃüÁî¾ÍÊÇÓû§ºÍshellÖ®¼ä¶Ô»°µÄÒ»¸ö»ù±¾µ¥Î»£¬ËüÊÇÓɶà¸ö×Ö·û×é³É²¢ÒÔ»»ÐнáÊøµÄ×Ö·û´®¡£shell½âÊÍÓ ......
1.fork
´´½¨Ò»¸öнø³Ì
2.clone
°´Ö¸¶¨Ìõ¼þ´´½¨×Ó½ø³Ì
3.execve
ÔËÐпÉÖ´ÐÐÎļþ
4.exit
ÖÐÖ¹½ø³Ì
5._exit
Á¢¼´ÖÐÖ¹µ±Ç°½ø³Ì
6.getdtablesize
½ø³ÌËùÄÜ´ò¿ªµÄ×î´óÎļþÊý
7.getpgid
»ñȡָ¶¨½ø³Ì×é±êʶºÅ
8.setpgid
ÉèÖÃÖ¸¶¨½ø³Ì×é±êÖ¾ºÅ
9.getpgrp
»ñÈ¡µ±Ç°½ø³Ì×é±êʶºÅ
10.setpgrp
ÉèÖõ±Ç°½ø³Ì×é±êÖ¾ºÅ
11.getpid
»ñÈ¡½ø³Ì±êʶºÅ
12.getppid
»ñÈ¡¸¸½ø³Ì±êʶºÅ
13.getpriority
»ñÈ¡µ÷¶ÈÓÅÏȼ¶
......
¹ØÓÚlinuxµÄÎļþȨÏÞ£¬Á˽âÒ»Ïµļ¸¸öÒªµã¾ÍÐÐÁË£¬Ê×ÏÈlinuxÓÐÓû§×éµÄ¸ÅÄÿ¸öÓû§×éÓ÷ÖÅäÓÐÒ»¸öid,ÓÃÓÚΨһµÄ±êʶ£¬¿ÉÒÔÓÃÓÚ·½±ãÖ¸¶¨´ËÓû§×éÖеÄÓû§²Ù×÷ijЩÎļþµÄȨÏÞ¡£Í¬Ñùÿ¸öÓû§Ò²ÓµÓÐÒ»¸öÓû§id£¬ÓÃÓÚΨһ±êʶÓû§£¬¶ø¶ÔÓÚÿ¸öÎļþÓà ls -l -a ¾Í¿ÉÒÔÏÔʾµ±Ç°Ä¿Â¼ÏÂÃæËùÓеÄÎļþÎļþ¼ÐµÄÏêϸÐÅÏ¢¡£ÀýÈ磺ÎÒÃÇÔÚÓû§wup86µÄhomeĿ¼ÏÂÃæÓÃecho abc>wupeng.txt¼´½¨Á¢Ò»¸öwupeng.txtÎļþÄÚÈÝΪ“abc”,ÓÚÊÇÎÒÃÇÔÚÓÃls -l -a¾Í»áÈçÏÂËùʾ£º
×ÜÓÃÁ¿ 12
drwxrwxr-x 2 wup86 wup86 4096 3ÔÂ 15 00:11 .
drwx------ 3 wup86 wup86 4096 3ÔÂ 15 00:17 ..
-rw-rw-r-- 1 wup86 wup86 4 3ÔÂ 15 00:11 wupeng.txt
Ê×ÏÈ˵ÿÐпªÍ·10¸ö×Öĸ»òÕßÊÇ-ºÅ¡£ÆäÖУ¬µÚһλÊÇÎļþÀàÐÍ£¬¼´ÊÇÎļþ»¹ÊÇĿ¼£¬Èç¹ûÊÇÎļþÔòΪ-£¬Èç¹ûÊÇĿ¼ÔòΪd£¬½ÓÏÂÀ´3λÖмäÄÇÈý¸ö´ú±íµÄÊÇËùÓÐÕßuserȨÏÞ£¬È»ºó´ú±íµÄÊÇ×éȺgroupȨÏÞ£¬×îºóÈýλ´ú±íµÄÊÇÆäËûÈËotherȨÏÞ£¬ÆäÖУºr ±íʾÎļþ¿É¶Á£¬w ±íʾÎļþ¿Éд£¬x ±íʾÎļþÈç¹ ......
linuxÄÚºËprintkµ÷ÊÔ£¨ÕªÂ¼¡¶Linux°²È«Ìåϵ·ÖÎöÓë±à³Ì¡·£©
linuxÄÚºËprintkµ÷ÊÔ£¨ÕªÂ¼¡¶Linux°²È«Ìåϵ·ÖÎöÓë±à³Ì¡·£©
1 printk¼°¿ØÖÆÌ¨µÄÈÕÖ¾¼¶±ð
º¯ÊýprintkµÄʹÓ÷½·¨ºÍprintfÏàËÆ£¬ÓÃÓÚÄں˴òÓ¡ÏûÏ¢¡£printk¸ù¾ÝÈÕÖ¾¼¶±ð£¨loglevel£©¶ÔÏûÏ¢½øÐзÖÀà¡£
ÈÕÖ¾¼¶±ðÓú궨Ò壬ÈÕÖ¾¼¶±ðºêÕ¹¿ªÎªÒ»¸ö×Ö·û´®£¬ÔÚ±àÒëʱÓÉÔ¤´¦ÀíÆ÷½«ËüºÍÏûÏ¢Îı¾Æ´½Ó³ÉÒ»¸ö×Ö·û´®£¬Òò´Ëprintk º¯ÊýÖÐÈÕÖ¾¼¶±ðºêºÍ¸ñʽ×Ö·û´®¼ä²»ÄÜÓжººÅ¡£
ÏÂÃæÊÇÁ½¸öprintkµÄÀý×Ó£¬Ò»¸öÓÃÓÚ´òÓ¡µ÷ÊÔÐÅÏ¢£¬ÁíÒ»¸öÓÃÓÚ´òÓ¡ÁÙ½çÌõ¼þÐÅÏ¢¡£
printk(KERN_DEBUG "Here I am: %s:%i\n", _ _FILE_ _, _ _LINE_ _);
printk(KERN_CRIT "I'm trashed; giving up on %p\n", ptr);
printkµÄÈÕÖ¾¼¶±ð¶¨ÒåÈçÏ£¨ÔÚlinux26/includelinux/kernel.hÖУ©£º
#defineKERN_EMERG"<0>"/*½ô¼±Ê¼þÏûÏ¢£¬ÏµÍ³±ÀÀ£Ö®Ç°Ìáʾ£¬±íʾϵͳ²»¿ÉÓÃ*/
#defineKERN_ALERT"<1>"/*±¨¸æÏûÏ¢£¬±íʾ±ØÐëÁ¢¼´²ÉÈ¡´ëÊ©*/
#defineKERN_CRIT"<2>"/*ÁÙ½çÌõ¼þ£¬Í¨³£Éæ¼°ÑÏÖØµÄÓ²¼þ»òÈí¼þ²Ù×÷ʧ°Ü*/
#defineKERN_ERR"<3>"/*´íÎóÌõ¼þ£¬Çý¶¯³ÌÐò³£ÓÃKERN_ERRÀ´±¨¸æÓ²¼þµÄ´íÎó*/
#defineKERN_WARNING"<4>"/*¾¯¸ ......
Linux kernel ¹ØÓÚkeyboard²¿·Ö
keyboard.c ÓÃÓÚ´¦ÀíºÍ¼üÅÌÏà¹ØµÄinput_handler¡£ÆäÖаüÀ¨ºóÐøµÄ¼üÂëת»»ºÍÊä³ö
atkbd.c ³£ÓõļüÅ̲¼¾Ö£¬ÓÃÓÚ»ñµÃɨÃèÂ룬²¢½«Æä·¢Ë͵½input_handler Á´±íÖÐ
struct input_handler kbd_handler; ¼´Îªinput_handler Á´±íÖеÄÒ»¸öhandler
Òªhook¼üÅÌ»òÕ߯äËûinput²ãϵÄÉ豸ÐÅÏ¢£¬¾Í¿ÉÒÔ×Ô¼º´´½¨Ò»¸öhandler£¬²¢Ê¹ÓÃinput_register_handler ½«Æä×¢²áµ½input_handler Á´±íÖУ¬ÕâÑùÔÚʹÓÃinput_event·¢ËÍeventʱ£¬¾Í¿ÉÒÔÔÚinput_handlerÖв¶»ñÏà¹ØÊ¼þ²¢´¦Àí ......