ÔÚLinuxÄں˴úÂëÖУ¬ÓÐÒ»¸öÐźŴ¦Àí°ó¶¨Æ÷º¯Êýsignal£¬Ëüµ½ÔÐͶ¨ÒåÈçÏ£¬Í¨¹ýman 2 signal¿ÉÒԲ鿴ÆäÔÐÍ¡£
#include <signal.h>
typedef void (*sighandler_t)(int); (1)
sighandler_t signal(int signum,sighandler_t handler); (2)
µÚÒ»¾äÊǰüº¬Í·Îļþ£¬µÚ¶þ¾äÊÇÀàÐͶ¨Ò壬µÚÈý¾ä²ÅÊÇsignalº¯Êýµ½ÕæÕýÉùÃ÷¡£À©Õ¹ÉùÃ÷ºó£¬ÕæÕýµ½ÉùÃ÷Ϊ
void (*signal(int signum,void (*sighandler)(int)))(int); (3)
µÚ£¨3£©¿´ÆðÀ´±ÈµÚ£¨1£©ºÍ£¨2£©¾ä¸üÄÑÀí½â£¬Ê×ÏÈ´Ó£¨1£©£¨2£©ÏÂÊÖ¡£
£¨1£©±íʾsighandler_tÊÇ×Ô¶¨ÒåÀàÐÍ£¬ËüÆäʵÊÇÒ»ÖÖº¯ÊýÖ¸ÕëÀàÐÍ£¬ËüÖ¸Ïòµ½º¯Êýµ½ÐβÎΪint£¬·µ»ØÖµÎªvoid¡£
£¨2£©±íʾsignalº¯Êýµ½ÐβÎÓÐÒ»¸öintÐÍsignum£¬ÒÔ¼°Ò»¸ösighandler_tÐ͵½ÐβÎhandler£¬·µ»ØÒ»¸ösighandler_tÐ͵½Öµ£¬ÓÉ£¨1£©¿ÉÒÔÖªµÀ£ºsighandler_tÊǺ¯ÊýÖ¸ÕëÀàÐÍ£¬ËùÒÔsignalµ½µÚ¶þ¸öÐβÎÊÇÒ»¸öº¯ÊýÖ¸Õ룬²¢ÇÒsignalº¯Êý·µ»ØÒ»¸öº¯ÊýÖ¸Õë¡£ËüÃÇÖ¸Ïòµ½º¯ÊýÀàÐͶ¼ÊǾßÓÐÒ»¸öintÐβΣ¬·µ»ØÎªvoidµ½º¯Êý¡£
ÃԻ󣺶ÔÓÚsignalº¯Êý£¬¶ÔÓÚ³õѧÕßÀ´Ëµ£¬²»½öÊÇÓï·¨Éϵ½ÃԻ󣬻¹ÓÐÓ¦ÓÃÉϵ½ÃÔ»ó£¬ÏÂÃæ½áºÏÎÒ×Ô¼º ......
ÔÚ½øÐиºÔزâÊÔ£¨Load Test£©ÊÇÒª¼à¿Ø·þÎñÆ÷µÄCPU¡¢ÄÚ´æ¡¢´ÅÅÌ¡¢ÍøÂçµÄÇé¿ö¡£ÈçºÎ¼à¿ØUbuntuµÄÇé¿öÄØ¡£
1¡¢°²×°rstatd£¬sudo apt-get install rstatd£¬Èç¹ûÎÞ·¨apt°²×°£¬¿ÉÒÔÏÂÔØ°²×°¡£
2¡¢Æô¶¯rpc.rstatd
3¡¢ÔÚLoadRunner ControllerµÄrun½çÃæÖУ¬Ìí¼ÓSystem Resource GraphsϵÄUnix Resource£¬ÔÚUnix ResourceͼÉÏÓÒ¼üAdd Measurements£¬È»ºóµã»÷Add£¬ÌîдipÈç192.168.1.99£¬Ä¬ÈÏÖ»ÓÐÈý¸öÖ¸±ê£¬ÔÚÏÂÃæµÄAddÖпÉÒÔÌí¼ÓÆäËûÖ¸±ê¡£
4¡¢ÏÂÃæËµÒ»Ï¸÷ÖÖÖ¸±êµÄÇé¿ö
CPUÖ¸±ê
Average load
ÉÏÒ»·ÖÖÓͬʱ´¦ÓÚ“¾ÍÐ÷”״̬µÄƽ¾ù½ø³ÌÊý£¬Õâ¸öÊýÖµ³ýÒÔCPU¸öÊýÓ¦¸ÃСÓÚ2£¬Èç¹û³¤ÆÚÊÇ2Ö¤Ã÷ÓÐÅŶӵÄ
CPU utilization
CPU µÄʹÓÃʱ¼ä°Ù·Ö±È£¬Èç¹ûÔÚ75%ÒÔÉÏ£¬Ôò¿ÉÒÔ¿¼ÂÇ»»CPUÁË
Swap-in rate
ÕýÔÚ½»»»µÄ½ø³ÌÊý
Swap-out rate
ÕýÔÚ½»»»µÄ½ø³ÌÊý
Context switches rate
ÿÃëÖÓÔÚ½ø³Ì»òÏß³ÌÖ®¼äµÄÇл»´ÎÊý
System mode CPU utilization
ÔÚϵͳģʽÏÂʹÓà CPU µÄʱ¼ä°Ù·Ö±È
User mode&n ......
viÊÇËùÓÐUNIXϵͳ¶¼»áÌṩµÄÆÁÄ»±à¼Æ÷£¬ËüÌṩÁËÒ»¸öÊÓ´°É豸£¬Í¨¹ýËü¿ÉÒÔ±à¼Îļþ¡£µ±È»£¬¶ÔUNIXϵͳÂÔÓÐËùÖªµÄÈË£¬»ò¶à»òÉÙ¶¼¾õµÃvi³¬¼¶ÄÑÓ㬵«viÊÇ×î»ù±¾µÄ±à¼Æ÷£¬ËùÒÔÏ£Íû¶ÁÕßÄܺúðÑËüѧÆðÀ´£¬ÒÔºóÔÚUNIXÊÀ½çÀï±Ø½«³©ÐÐÎÞ×è¡¢ÓÎÈÐÓÐÓ࣬ÒòΪÆäËû¼¸ÖÖÎı¾´¦ÀíÆ÷²¢·ÇUNIX±ê×¼Å䱸¡£Ëµ²»¶¨±ðÈ˵ÄLinux»úÆ÷û°²×°joe»òpico£¬Èç¹ûÄú²»»ávi£¬ÄÇÄú¿ÉÄܾÍûéüÁË¡£
viµÄ»ù±¾¸ÅÄî
»ù±¾ÉÏvi¿É·ÖΪÈýÖÖ²Ù×÷״̬£¬·Ö±ðÊÇÃüÁîģʽ£¨Command mode£©¡¢²åÈëģʽ£¨Insert mode£©ºÍµ×ÏßÃüÁîģʽ£¨Last line mode£©£¬¸÷ģʽµÄ¹¦ÄÜÇø·ÖÈçÏ£º
1£® Comand mode£º¿ØÖÆÆÁÄ»¹â±êµÄÒÆ¶¯£¬×Ö·û»ò¹â±êµÄɾ³ý£¬Òƶ¯¸´ÖÆÄ³Çø¶Î¼°½øÈëInsert modeÏ£¬»òÕßµ½Last line mode¡£
2£® Insert mode£ºÎ¨ÓÐÔÚInsert modeÏ£¬²Å¿É×öÎÄ×ÖÊý¾ÝÊäÈ룬°´EscµÈ¿É»Øµ½Comand mode¡£
3£® Last line mode£º½«´¢´æÎļþ»òÀ뿪±à¼Æ÷£¬Ò²¿ÉÉèÖñ༻·¾³£¬ÈçѰÕÒ×Ö·û´®¡¢ÁгöÐкŵȡ£
²»¹ý¿ÉÒÔ°Ñvi¼ò»¯³ÉÁ½¸öģʽ£¬¼´Êǽ«Last line modeÒ²ËãÈëCommand mode,°Ñvi·Ö³ÉCommand ºÍInsert mode¡£
viµÄ»ù±¾²Ù×÷
•½øÈëvi
ÔÚϵͳÌáʾ·ûºÅÊäÈëvi¼°ÎļþÃû³Æºó£¬¼´¿É½øÈëviÈ«ÆÁÄ»±à¼»Ã棺
$ vi testfile
ÓÐÒ»µãÒªÌØ ......
×ܽ᣺1¡¢80X86ʹÓÃС¶Ë·¨£¬ÍøÂç×Ö½ÚÐòʹÓôó¶Ë·¨¡£
2¡¢¶þ½øÖƵÄÍøÂç±à³ÌÖУ¬´«ËÍÊý¾Ý£¬×îºÃÒÔunsigned char, unsigned short, unsigned int
À´´¦Àí£¬ unsigned short ,unsigned short ÒÔÍøÂç×Ö½ÚÐò´¦ÀíºóÔÙ¿½±´µ½·¢Ë͵ÄbufferÀï
3¡¢½á¹¹ÌåǰºóÒªÖ¸¶¨ #pragma pack(1)
¶ÔÓÚ×Ö½ÚÐò(´ó¶Ë·¨¡¢Ð¡¶Ë·¨)µÄ¶¨Òå¡¶UNXIÍøÂç±à³Ì¡·¶¨Ò壺ÊõÓï“С¶Ë”ºÍ“´ó¶Ë”±íʾ¶à×Ö½ÚÖµµÄÄÄÒ»¶Ë(С¶Ë»ò´ó¶Ë)´æ´¢ÔÚ¸ÃÖµµÄÆðʼµØÖ·¡£Ð¡¶Ë´æÔÚÆðʼµØÖ·£¬¼´ÊÇС¶Ë×Ö½ÚÐò£»´ó¶Ë´æÔÚÆðʼµØÖ·£¬¼´ÊÇ´ó¶Ë×Ö½ÚÐò¡£
Ò²¿ÉÒÔ˵£º
1.С¶Ë·¨(Little-Endian)¾ÍÊǵÍλ×Ö½ÚÅÅ·ÅÔÚÄÚ´æµÄµÍµØÖ·¶Ë¼´¸ÃÖµµÄÆðʼµØÖ·£¬¸ßλ×Ö½ÚÅÅ·ÅÔÚÄÚ´æµÄ¸ßµØÖ·¶Ë¡£
2.´ó¶Ë·¨(Big-Endian)¾ÍÊǸßλ×Ö½ÚÅÅ·ÅÔÚÄÚ´æµÄµÍµØÖ·¶Ë¼´¸ÃÖµµÄÆðʼµØÖ·£¬µÍλ×Ö½ÚÅÅ·ÅÔÚÄÚ´æµÄ¸ßµØÖ·¶Ë¡£
¾Ù¸ö¼òµ¥µÄÀý×Ó£¬¶ÔÓÚÕûÐÎ0x12345678¡£ËüÔÚ´ó¶Ë·¨ºÍС¶Ë·¨µÄϵͳÄÚÖУ¬·Ö±ðÈçͼ1ËùʾµÄ·½Ê½´æ· ......
½ÏÏêϸµÄshell scripts±à³Ì×ÊÁÏ£¬Ï£ÍûÔÚѧϰÖеÄÒ»ÆðÌÖÂÛѧϰ ¡¾×ª×Ôwww.bitsCN.com¡¿
1. Linux ½Å±¾±àд»ù´¡
1.1 Óï·¨»ù±¾½éÉÜ
1.1.1 ¿ªÍ·
³ÌÐò±ØÐëÒÔÏÂÃæµÄÐпªÊ¼£¨±ØÐë·½ÔÚÎļþµÄµÚÒ»ÐУ©£º
#!/bin/sh
¡¡¡¡·ûºÅ#!ÓÃÀ´¸æËßϵͳËüºóÃæµÄ²ÎÊýÊÇÓÃÀ´Ö´ÐиÃÎļþµÄ³ÌÐò¡£ÔÚÕâ¸öÀý×ÓÖÐÎÒÃÇʹÓÃ/bin/shÀ´Ö´ÐгÌÐò¡£
¡¡¡¡µ±±à¼ºÃ½Å±¾Ê±£¬Èç¹ûÒªÖ´Ðиýű¾£¬»¹±ØÐëʹÆä¿ÉÖ´ÐС£
¡¡¡¡ÒªÊ¹½Å±¾¿ÉÖ´ÐУº
±àÒë chmod +x filename ÕâÑù²ÅÄÜÓÃ./filename À´ÔËÐÐ
1.1.2 ×¢ÊÍ
¡¡¡¡ÔÚ½øÐÐshell±à³Ìʱ£¬ÒÔ#¿ªÍ·µÄ¾ä×Ó±íʾעÊÍ£¬Ö±µ½ÕâÒ»ÐеĽáÊø¡£ÎÒÃÇÕæ³ÏµØ½¨ÒéÄúÔÚ³ÌÐòÖÐʹÓÃ×¢ÊÍ¡£
¡¡¡¡Èç¹ûÄúʹÓÃÁË×¢ÊÍ£¬ÄÇô¼´Ê¹Ï൱³¤µÄʱ¼äÄÚûÓÐʹÓøýű¾£¬ÄúÒ²ÄÜÔں̵ܶÄʱ¼äÄÚÃ÷°×¸Ã½Å±¾µÄ×÷Óü°¹¤×÷ÔÀí¡£
1.1.3 ±äÁ¿
¡¡¡¡ÔÚÆäËû±à³ÌÓïÑÔÖÐÄú±ØÐëʹÓñäÁ¿¡£ÔÚshell±à³ÌÖУ¬ËùÓеıäÁ¿¶¼ÓÉ×Ö·û´®×é³É£¬²¢ÇÒÄú²»ÐèÒª¶Ô±äÁ¿½øÐÐÉùÃ÷¡£Òª¸³Öµ¸øÒ»¸ö±äÁ¿£¬Äú¿ÉÒÔÕâÑùд£º
#!/bin/sh
#¶Ô±äÁ¿¸³Öµ£º
a="hello world"
# ÏÖÔÚ´òÓ¡±äÁ¿aµÄÄÚÈÝ£º
echo "A is:"
echo $a
ÓÐʱºò±äÁ¿ÃûºÜÈÝÒ×ÓëÆäËûÎÄ×Ö»ìÏý£¬±ÈÈ磺
num=2
echo "this is the $numnd"
Õâ²¢²»»á´òÓ¡³ö"this i ......
Resources on the site
• Interactive map of GNU/Linux OS and FOSS
• "GNU/Linux is my home" - map of GNU/Linux system
• Interactive map of Linux kernel
• Linux inside
• Linux Technology Reference (single page view)
• Linux kernel diagram
• Linux Device Drivers, 3rd Edition
• Advanced Linux Programming
• Managing Projects with GNU make
• 1000 Hacker Tutorials 2008
• Introduction to Linux
• Bash Guide for Beginners
• Advanced Bash-Scripting Guide
• GNU/Linux Command-Line Tools Summary
• Linux Filesystem Hierarchy
• The Linux Kernel Module Programming Guide
• The Linux System Administrator's Guide
• Linux Network Administrators Guide
• Autobook: GNU Autoconf, Automake, and Libtool src
Linux related products
• Linux kernel poster
• Linux Quick Guide
• Unix like Operating Systems Map
• Unix Quick Guide
Other products
• Computer Ope ......