Ëæ×Å Linux ²Ù×÷ϵͳµÄ¹ã·ºÓ¦Óã¬ÌرðÊÇ Linux ÔÚǶÈëʽÁìÓòµÄ·¢Õ¹£¬Ô½À´Ô½¶àµÄÈË¿ªÊ¼Í¶Éíµ½ Linux Äں˼¶µÄ¿ª·¢ÖС£Ãæ¶ÔÈÕÒæÅÓ´óµÄ Linux ÄÚºËÔ´´úÂ룬¿ª·¢ÕßÔÚÍê³É×Ô¼ºµÄÄں˴úÂëºó£¬¶¼½«ÃæÁÙ×ÅͬÑùµÄÎÊÌ⣬¼´ÈçºÎ½«Ô´´úÂëÈÚÈëµ½ Linux ÄÚºËÖУ¬Ôö¼ÓÏàÓ¦µÄ Linux ÅäÖÃÑ¡Ï²¢×îÖÕ±»±àÒë½ø Linux Äںˡ£Õâ¾ÍÐèÒªÁ˽â Linux µÄÄÚºËÅäÖÃϵͳ¡£
¡¡¡¡
¡¡¡¡ÖÚËùÖÜÖª£¬Linux ÄÚºËÊÇÓÉ·Ö²¼ÔÚÈ«ÇòµÄ Linux °®ºÃÕß¹²Í¬¿ª·¢µÄ£¬Linux ÄÚºËÿÌì¶¼ÃæÁÙ×ÅÐí¶àеı仯¡£µ«ÊÇ£¬Linux Äں˵Ä×éÖ¯²¢Ã»ÓгöÏÖ»ìÂÒµÄÏÖÏ󣬷´¶øÏԵ÷dz£µÄ¼ò½à£¬¶øÇÒ¾ßÓкܺõÄÀ©Õ¹ÐÔ£¬¿ª·¢ÈËÔ±¿ÉÒԺܷ½±ãµÄÏò Linux ÄÚºËÖÐÔö¼ÓеÄÄÚÈÝ¡£ÔÒòÖ®Ò»¾ÍÊÇ Linux ²ÉÓÃÁËÄ£¿é»¯µÄÄÚºËÅäÖÃϵͳ£¬´Ó¶ø±£Ö¤ÁËÄں˵ÄÀ©Õ¹ÐÔ¡£
¡¡¡¡
¡¡¡¡±¾ÎÄÊ×ÏÈ·ÖÎöÁË Linux ÄÚºËÖеÄÅäÖÃϵͳ½á¹¹£¬È»ºó£¬½âÊÍÁË Makefile ºÍÅäÖÃÎļþµÄ¸ñʽÒÔ¼°ÅäÖÃÓï¾äµÄº¬Ò壬×îºó£¬Í¨¹ýÒ»¸ö¼òµ¥µÄÀý×Ó--TEST Driver£¬¾ßÌå˵Ã÷ÈçºÎ½«×ÔÐпª·¢µÄ´úÂë¼ÓÈëµ½ Linux ÄÚºËÖС£ÔÚÏÂÃæµÄÎÄÕÂÖУ¬²»¿ÉÄܽâÊÍËùÓеŦÄܺÍÃüÁֻ¶ÔÄÇЩ³£ÓõĽøÐнâÊÍ£¬ÖÁÓÚÄÇЩûÓÐÌÖÂÛµ½µÄ£¬Çë¶ÁÕ߲ο¼ºóÃæµÄ²Î¿¼ÎÄÏס£
¡¡¡¡
¡¡¡¡1£® ÅäÖÃϵͳµÄ»ù±¾½á¹¹
¡¡¡¡LinuxÄں˵ ......
ÔÚ·þÎñÆ÷ÉÏд²¿ÊðÏîÄ¿µÄ½Å±¾ ,ÐèÒª°ÑÉÏ´«À´µÄ×îеÄÏîÄ¿½âѹ, ²¿Êð ,Æô¶¯·þÎñ ʵÏÖ×Ô¶¯»¯
ÓÚÊÇÕÒµ½×îеÄÎļþÊǵÚÒ»¼þÊÂÇé
¾ÍµÃµ½ÁËÒÔϽű¾
$ ls -lrt | awk '/xmhi/ { f=$NF };END{ print f }'
ÖмäµÄxmhiÊÇÎļþËù°üº¬µÄ×Ö·û´®
ÁíÍâÈç¹ûÒªls³öËùÓеÄÎļþÃû
$ ls -l |awk '{print$9}' ......
ѧ¶«Î÷£¬ÍùÍùʵÀý²ÅÊÇ×îÈÃÈ˸ÐÐËȤµÄ£¬ÀÏÊÇѧ»ù´¡ÀíÂÛ£¬²»¶¯ÊÖ£¬¸Ð¾õûÓгɾ͸У¬ºÇºÇ¡£
ÏÂÃæÏÈÀ´Ò»¸öʵÀý¡£ÎÒÃÇͨ¹ý´´½¨Á½¸öÏß³ÌÀ´ÊµÏÖ¶ÔÒ»¸öÊýµÄµÝ¼Ó¡£
»òÐíÕâ¸öʵÀýûÓÐʵ¼ÊÔËÓõļÛÖµ£¬µ«ÊÇÉÔ΢¸Ä¶¯Ò»Ï£¬ÎÒÃǾͿÉÒÔÓõ½ÆäËûµØ·½È¥À¡£
ÏÂÃæÊÇÎÒÃǵĴúÂ룺
/*thread_example.c : c multiple thread programming in linux
*author : falcon
*E-mail : tunzhj03@st.lzu.edu.cn
*/
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
void *thread1()
{
printf ("thread1 : I'm thread 1\n");
for (i = 0; i < MAX; i++)
{
printf("thread1 : number = %d\n",number);
......
ѧ¶«Î÷£¬ÍùÍùʵÀý²ÅÊÇ×îÈÃÈ˸ÐÐËȤµÄ£¬ÀÏÊÇѧ»ù´¡ÀíÂÛ£¬²»¶¯ÊÖ£¬¸Ð¾õûÓгɾ͸У¬ºÇºÇ¡£
ÏÂÃæÏÈÀ´Ò»¸öʵÀý¡£ÎÒÃÇͨ¹ý´´½¨Á½¸öÏß³ÌÀ´ÊµÏÖ¶ÔÒ»¸öÊýµÄµÝ¼Ó¡£
»òÐíÕâ¸öʵÀýûÓÐʵ¼ÊÔËÓõļÛÖµ£¬µ«ÊÇÉÔ΢¸Ä¶¯Ò»Ï£¬ÎÒÃǾͿÉÒÔÓõ½ÆäËûµØ·½È¥À¡£
ÏÂÃæÊÇÎÒÃǵĴúÂ룺
/*thread_example.c : c multiple thread programming in linux
*author : falcon
*E-mail : tunzhj03@st.lzu.edu.cn
*/
#include <pthread.h>
#include <stdio.h>
#include <sys/time.h>
#include <string.h>
#define MAX 10
pthread_t thread[2];
pthread_mutex_t mut;
int number=0, i;
void *thread1()
{
printf ("thread1 : I'm thread 1\n");
for (i = 0; i < MAX; i++)
{
printf("thread1 : number = %d\n",number);
......
½øÈëviµÄÃüÁî
vi filename :´ò¿ª»òн¨Îļþ£¬²¢½«¹â±êÖÃÓÚµÚÒ»ÐÐÊ×
vi +n filename £º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚµÚnÐÐÊ×
vi + filename £º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚ×îºóÒ»ÐÐÊ×
vi +/pattern filename£º´ò¿ªÎļþ£¬²¢½«¹â±êÖÃÓÚµÚÒ»¸öÓëpatternÆ¥ÅäµÄ´®´¦
vi -r filename £ºÔÚÉÏ´ÎÕýÓÃvi±à¼Ê±·¢Éúϵͳ±ÀÀ££¬»Ö¸´filename
vi filename....filename £º´ò¿ª¶à¸öÎļþ£¬ÒÀ´Î½øÐбà¼
ÒÆ¶¯¹â±êÀàÃüÁî
h £º¹â±ê×óÒÆÒ»¸ö×Ö·û
l £º¹â±êÓÒÒÆÒ»¸ö×Ö·û
space£º¹â±êÓÒÒÆÒ»¸ö×Ö·û
Backspace£º¹â±ê×óÒÆÒ»¸ö×Ö·û
k»òCtrl+p£º¹â±êÉÏÒÆÒ»ÐÐ
j»òCtrl+n £º¹â±êÏÂÒÆÒ»ÐÐ
Enter £º¹â±êÏÂÒÆÒ»ÐÐ
w»òW £º¹â±êÓÒÒÆÒ»¸ö×ÖÖÁ×ÖÊ×
b»òB £º¹â±ê×óÒÆÒ»¸ö×ÖÖÁ×ÖÊ×
e»òE £º¹â±êÓÒÒÆÒ»¸ö×ÖÖÁ×Öβ
) £º¹â±êÒÆÖÁ¾äβ
( £º¹â±êÒÆÖÁ¾äÊ×
}£º¹â±êÒÆÖÁ¶ÎÂ俪ͷ
{£º¹â±êÒÆÖÁ¶ÎÂä½áβ
nG£º¹â±êÒÆÖÁµÚnÐÐÊ×
n+£º¹â±êÏÂÒÆnÐÐ
n-£º¹â±êÉÏÒÆnÐÐ
n$£º¹â±êÒÆÖÁµÚnÐÐβ
H £º¹â±êÒÆÖÁÆÁÄ»¶¥ÐÐ
M £º¹â±êÒÆÖÁÆÁÄ»ÖмäÐÐ
L £º¹â±êÒÆÖÁÆÁÄ»×îºóÐÐ
0£º£¨×¢ÒâÊÇÊý×ÖÁ㣩¹â±êÒÆÖÁµ±Ç°ÐÐÊ×
$£º¹â±êÒÆÖÁµ±Ç°ÐÐβ
ÆÁÄ»·¹öÀàÃüÁî
Ctrl+u£ºÏòÎļþÊ×·°ëÆÁ
Ctrl+d£ºÏòÎļþβ·°ëÆÁ
Ctrl+f£ºÏòÎļþβ·Ò»ÆÁ
Ctrl ......
LinuxÏÂÈí¼þµÄ°²×°ÓëÐ¶ÔØ
Ò»¡¢¶þ½øÖÆ·Ö·¢Èí¼þ°üµÄ°²×°ÓëÐ¶ÔØ
LinuxÈí¼þµÄ¶þ½øÖÆ·Ö·¢ÊÇÖ¸ÊÂÏÈÒѾ±àÒëºÃ¶þ½øÖÆÐÎʽµÄÈí¼þ°üµÄ·¢²¼ÐÎʽ£¬ÆäÓŵãÊǰ²×°Ê¹ÓÃÈÝÒ×£¬È±µãÔòÊÇȱ·¦Áé»îÐÔ£¬Èç¹û¸ÃÈí¼þ°üÊÇÎªÌØ¶¨µÄÓ²¼þ/²Ù×÷ϵͳƽ̨±àÒëµÄ£¬ÄÇËü¾Í²»ÄÜÔÚÁíÍâµÄƽ̨»ò»·¾³ÏÂÕýÈ·Ö´ÐС£
1¡¢*.rpmÐÎʽµÄ¶þ½øÖÆÈí¼þ°ü
°²×°£ºrpm -ivh *.rpm
Ð¶ÔØ£ºrpm -e packgename
˵Ã÷£ºRPM£¨RedHat Packge Manager£©ÊÇRedHat¹«Ë¾³öµÄÈí¼þ°ü¹ÜÀíÆ÷£¬Ê¹ÓÃËü¿ÉÒÔºÜÈÝÒ׵ضÔrpmÐÎʽµÄÈí¼þ°ü½øÐа²×°¡¢Éý¼¶¡¢Ð¶ÔØ¡¢ÑéÖ¤¡¢²éѯµÈ²Ù×÷£¬°²×°¼òµ¥£¬¶øÐ¶ÔØÊ±Ò²¿ÉÒÔ½«Èí¼þ°²×°ÔڶദĿ¼ÖеÄÎļþɾ³ý¸É¾»£¬Òò´ËÍÆ¼ö³õѧÕß¾¡¿ÉÄÜʹÓÃrpmÐÎʽµÄÈí¼þ°ü¡£rpmµÄ²ÎÊýÖÐ-iÊǰ²×°£¬-vÊÇУÑ飬-hÊÇÓÃÉ¢ÁзûÏÔʾ°²×°½ø¶È£¬*.rpmÊÇÈí¼þ°üµÄÎļþÃû£¨ÕâÀïµÄ*.rpmÌØÖ¸*.src.rpmÒÔÍâµÄÒÔrpmΪºó׺µÄÎļþ£©£»²ÎÊý-eÊÇɾ³ýÈí¼þ°ü£¬packgenameÊÇÈí¼þ°üÃû£¬ÓëÈí¼þ°üµÄÎļþÃûÓÐËùÇø±ð£¬ËüÍùÍùÊÇÎļþÃûÖÐλÓÚ°æ±¾ºÅÇ°ÃæµÄ×Ö·û´®£¬ÀýÈçapache-3.1.12-i386.rpmºÍapache-devel-3.1.12-i386.rpmÊÇÈí¼þ°üÎļþÃû£¬ËüÃǵÄÈí¼þ°üÃû³Æ·Ö±ðÊÇapacheºÍapache-devel¡£¸ü¶àµÄrpm²ÎÊýÇë×ÔÐвο´ÊÖ²áÒ³£ºman rpm¡£
Èç¹ûÄ㲻ϲ»¶ÔÚ×Ö·û½ç ......
10.5.2 ¾«Í¨¶¨Ê±Æ÷ÉèÖÃ
º¯ÊýalarmÉèÖõĶ¨Ê±Æ÷Ö»Äܾ«È·µ½Ã룬¶øÒÔϺ¯ÊýÀíÂÛÉÏ¿ÉÒÔ¾«È·µ½Î¢Ã
#include <sys/select.h>
#include <sys/itimer.h>
int getitimer(int which, struct itimerval *value);
int setitimer(int which, const struct itimerval
*value, struct itimerval *ovalue);
º¯Êýsetitimer¿ÉÒÔÌṩÈýÖÖ¶¨Ê±Æ÷£¬ËüÃÇÏ໥¶ÀÁ¢£¬ÈÎÒâÒ»¸ö¶¨Ê±Íê³É¶¼½«·¢ËͶ¨Ê±Ðźŵ½½ø³Ì£¬²¢ÇÒ×Ô¶¯ÖØÐ¼ÆÊ±¡£²ÎÊýwhichÈ·¶¨Á˶¨Ê±Æ÷µÄÀàÐÍ£¬Èç±í10-6Ëùʾ£º
±í10-6 ²ÎÊýwhichÓ붨ʱÆ÷ÀàÐÍ
ȡֵ
º¬Òå
Ðźŷ¢ËÍ
ITIMER_REAL
¶¨Ê±ÕæÊµÊ±¼ä£¬ÓëalarmÀàÐÍÏàͬ¡£
SIGALRM
ITIMER_VIRT
¶¨Ê±½ø³ÌÔÚÓû§Ì¬ÏµÄʵ¼ÊÖ´ÐÐʱ¼ä¡£
SIGVTALRM
ITIMER_PROF
¶¨Ê±½ø³ÌÔÚÓû§Ì¬ºÍºËÐÄ̬ÏÂ
µÄʵ¼ÊÖ´ÐÐʱ¼ä¡£
SIGPROF
ÕâÈýÖÖ¶¨Ê±Æ÷¶¨Ê±Íê³Éʱ¸ø½ø³Ì·¢Ë͵ÄÐźŸ÷²»Ïàͬ£¬ÆäÖÐITIMER_REALÀඨʱÆ÷·¢ËÍSIGALRMÐźţ¬ITIMER_VIRTÀඨʱÆ÷·¢ËÍSIGVTALRMÐźţ¬ITIMER_REALÀඨʱÆ÷·¢ËÍSIGPROFÐźš£
º¯Êýalarm±¾ÖÊÉÏÉèÖõÄÊǵ;«È·¡¢·ÇÖØÔØµÄITIMER_REALÀඨʱÆ÷£¬ËüÖ»Äܾ«È·µ½Ã룬²¢ÇÒÿ´ÎÉèÖÃÖ»ÄܲúÉúÒ»´Î¶¨Ê±¡£º¯ÊýsetitimerÉèÖõĶ¨Ê±Æ÷Ôò²»Í¬£¬ËüÃDz»µ« ......