linuxÄں˻ù±¾Êý¾ÝÀàÐÍ×ܽá
¶ÔlinuxÄں˵ÄÊý¾ÝÀàÐÍ×öÒ»ÏÂ×ܽᡣ
ÏÂÃæ²¿·ÖÄÚÈݲο¼ÁË£ºhttp://book.csdn.net/bookfiles/12/100126.shtml
µ±
Linux
ÄÚºËÔÚÌåϵ½á¹¹²îÒì½Ï´óµÄƽ̨֮¼äÒÆÖ²Ê±£¬»á²úÉúÓëÊý¾ÝÀàÐÍÏà¹ØµÄÎÊÌâ¡£ÔÚ±àÒëÄÚºËʱʹÓÃ
-Wall -Wstrict-prototypes
Ñ¡Ï¿ÉÒÔ±ÜÃâºÜ¶à´íÎóµÄ·¢Éú¡£
ÄÚºËʹÓõĻù±¾Êý¾ÝÀàÐÍÖ÷ÒªÓУº
Ø
Ø
int
±ê×¼
C
ÓïÑÔÕûÊýÀàÐÍ£»
Ø
Ø
u32
32
λÕûÊýÀàÐÍ£»
Ø
Ø
pid_t
ÌØ¶¨Äں˶ÔÏó
pid
µÄÀàÐÍ¡£
ÔÚ²»Í¬µÄ
CPU
Ìåϵ½á¹¹ÉÏ£¬
C
ÓïÑÔµÄÊý¾ÝÀàÐÍËùÕ¼¿Õ¼ä²»Ò»Ñù¡£ÏÂÃæÊÇÔÚ
x86
ÏÂÊý¾ÝÀàÐÍËùÕ¼µÄ×Ö½ÚÊý£º
arch
char
short
int
long
ptr
long-long
u8
u16
u32
u64
i686
1
2
4
4
4
8
1
2
4
8
ÏÂÃæÊÇÔÚÆäËûƽ̨ÉϵÄÊý¾ÝÀàÐÍËùÕ¼µÄ×Ö½ÚÊý£º
arch
char
short
int
long
ptr
long-long
u8
u16
u32
u64
i386
1
2
4
4
4
8
1
2
4
8
alpha
1
2
4
8
8
8
......
·½·¨Ò»¡¢
bool ReadElemnt(string& szFileName)
{
TiXmlDocument myDocument(szFileName);
bool loadOkay = myDocument.LoadFile();
if(loadOkay == false)
return false;
TiXmlElement *rootElement = myDocument.RootElement();
if(rootElement == NULL)
return false;
TiXmlElement *pItemElement = rootElement->FirstChildElement();
TiXmlNode *pNextchild = pItemElement->ToElement();
while(pNextchild)
{
pItemElement = pNextchild->ToElement();
TiXmlElement *NameElement = pItemElement->FirstChildElement();
TiXmlElement *AgeElement = NameElement->NextSiblingElement();
TiXmlAttribute *IDAttribute = pItemElement->FirstAttribute();
//Êä³öµÚÒ»¸öPersonµÄnameÄÚÈÝ£¬¼´ÖÜÐÇÐÇ£»ageÄÚÈÝ£¬¼´20£»IDÊôÐÔ£¬¼´1¡£ &n ......
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 is the 2nd"£¬¶ø½ö½ö´òÓ¡"this is the "£¬ÒòΪshell»áÈ¥ËÑË÷±äÁ¿numndµÄÖµ£¬
µ«ÊÇÕâ¸ö±äÁ¿Ê±Ã»ÓÐÖµ ......
±¾Ô´´ÎÄÕÂÊôÓÚ¡¶Linux´óÅï¡·²©¿Í£¬²©¿ÍµØÖ·Îªhttp://roclinux.cn¡£ÎÄÕÂ×÷ÕßΪrocrocket¡£
Æô¶¯µÚÒ»²½££¼ÓÔØBIOS
µ±Äã´ò¿ª¼ÆËã»úµçÔ´£¬¼ÆËã»ú»áÊ×ÏȼÓÔØBIOSÐÅÏ¢£¬BIOSÐÅÏ¢ÊÇÈç´ËµÄÖØÒª£¬ÒÔÖÁÓÚ¼ÆËã»ú±ØÐëÔÚ×ʼ¾ÍÕÒµ½Ëü¡£ÕâÊÇÒòΪBIOSÖаüº¬ÁËCPUµÄÏà¹ØÐÅÏ¢¡¢É豸Æô¶¯Ë³ÐòÐÅÏ¢¡¢Ó²ÅÌÐÅÏ¢¡¢ÄÚ´æÐÅÏ¢¡¢Ê±ÖÓÐÅÏ¢¡¢PnPÌØÐԵȵȡ£ÔÚ´ËÖ®ºó£¬¼ÆËã»úÐÄÀï¾ÍÓÐÆ×ÁË£¬ÖªµÀÓ¦¸ÃÈ¥¶ÁÈ¡ÄĸöÓ²¼þÉ豸ÁË¡£
Æô¶¯µÚ¶þ²½££¶ÁÈ¡MBR
ÖÚËùÖÜÖª£¬Ó²ÅÌÉϵÚ0´ÅµÀµÚÒ»¸öÉÈÇø±»³ÆÎªMBR£¬Ò²¾ÍÊÇMaster Boot Record£¬¼´Ö÷Òýµ¼¼Ç¼£¬ËüµÄ´óСÊÇ512×Ö½Ú£¬±ð¿´µØ·½²»´ó£¬¿ÉÀïÃæÈ´´æ·ÅÁËÔ¤Æô¶¯ÐÅÏ¢¡¢·ÖÇø±íÐÅÏ¢¡£
ϵͳÕÒµ½BIOSËùÖ¸¶¨µÄÓ²Å̵ÄMBRºó£¬¾Í»á½«Æä¸´ÖƵ½0×7c00µØÖ·ËùÔÚµÄÎïÀíÄÚ´æÖС£Æäʵ±»¸´ÖƵ½ÎïÀíÄÚ´æµÄÄÚÈݾÍÊÇBoot Loader£¬¶ø¾ßÌåµ½ÄãµÄµçÄÔ£¬ÄǾÍÊÇlilo»òÕßgrubÁË¡£
Æô¶¯µÚÈý²½££Boot Loader
Boot Loader ¾ÍÊÇÔÚ²Ù×÷ϵͳÄÚºËÔËÐÐ֮ǰÔËÐеÄÒ»¶ÎС³ÌÐò¡£Í¨¹ýÕâ¶ÎС³ÌÐò£¬ÎÒÃÇ¿ÉÒÔ³õʼ»¯Ó²¼þÉ豸¡¢½¨Á¢ÄÚ´æ¿Õ¼äµÄÓ³Éäͼ£¬´Ó¶ø½«ÏµÍ³µÄÈíÓ²¼þ»·¾³´øµ½Ò»¸öºÏÊʵÄ״̬£¬ÒÔ±ãΪ×îÖÕµ÷ÓòÙ×÷ϵͳÄÚºË×öºÃÒ»ÇÐ×¼±¸¡£
Boot LoaderÓÐÈô¸ÉÖÖ£¬ÆäÖÐGrub¡¢LiloºÍspfdiskÊdz£¼ûµÄLoa ......
linux С¼¼ÇÉ
ǰÑÔ£ºÒòΪÓÃLinuxµÄʱ¼äÔ½À´Ô½³¤£¬ËùÐèÒª×öµÄÊÂÒ²Ô½À´Ô½¶à£¬Ð§ÂʳÉÁËÎÒ±ØÐèÍ»ÆÆµÄÆ¿¾±¡£ÔÚ´Ë×ܽáÒ»ÏÂÕâ¶Îʱ¼äÓùýµÄһЩºÃµÄLinux¼¼ÇÉ¡£ÒÔºóʱ³£²¹³äÕâÑù×Ô¼ºÒªÓõÄʱºò¾ÍºÜ·½±ãÁË¡£ Author:Ajian[Îı¾´¦Àí]1¡¢ ...
ǰÑÔ£ºÒòΪÓÃLinuxµÄʱ¼äÔ½À´Ô½³¤£¬ËùÐèÒª×öµÄÊÂÒ²Ô½À´Ô½¶à£¬Ð§ÂʳÉÁËÎÒ±ØÐèÍ»ÆÆµÄÆ¿¾±¡£ÔÚ´Ë×ܽáÒ»ÏÂÕâ¶Îʱ¼äÓùýµÄһЩºÃµÄLinux¼¼ÇÉ¡£ÒÔºóʱ³£²¹³äÕâÑù×Ô¼ºÒªÓõÄʱºò¾ÍºÜ·½±ãÁË¡£
Author:Ajian
[Îı¾´¦Àí]
1¡¢²é¿´Ä³ÎļþµÄÒ»²¿·Ö
Èç¹ûÄãÖ»Ïë¿´ÎļþµÄǰ 5 ÐУ¬¿ÉÒÔʹÓà head ÃüÁ
È磺head -5 /etc/passwd
Èç¹ûÄãÏë²é¿´ÎļþµÄºó 10 ÐУ¬¿ÉÒÔʹÓà tail ÃüÁ
È磺tail -10 /etc/passwd
²é¿´ÎļþÖмäÒ»¶Î£¬¿ÉÒÔʹÓà sed ÃüÁî
Èç:sed –n '5,10p' /etc/passwd ÕâÑùÄã¾Í¿ÉÒÔÖ»²é¿´ÎļþµÄµÚ 5 Ðе½µÚ 10 ÐÐ
2¡¢½« file.txt ÀïµÄ123¸ÄΪ 456
·½·¨ 1
sed 's/123/456/g' file.txt > file.txt.new Ð޸ĵı£´æµ½ÆäËüÎļþ
sed -i 's/123/456/g' file.txt Ö±½ÓÐÞ¸ÄÔÎļþ
·½·¨ 2
vi file.txt
ÊäÈëÃüÁ
:%s/123/456/g
×¢Ò⣺Èç¹ûÌæ»»µÄÎļþÓÐÌØÊâ·ûºÅÈç/¾ÍÒªÓÃ\À´È¡Ïû¡£
Àý£ºsed -i 's/\/usr\/ ......
[ת]Linux 2.6 ÄÚºËEpollÓ÷¨¾ÙÀý˵Ã÷
epollÓõ½µÄËùÓк¯Êý¶¼ÊÇÔÚÍ·Îļþsys/epoll.hÖÐÉùÃ÷µÄ£¬ÏÂÃæ¼òҪ˵Ã÷ËùÓõ½µÄÊý¾Ý½á¹¹ºÍº¯Êý£º
ËùÓõ½µÄÊý¾Ý½á¹¹:
typedef union epoll_data {
void *ptr;
int fd;
__uint32_t u32;
__uint64_t u64;
} epoll_data_t;
struct epoll_event {
__uint32_t events; /* Epoll events */
epoll_data_t data; /* User data variable */
};
½á¹¹Ìåepoll_event ±»ÓÃÓÚ×¢²áËù¸ÐÐËȤµÄʼþºÍ»Ø´«Ëù·¢Éú´ý´¦ÀíµÄʼþ£¬ÆäÖÐepoll_data ÁªºÏÌåÓÃÀ´±£´æ´¥·¢Ê¼þµÄij¸öÎļþÃèÊö·ûÏà¹ØµÄÊý¾Ý£¬ÀýÈçÒ»¸öclientÁ¬½Óµ½·þÎñÆ÷£¬·þÎñÆ÷ͨ¹ýµ÷ÓÃacceptº¯Êý¿ÉÒԵõ½ÓÚÕâ¸öclient¶ÔÓ¦µÄsocketÎļþÃèÊö·û£¬¿ÉÒÔ°ÑÕâÎļþÃèÊö·û¸³¸øepoll_dataµÄfd×Ö¶ÎÒÔ±ãºóÃæµÄ¶Áд²Ù×÷ÔÚÕâ¸öÎļþÃèÊö·ûÉϽøÐС£epoll_event ½á¹¹ÌåµÄevents×Ö¶ÎÊDZíʾ¸ÐÐËȤµÄʼþºÍ±»´¥·¢µÄʼþ£¬³£ÓõÄȡֵΪ£º
EPOLLIN £º±íʾ¶ÔÓ¦µÄÎļþÃèÊö·û¿ÉÒÔ¶Á£»
EPOLLOUT£º±íʾ¶ÔÓ¦µÄÎļþÃèÊö·û¿ÉÒÔд£»
EPOLLPRI£º±íʾ¶ÔÓ¦µÄÎļþÃèÊö·ûÓнô¼ ......