linuxϵͳ¼°±à³Ì»ù´¡¿Îºó´ð°¸ ÏÂÔر¾ÎÄ

find / -xdev ¨Cmtime $1 ¨Csize +$2 ¨Cprint ÑéÖ¤¸Ã½Å±¾Ö´Ðнá¹û¡£ ´ð£º

´Ó¸ùĿ¼¿ªÊ¼²éÕÒËùÓÐ$1СʱǰÐ޸ģ¬´óС´óÓÚ$2¿éµÄÎļþ¡£ 8£®Ò»¸öshell½Å±¾£¬ÄÚÈÝÈçÏ£º

echo ¨Cn ¡°which color do you like?¡± read color case ¡°$color¡± in [Bb]l??)

echo I feel $color echo The sky is $color;; [Gg]ree*)

echo $color is for trees echo $color is for seasick;; red | orange)

echo $color is very warm!;; *)

echo no such color as $color;; esac

echo ¡°out of case¡± ÑéÖ¤¸Ã½Å±¾Ö´Ðнá¹û¡£ ´ð£º

9£®Éè¼ÆÒ»¸öshell½Å±¾£ºÇóÃüÁîÐÐÉÏËùÓÐÕûÊýºÍ¡£ ´ð£º sum=0

while [ $# != 0 ] do

let sum=sum+$1 shift done

echo ¡°the sum of arguments is $sum¡±

10£®Éè¼ÆÒ»¸öshell½Å±¾£ºÅжϵ±Ç°¹¤×÷Ŀ¼ÏÂËùÓеÄÎļþÀàÐÍ£¬Èç¹ûÊÇĿ¼ÏÔʾĿ¼Ãû£¬Èç¹ûÊÇÎļþ²é¿´ÎļþÄÚÈÝ£¬Èç¹û¶¼²»ÊÇ£¬ÏÔʾÌáʾÐÅÏ¢¡£

´ð£º

for file in ./* do

if [ -d ¡°$file¡± ] then

ls ¡°$file¡±

elif [ -f ¡°file¡± ] then

more ¡°$file¡± else

echo ¡°$fiel is not a directory or a regular file.s¡± done

µÚ7ÕÂ Ï°Ìâ´ð°¸

1£®gcc±àÒë¹ý³ÌÒ»°ã·ÖΪÄļ¸¸ö½×¶Î£¿¸÷½×¶ÎµÄÖ÷Òª¹¤×÷ÊÇʲô£¿

´ð£ºgcc±àÒë¹ý³ÌÒ»°ã·ÖΪԤ´¦Àí¡¢±àÒë¡¢»ã±à¡¢Á´½ÓËĸö½×¶Î£¬¸÷½×¶ÎµÄÖ÷Òª¹¤×÷ÈçÏ£º £¨1£©Ô¤´¦Àí½×¶Î

Ôڸý׶Σ¬±àÒëÆ÷½«ÉÏÊö´úÂëÖеÄstdio.h±àÒë½øÀ´¡£GCCÊ×Ïȵ÷ÓÃcpp½øÐÐÔ¤´¦Àí£¬¸ù¾ÝÒÔ×Ö·û#¿ªÍ·µÄÃüÁîÐÞ¸ÄԭʼµÄC³ÌÐò¡£Èçhello.cÖÐ#include Ö¸Áî¸æËßÔ¤´¦ÀíÆ÷¶ÁϵͳͷÎļþstdio.hµÄÄÚÈÝ£¬²¢°ÑËüÖ±½Ó²åÈëµ½³ÌÐòÎı¾ÖÐÈ¥¡£½á¹û¾ÍµÃµ½¾­¹ý±àÒëÔ¤´¦ÀíµÄÔ´´úÂëhello.i¡£

µ«Êµ¼Ê¹¤×÷ÖÐͨ³£²»ÓÃרÃÅÉú³ÉÕâÖÖÎļþ£¬ÒòΪ»ù±¾ÉÏÓò»µ½¡£Èô·ÇÒªÉú³ÉÕâÖÖÎļþ²»¿É£¬¿ÉÒÔÀûÓÃÏÂÃæµÄʾÀýÃüÁî¡£

$gcc -E hello.c -o hello.i £¨2£©±àÒë½×¶Î

GCCµ÷ÓÃcc1¼ì²é´úÂëµÄ¹æ·¶ÐÔ£¬ÊÇ·ñÓÐÓï·¨´íÎóµÈ£¬ÒÔÈ·¶¨´úÂëʵ¼ÊÒª×öµÄ¹¤×÷£¬ÔÚ¼ì²éÎÞÎóºó£¬°Ñ´úÂë·­Òë³É»ã±àÓïÑÔ£¬Éú³É»ã±à´¦ÀíºóµÄ»ã±à´úÂëhello.s¡£Õâ¸ö½×¶Î¶ÔÓ¦µÄGCCÃüÁîÈçÏÂËùʾ¡£ $gcc -S hello.i -o hello.s

»ã±àÓïÑÔÊǷdz£ÓÐÓõģ¬ËüΪ²»Í¬¸ß¼¶ÓïÑÔ²»Í¬±àÒëÆ÷ÌṩÁËͨÓõÄÓïÑÔ¡£È磺C±àÒëÆ÷ºÍFortran±àÒëÆ÷²úÉúµÄÊä³öÎļþÓõĶ¼ÊÇÒ»ÑùµÄ»ã±àÓïÑÔ¡£ £¨3£©»ã±à½×¶Î

GCCµ÷ÓÃas°Ñ±àÒë½×¶ÎÉú³ÉµÄhello.sÎļþת³É±àÒëºóµÄÄ¿±êÎļþhello.o£¬µ«hello.cÖÐËùÒýÓõÄÆäËûÎļþÖк¯Êý£¨Èçprintf£©µÄÄÚ´æλÖÃÉÐ䶨Òå¡£Õâ¸ö½×¶Î¶ÔÓ¦µÄGCCÃüÁîÈçÏÂËùʾ£º $gcc -c hello.s -o hello.o £¨4£©Á´½Ó½×¶Î

GCCµ÷ÓÃld½«³ÌÐòµÄÄ¿±êÎļþÓëËùÐèµÄËùÓи½¼ÓµÄÄ¿±êÎļþÁ¬½ÓÆðÀ´£¬×îÖÕÉú³É¿ÉÖ´ÐÐÎļþ¡£ÈçGCCÕÒµ½hello.cËùµ÷Óõĺ¯Êýprintfº¯Êý¿âËùÔÚλÖÃ/user/lib£¬°Ñº¯ÊýµÄʵÏÖÁ´½Ó½øÀ´£¬Éú³É×îÖյĿÉÖ´ÐÐÎļþhello¡£¿ÉÒÔÀûÓÃÏÂÃæµÄʾÀýÃüÁîÍê³É¡£ $gcc hello.o -o hello

Èç¹ûÎÒÃDz»ÏëÉú³ÉÖмäµÄ¸÷ÀàÐÍÎļþ£¬¿ÉÓÃÈçÏÂÃüÁîÓÉÔ´ÎļþÖ±½Ó±àÒëÁ´½Ó³É¿ÉÖ´ÐÐÎļþ¡£

$gcc hello.c -o hello 2£®¼òÊöGNU gdbµÄ¹¦ÄÜ¡£

´ð£ºgdbÊÇLinuxϵͳÖÐÒ»¸ö¹¦ÄÜÇ¿´óµÄGNUµ÷ÊÔ³ÌÐò£¬Ëü¿ÉÒÔµ÷ÊÔCºÍC++³ÌÐò£¬Ê¹³ÌÐò¿ª·¢ÕßÔÚ³ÌÐòÔËÐÐʱ¹Û²ì³ÌÐòµÄÄÚ²¿½á¹¹ºÍÄÚ´æµÄʹÓÃÇé¿ö¡£gdbÌṩÈçϹ¦ÄÜ£º £¨1£©ÔËÐгÌÐò£¬ÉèÖÃËùÓеÄÄÜÓ°Ïì³ÌÐòÔËÐеIJÎÊýºÍ»·¾³£» £¨2£©¿ØÖƳÌÐòÔÚÖ¸¶¨µÄÌõ¼þÏÂÍ£Ö¹ÔËÐУ» £¨3£©µ±³ÌÐòֹͣʱ£¬¿ÉÒÔ¼ì²é³ÌÐòµÄ״̬£» £¨4£©Ð޸ijÌÐòµÄ´íÎ󣬲¢ÖØÐÂÔËÐгÌÐò£» £¨5£©¶¯Ì¬¼àÊÓ³ÌÐòÖбäÁ¿µÄÖµ£»

£¨6£©¿ÉÒÔµ¥²½ÖðÐÐÖ´ÐдúÂ룬¹Û²ì³ÌÐòµÄÔËÐÐ״̬£» £¨7£©·ÖÎö±ÀÀ£³ÌÐò²úÉúµÄcoreÎļþ¡£ 3£®ÓÃgdbµ÷ÊÔÏÂÃæµÄ³ÌÐò¡£ #include #include #include main () {

char my_string[] = \ my_print (my_string); my_print2 (my_string); }

my_print (char *string) {

printf (\}

my_print2 (char *string) {

char *string2; int size, i;

size = strlen (string);

string2 = (char *) malloc (size + 1); for (i = 0; i < size; i++) string2[size - i] = string[i]; string2[size+1] = `\\0';

printf (\}

´ð£ºgcc -g -o greeting greeting.c

Õâ¸ö³ÌÐòÖ´ÐÐʱÏÔʾ½á¹û: The string is hello there The string printed backward is

Êä³öµÄµÚÒ»ÐÐÊÇÕýÈ·µÄ, µ«µÚ¶þÐдòÓ¡³öµÄ¶«Î÷²¢²»ÊÇÎÒÃÇËùÆÚÍûµÄ¡£ÎÒÃÇËùÉèÏëµÄÊä³öÓ¦¸ÃÊÇ: The string printed backward is ereht olleh¡£

ÓÉÓÚijЩԭÒò, my_print2 º¯ÊýûÓÐÕý³£¹¤×÷¡£ÓÃgdb ¿´µ÷ÊÔ³ÌÐò, ÏȼüÈëÈçÏÂÃüÁ

gdb greeting

-------------------------------------------------------------------------------- ×¢Òâ: ¼ÇµÃÔÚ±àÒë greeting ³ÌÐòʱ°Ñµ÷ÊÔÑ¡Ïî´ò¿ª. -------------------------------------------------------------------------------- ÓÃgdbµÄrunÃüÁîÔËÐÐgreeting¡£ (gdb) run

Starting program: /root/greeting The string is hello there The string printed backward is Program exited with code 040

Õâ¸öÊä³öºÍÔÚ gdb ÍâÃæÔËÐеĽá¹ûÒ»Ñù¡£ ÎÊÌâÊÇ£¬ÎªÊ²Ã´·´Ðò´òӡûÓй¤×÷? ΪÁËÕÒ³öÖ¢½áËùÔÚ, ÔÚ my_print2 º¯ÊýµÄ for Óï¾äºóÉèÒ»¸ö¶Ïµã, ¾ßÌåµÄ×ö·¨ÊÇÔÚ gdb Ìáʾ·ûϼüÈë list ÃüÁîÈý´Î, ÁгöÔ´´úÂ룺 (gdb) list (gdb) list (gdb) list

µÚÒ»´Î¼üÈë list ÃüÁîµÄÊä³öÈçÏ£º

Èç¹û°´Ï»سµ, gdb ½«ÔÙÖ´ÐÐÒ»´Î list ÃüÁî, ¸ø³öÏÂÁÐÊä³ö£º

ÔÙ°´Ò»´Î»Ø³µ½«Áгö greeting ³ÌÐòµÄÊ£Óಿ·Ö:

¸ù¾ÝÁгöµÄÔ´³ÌÐò, ÄãÄÜ¿´µ½ÒªÉè¶ÏµãµÄµØ·½ÔÚµÚ21ÐÐ, ÔÚ gdb ÃüÁîÐÐÌáʾ·ûϼüÈëÈçÏÂÃüÁîÉèÖöϵã: (gdb) break 21

gdb ½«×÷³öÈçϵÄÏìÓ¦: