锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 錛?錛夊皢鏂囦歡鎸変粠鏂板埌鏃ф帓鍒楋紝鍙栫涓涓?/p> ls -t *.cpp | head -1 錛?錛夊皢鏂囦歡鎸変粠鏃у埌鏂版帓鍒楋紝鍙栨渶鍚庝竴涓?/p> ls -rt *.cpp | tail -1 鏈榪戝伐浣滆繃紼嬩腑錛屽彂鐜板ソ鍑犲彴鏈嶅姟鍣ㄥ嚭鐜板兊姝昏繘紼嬶紙濡傚浘錛夈?/p> 銆銆鐢ㄤ笅闈㈢殑鍛戒護鎵懼嚭鍍墊榪涚▼ 銆銆ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' 銆銆鍛戒護娉ㄨВ錛?br /> 銆銆-A 鍙傛暟鍒楀嚭鎵鏈夎繘紼?br /> 銆銆-o 鑷畾涔夎緭鍑哄瓧孌?鎴戜滑璁懼畾鏄劇ず瀛楁涓?stat錛堢姸鎬侊級, ppid錛堣繘紼嬬埗id錛? pid(榪涚▼id)錛宑md錛堝懡浠わ級榪欏洓涓弬鏁?/p> 銆銆榪欓噷涓鍏卞嚭鐜頒簡9涓兊姝昏繘紼嬶紝鎴戜滑闇瑕佹妸瀹冧滑閮藉共鎺夛紝鎵ц涓嬮潰鐨勫懡浠?/p> 銆銆kill -9 8310 銆銆榪欐椂浣犲啀鎵ц鏌ユ壘鍍墊鐨勮繘紼嬶紝鍙戠幇鎵鏈夊兊姝昏繘紼嬮兘娌′簡錛?/p> 銆銆琛ュ厖錛?/strong> 銆銆鏈榪戝張閬囧埌浜嗕釜闂錛屼竴鍙版湇鍔″櫒涓婁駭鐢熶簡100澶氬皯鍍墊榪涚▼錛岃屼笖姣忎竴鍍墊榪涚▼鐨勭埗榪涚▼閮戒笉涓鏍鳳紝濡傛灉鐢ㄤ笂闈㈢殑鏂規硶錛屼竴鏉′竴鏉$殑鏉錛岄偅榪樹笉寰楃瘡姝繪垜鍟娿?br /> 銆銆閭d箞灝卞簲璇ユ兂涓鏉$畝鍗曠殑鍛戒護錛岀洿鎺ユ煡鎵懼兊姝昏繘紼嬶紝鐒跺悗灝嗙埗榪涚▼鏉姝粇 銆銆 ps -A -o stat,ppid,pid,cmd | grep -e '^[Zz]' | awk '{print $2}' | xargs kill -9 ---------------------------------------------------------------------------------------------------------- 鎴戜滑鍙互浣跨敤kill -l鏌ョ湅鎵鏈夌殑淇″彿閲忚В閲婏紝浣嗘槸娌℃湁鐪嬪埌SIGNAL 0鐨勮В閲娿?/p> 緗戜笂鎼滀簡涓嬶紝鍦ㄨ繖綃囨枃妗d腑鎵懼埌浜唖ignal 0鐨勮В閲婏紝寰堜笉閿? http://www.linuxjournal.com/content/monitoring-processes-kill-0 “signal 0″ is kind of like a moral equivalent of “ping”. Using “kill -0 NNN” in a shell script is a good way to tell if PID “NNN” is alive or not: signal 0 is just used to check process is exists or not. 鍦ㄥ叧鍏跺畠鐨勪俊鍙烽噺璇存槑,鍘熸枃:http://hi.baidu.com/syqust/blog/item/cd8f6c633b8a617c0d33fa35.html 淇″彿鏈川 淇″彿鏄繘紼嬮棿閫氫俊鏈哄埗涓敮涓鐨勫紓姝ラ氫俊鏈哄埗錛屽彲浠ョ湅浣滄槸寮傛閫氱煡錛岄氱煡鎺ユ敹淇″彿鐨勮繘紼嬫湁鍝簺浜嬫儏鍙戠敓浜嗐備俊鍙鋒満鍒剁粡榪嘝OSIX瀹炴椂鎵╁睍鍚庯紝鍔熻兘鏇村姞寮哄ぇ錛岄櫎浜嗗熀鏈氱煡鍔熻兘澶栵紝榪樺彲浠ヤ紶閫掗檮鍔犱俊鎭?/p> 浣跨敤kill -l灝變細鏄劇ず鍑簂inux鏀寔鐨勪俊鍙峰垪琛ㄣ?br />鍏朵腑鍒楄〃涓紝緙栧彿涓? ~ 31鐨勪俊鍙蜂負浼犵粺UNIX鏀寔鐨勪俊鍙鳳紝鏄笉鍙潬淇″彿(闈炲疄鏃剁殑)錛岀紪鍙蜂負32 ~ 63鐨勪俊鍙鋒槸鍚庢潵鎵╁厖鐨勶紝縐板仛鍙潬淇″彿(瀹炴椂淇″彿)銆備笉鍙潬淇″彿鍜屽彲闈犱俊鍙風殑鍖哄埆鍦ㄤ簬鍓嶈呬笉鏀寔鎺掗槦錛屽彲鑳戒細閫犳垚淇″彿涓㈠け錛岃屽悗鑰呬笉浼氥?/p> 涓嬮潰鎴戜滑瀵圭紪鍙峰皬浜嶴IGRTMIN鐨勪俊鍙瘋繘琛岃璁猴紙涓嬮潰鐨勭紪鍙?渚濇瀵瑰簲淇″彿 鐨勬暟鍊間負1 – 31錛夈?/p> 1) SIGHUP 鐧誨綍Linux鏃訛紝緋葷粺浼氬垎閰嶇粰鐧誨綍鐢ㄦ埛涓涓粓绔?Session)銆傚湪榪欎釜緇堢榪愯鐨勬墍鏈夌▼搴忥紝鍖呮嫭鍓嶅彴榪涚▼緇勫拰鍚庡彴榪涚▼緇勶紝涓鑸兘灞炰簬榪欎釜 Session銆傚綋鐢ㄦ埛閫鍑篖inux鐧誨綍鏃訛紝鍓嶅彴榪涚▼緇勫拰鍚庡彴鏈夊緇堢杈撳嚭鐨勮繘紼嬪皢浼氭敹鍒癝IGHUP淇″彿銆傝繖涓俊鍙風殑榛樿鎿嶄綔涓虹粓姝㈣繘紼嬶紝鍥犳鍓嶅彴榪? 紼嬬粍鍜屽悗鍙版湁緇堢杈撳嚭鐨勮繘紼嬪氨浼氫腑姝€備笉榪囧彲浠ユ崟鑾瘋繖涓俊鍙鳳紝姣斿wget鑳芥崟鑾稴IGHUP淇″彿錛屽茍蹇界暐瀹冿紝榪欐牱灝辯畻閫鍑轟簡Linux鐧誨綍錛寃get涔? 鑳界戶緇笅杞姐?/p> 姝ゅ錛屽浜庝笌緇堢鑴辯鍏崇郴鐨勫畧鎶よ繘紼嬶紝榪欎釜淇″彿鐢ㄤ簬閫氱煡瀹冮噸鏂拌鍙栭厤緗枃浠躲?/p> 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 淇″彿 11錛屽嵆琛ㄧず紼嬪簭涓彲鑳藉瓨鍦ㄧ壒瀹氭潯浠朵笅鐨勯潪娉曞唴瀛樿闂?/strong> 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 濡傛灉鐖惰繘紼嬫病鏈夊鐞嗚繖涓俊鍙鳳紝涔熸病鏈夌瓑寰?wait)瀛愯繘紼嬶紝瀛愯繘紼嬭櫧鐒剁粓姝紝浣嗘槸榪樹細鍦ㄥ唴鏍歌繘紼嬭〃涓崰鏈夎〃欏癸紝榪欐椂鐨勫瓙榪涚▼縐頒負鍍靛案榪涚▼銆傝繖縐嶆儏 鍐墊垜浠簲璇ラ伩鍏?鐖惰繘紼嬫垨鑰呭拷鐣IGCHILD淇″彿錛屾垨鑰呮崟鎹夊畠錛屾垨鑰厀ait瀹冩淳鐢熺殑瀛愯繘紼嬶紝鎴栬呯埗榪涚▼鍏堢粓姝紝榪欐椂瀛愯繘紼嬬殑緇堟鑷姩鐢眎nit榪涚▼ 鏉ユ帴綆?銆?/p> 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 鍦ㄤ互涓婂垪鍑虹殑淇″彿涓紝紼嬪簭涓嶅彲鎹曡幏銆侀樆濉炴垨蹇界暐鐨勪俊鍙鋒湁錛歋IGKILL,SIGSTOP 姝ゅ錛孲IGIO鍦⊿VR4鏄鍑猴紝鍦?.3BSD涓槸蹇界暐錛汼IGCONT鍦ㄨ繘紼嬫寕璧鋒椂鏄戶緇紝鍚﹀垯鏄拷鐣ワ紝涓嶈兘琚樆濉?/p> 緇堟紼嬪簭鐨勬椂鍊欏湪涓嶅緱宸茬殑鎯呭喌涓嬩笉鑳界敤SIGKILL錛屽洜涓篠IGKILL涓嶄細瀵瑰瓙榪涚▼榪涜澶勭悊錛屽彧鏄妸瀵硅嚜宸辮繘琛屽鐞?/p> Linux鏀寔POSIX鏍囧噯淇″彿鍜屽疄鏃朵俊鍙楓備笅闈㈢粰鍑篖inux Signal鐨勭畝琛紝璇︾粏緇嗚妭鍙互鏌ョ湅man 7 signal銆?/p> 榛樿鍔ㄤ綔鐨勫惈涔夊涓嬶細 Term 緇堟榪涚▼ 璇存槑錛?/p> 涓浜涗俊鍙風殑鍙栧兼槸紜歡緇撴瀯鐩稿叧鐨勶紙涓鑸琣lpha鍜宻parc鏋舵瀯鐢ㄧ涓涓鹼紝i386銆乸pc鍜宻h鏋舵瀯鐢ㄤ腑闂村鹼紝mips鏋舵瀯鐢ㄧ涓変釜鍊鹼紝 - 琛ㄧず鐩稿簲鏋舵瀯鐨勫彇鍊兼湭鐭ワ級銆?/p> 钃濊壊鐨勬槸POSIX.1-1990鏍囧噯淇″彿銆?/p> SIGKILL鍜孲IGSTOP淇″彿涓嶈兘琚寕閽┿侀樆濉炴垨蹇界暐銆?/p> 闈掕壊鐨勬槸SUSv2鍜孭OSIX.1-2001瀹氫箟鐨勪俊鍙楓?/p> 鍦↙inux 2.2錛堝寘鎷級鍐呮牳涔嬪墠錛孲IGSYS銆丼IGXCPU銆丼IGXFSZ鍜孲IGBUS 錛圫PARC鍜孧IPS鏋舵瀯闄ゅ錛夌殑榛樿鍔ㄤ綔鏄粓姝㈣繘紼嬶紝浣嗘病鏈?core dump銆侺inux 2.4閬靛驚POSIX.1-2001瑕佹眰錛岃繖浜涗俊鍙風殑榛樿鍔ㄤ綔鏀逛負錛氱粓姝㈣繘紼嬪悓鏃跺仛core dump銆?/p> 姍欒壊鐨勬槸鍏朵粬甯歌鐨勪俊鍙楓?/p> 淇″彿29鍦ˋlpha涓婁負SIGINFO / SIGPWR 錛屽湪Sparc涓婁負SIGLOST銆?/p> SIGEMT娌℃湁鍦≒OSIX.1-2001涓鏄庯紝浣嗘槸鍦ㄥぇ澶氭暟鐨刄nices涓粛鐒惰兘瑙佸埌錛屽吀鍨嬬殑榛樿鍔ㄤ綔鏄粓姝㈣繘紼嬪茍鍋歝ore dump銆?/p> SIGPWR娌℃湁鍦≒OSIX.1-2001涓鏄庯紝鍦ㄤ嬌鐢ㄥ畠鐨勪竴浜沀nices涓吀鍨嬬殑榛樿鍔ㄤ綔鏄拷鐣ャ?/p> SIGIO娌℃湁鍦≒OSIX.1-2001涓鏄庯紝鍦ㄤ嬌鐢ㄥ畠鐨勪竴浜沀nices涓吀鍨嬬殑榛樿鍔ㄤ綔鏄拷鐣ャ?/p> 榪涚▼鍙互閫氳繃浣跨敤sigaction鍜宻ignal緋葷粺璋冪敤鏉ユ敼鍙樹俊鍙風殑榛樿澶勭悊鏂瑰紡錛堜嬌鐢╯ignal鐨勫彲縐繪鎬у樊錛夈傝繘紼嬪彲浠ラ夋嫨涓嬪垪3縐嶄俊鍙峰鐞嗘柟寮忎腑鐨勪竴縐嶏細 1銆佹墽琛岄粯璁ゆ搷浣滐紱 2銆佸拷鐣ヨ淇″彿錛?/p> 3銆佹崟鑾瘋淇″彿錛屼絾鏄氳繃淇″彿鍙ユ焺鏉ヨ皟鐢ㄨ嚜瀹氫箟鐨勫鐞嗗嚱鏁般?/p> 淇″彿鍙兘琚樆濉炪傝繘紼嬩腑鐨勬瘡涓嚎紼嬫嫢鏈夌嫭绔嬬殑淇″彿鎺╃爜錛岀敤鏉ヨ〃紺烘湰綰跨▼鐨勪俊鍙瘋闃誨銆傜嚎紼嬮氳繃pthread_sigmask鏉ヨ緗畠鐨勪俊鍙鋒帺鐮併傚崟綰跨▼紼嬪簭鍙互鐢╯igprocmask鏉ユ搷浣滀俊鍙鋒帺鐮併傚湪澶氱嚎紼嬬▼搴忎腑錛屾墍鏈夌嚎紼嬪鐞嗕竴涓寚瀹氫俊鍙風殑榛樿琛屼負閮芥槸涓鏍風殑銆?/p> 琛ュ厖: SIG_DFL,SIG_IGN 鍒嗗埆琛ㄧず鏃犺繑鍥炲肩殑鍑芥暟鎸囬拡錛屾寚閽堝煎垎鍒槸0鍜?錛岃繖涓や釜鎸囬拡鍊奸昏緫涓婅鏄疄闄呯▼搴忎腑涓嶅彲鑳藉嚭鐜扮殑鍑芥暟鍦板潃鍊箋?/p> SIG_DFL錛氶粯璁や俊鍙峰鐞嗙▼搴?br />SIG_IGN錛氬拷鐣ヤ俊鍙風殑澶勭悊紼嬪簭 CentOS涓粯璁よ緗簡ulimit -c 0涔熷氨鏄粯璁ょ▼搴忎笉鐢熸垚core dump,榪欐牱寰堥夯鐑?姣忔鍚姩紼嬪簭鍓嶉兘瑕佽鐢ㄦ埛鍏堟墽琛屼竴嬈limit -c ulimited,鏈夋椂鍊欑敤鎴峰繕璁板垯涓嶇敓鎴恈ore,寰堜笉鍒╀簬閿欒鍒嗘瀽,鎵浠ョ爺絀朵簡涓嬪浣曡緋葷粺榛樿灝辯敓鎴恈ore. 鍦ㄧ綉涓婃壘浜嗛儴鍒嗚祫鏂?鐪嬪埌浜?/p> CentOS 5涓璾limit鍊艱皟鏁村茍姘鎬箙鐢熸晥鐨勬柟娉?/p> 榪欑瘒鏂囩珷,鍏朵腑璇撮氳繃緙栬緫/etc/security/limits.conf鏂囦歡鍙互瀹炵幇ulimit鐨勫艱瀹?嫻嬭瘯浜唍ofile鍚庣殑紜彲琛?浣嗘槸鍐欏叆浜?/p> 閲嶆柊鐧婚檰鍗存病鏈夋晥鏋?nbsp; // ps by zc, 鎴戝埌榪欓噷灝辨湁鏁堟灉浜?br /> 閫氳繃鐮旂┒,鍙戠幇/etc/profile鏂囦歡涓湁涓鍙?/p> 浜岃瘽涓嶈,鎶婄浜岃鐢?娉ㄩ噴鎺夊悗,鍗?/p> 淇濆瓨閲嶆柊鐧婚檰鐢ㄦ埛,鍐嶆鏌ョ湅,涓鍒囨甯?
grep 涓嬈℃帓闄ゅ涓?br />grep -v 'aaaa\|bbbb' // 鎺掗櫎aaaa鍜宐bbb
-----------------------------------------------------------------------------
鏌ョ湅鏂囦歡鏁?br />ls |wc -l
-----------------------------------------------------------------------------
鏌ョ湅鏂囦歡澶瑰ぇ灝?br />du -sh *
du -sh /home
du -sh
------------------------------------------------------------------------------
鏌ユ壘鏈鏂扮殑鏂囦歡
------------------------------------------------------------------------------
find . -name '*.exe' -type f -print -exec rm -rf {} \;
(1) "." 琛ㄧず浠庡綋鍓嶇洰褰曞紑濮嬮掑綊鏌ユ壘
(2) “ -name '*.exe' "鏍規嵁鍚嶇О鏉ユ煡鎵撅紝瑕佹煡鎵炬墍鏈変互.exe緇撳熬鐨勬枃浠跺す鎴栬呮枃浠?br />(3) " -type f "鏌ユ壘鐨勭被鍨嬩負鏂囦歡
(4) "-print" 杈撳嚭鏌ユ壘鐨勬枃浠剁洰褰曞悕
(5) 鏈涓昏鐨勬槸鏄?exec浜嗭紝-exec閫夐」鍚庤竟璺熺潃涓涓墍瑕佹墽琛岀殑鍛戒護錛岃〃紺哄皢find鍑烘潵鐨勬枃浠舵垨鐩綍鎵ц璇ュ懡浠ゃ俥xec閫夐」鍚庨潰璺熼殢鐫鎵瑕佹墽琛岀殑鍛戒護鎴栬剼鏈紝鐒跺悗鏄竴瀵瑰効{}錛屼竴涓┖鏍煎拰涓涓猏錛屾渶鍚庢槸涓涓垎鍙?br />
-----------------------------------------------------------------------------
]]>
涓殑浼犻抯hell鑴氭湰鍏跺疄鏄敤褰撳墠shell鐨勫瓙shell鍘繪墽琛岀殑錛屾墍浠ュ湪shell鑴氭湰涓畾涔夌殑鏅氬彉閲忓彧閫傜敤浜庡綋鍓?br />shell鐨勫瓙shell鐜錛屼篃灝辨槸璇村湪褰撳墠shell鐜涓笉閫傜敤錛屼篃涓嶉傜敤浜庤繖涓猻hell鑴氭湰鐨勫瓙shell銆?br />鍦╯hell鑴氭湰涓畾涔夌殑鐜鍙橀噺鍙互浼犳壙緇欏畠鐨勫瓙shell錛屼絾鏄篃涓嶈兘浼犻掔粰褰撳墠shell(涓嶈兘閫嗗悜浼犻?
濡傛灉鍦ㄤ竴涓剼鏈腑闇瑕佹墽琛屽彟涓涓剼鏈紝騫朵笖榪愮敤鍏朵腑鐨勫彉閲忥紝鏀瑰浣曠敵鏄庡彉閲忓憿錛屾垜浠潵鐪嬩竴涓緥瀛愶細
/root/test1.sh鍐呭濡備笅錛?br />#!/bin/bash
aaa=yuanfaxiang
echo "test1:$aaa"
/root/test2.sh鍐呭濡備笅錛?br />#!/bin/bash
/root/test1.sh
echo "test2:$aaa"
鎵цtest2.sh緇撴灉濡備笅錛?br />[root@centos ~]# sh test2.sh
test1:yuanfaxiang
test2:
浠庣粨鏋滃彲浠ョ湅鍑簍est1.sh娌℃湁鎶婂彉閲廰aa鐨勫間紶閫掔粰test2.sh
鎴戜滑鎶妕est2.sh鏀規垚錛?br />#!/bin/bash
source /root/test1.sh
echo "test2:$aaa"
鎵цtest2.sh緇撴灉濡備笅錛?br />[root@centos ~]# sh test2.sh
test1:yuanfaxiang
test2:yuanfaxiang
緇撴灉鏄劇ずtest2.sh緇ф壙浜唗est1.sh涓畾涔夌殑鍙橀噺aaa銆?br />鍘熷洜鍒嗘瀽錛氬湪絎竴嬈℃墽琛宼est2.sh鏃訛紝test1.sh琚綔涓轟簡test2.sh鐨勫瓙shell鏉ユ墽琛岋紝鍏朵腑瀹氫箟鐨勫彉閲忓彧
鍦╰est1.sh涓搗鏁堬紝涓嶈兘閫嗗悜浼犻掑埌test2.sh涓紱鑰屽湪絎簩嬈℃墽琛屼腑錛岄噰鐢╯ource鏉ユ墽琛宼est1.sh,鎰忔?br />鏄洿鎺ユ妸test1.sh鍦ㄥ綋鍓嶇殑test2.sh涓墽琛岋紝娌℃湁浣滀負瀛恠hell鍘繪墽琛岋紝test1.sh涓畾涔夌殑鍙橀噺錛屽氨褰卞搷
鍒頒簡test2.sh銆?br />
濡傛灉鎴戜滑鍐嶅緩涓涓猼est3.sh
#!/bin/bash
echo "test3:$aaa"
鎶妕est2.sh鏀規垚錛?br />#!/bin/bash
source /root/test1.sh
echo "test2:$aaa"
/root/test3.sh
鎵цtest2.sh錛?br />[root@shenji ~]# sh test2.sh
test1:yuanfaxiang
test2:yuanfaxiang
test3:
緇撴灉鏄劇ずtest3.sh娌℃湁緇ф壙test1.sh涓敵鏄庣殑鍙橀噺錛屽洜涓簊ource /root/test1.sh鍙槸璁﹖est1.sh
涓殑鍙橀噺鍦╰est2.sh涓敓鏁堬紝aaa姣曠珶榪樻槸涓櫘閫氬眬閮ㄥ彉閲忥紝騫朵笉鑳借test3.sh榪欎釜瀛恠hell鎵緇ф壙錛?br />鎵浠ユ垜浠彲浠ユ兂鍒扮幆澧冨彉閲忥紝鎶奱aa鍙樻垚test2.sh榪欎釜鑴氭湰鐨勭幆澧冨彉閲忥紝璁﹖est2.sh鐨勫瓙榪涚▼涔熻兘緇ф壙銆?br />
灝唗est1.sh鏀規垚錛?br />#!/bin/bash
export aaa=yuanfaxiang
echo "test1:$aaa"
鎵цtest2.sh鍚庢湁濡備笅緇撴灉錛?br />[root@shenji ~]# sh test2.sh
test1:yuanfaxiang
test2:yuanfaxiang
test3:yuanfaxiang
鍦╰est1.sh涓0鏄庝簡鐜鍙橀噺涔熷氨鏄叏灞鍙橀噺錛屽湪test2.sh涓敤source鎵цtest1.sh錛屽皢鍙橀噺甯﹀埌浜?br />test2.sh涓紝騫朵嬌涔嬫垚涓簍est2.sh鎵ц榪囩▼涓殑鐜鍙橀噺錛屽彲浠ヨtest2.sh鐨勫瓙榪涚▼緇ф壙錛岃搗鍒頒簡欏哄悜
浼犻掓晥鏋溿?/div>
]]> -C 鐢ㄦ潵鎸囧畾鎵鎵ц鐨勫懡浠ゅ悕縐幫紝浣犺繖閲屼篃灝辨槸璁﹑s浠呬粎鏄劇ずphp鍛戒護鎵浜х敓鐨勮繘紼嬬殑淇℃伅
ps -C java -o lstart,pid,cmd銆愪笉榪囪矊浼兼墦鍗扮殑涓嶅叏~銆?/span>
ps -A -o lstart,pid,args |grep java銆愯繖涓彲浠ョ殑~銆?/span>
銆銆鍥犱負鐘舵佷負 z鎴栬匷 鐨勮繘紼嬩負鍍靛案榪涚▼錛屾墍浠ユ垜浠嬌鐢╣rep鎶撳彇stat鐘舵佷負zZ榪涚▼
銆銆榪愯緇撴灉鍙傝冨涓?/span> 涓嶈兘闅忎究鏉鐖惰繘紼?
ps -aux 鍏堟壘鍒板兊姝昏繘紼婭D,濡?031
lsof -p 5031鐪嬬湅鍍墊鍦ㄤ粈涔堝湴鏂?涓鑸湴璁叉閿佸湪鏌愪釜鏂囦歡鎴栧叧鑱斿湪鏌愪釜榪涚▼
鍘婚櫎姝婚攣鏂囦歡鎴栨潃姝葷浉鍏寵仈榪涚▼鍏?/pre>
ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'
鍛戒護娉ㄨВ錛?br /> -A 鍙傛暟鍒楀嚭鎵鏈夎繘紼?br /> -o 鑷畾涔夎緭鍑哄瓧孌?鎴戜滑璁懼畾鏄劇ず瀛楁涓?stat錛堢姸鎬侊級, ppid錛堣繘紼嬬埗id錛? pid(榪涚▼id)錛宑md錛堝懡浠わ級榪欏洓涓弬鏁?br /> 鍥犱負鐘舵佷負 z鎴栬匷鐨勮繘紼嬩負鍍靛案榪涚▼錛屾墍浠ユ垜浠嬌鐢╣rep鎶撳彇stat鐘舵佷負zZ榪涚▼
榪愯緇撴灉鍙傝冨涓?br /> Z 12334 12339 /path/cmd
榪欐椂錛屾垜浠彲浠ヤ嬌鐢?kill -HUP 12339鏉ユ潃鎺夎繖涓兊灝歌繘紼?br /> 榪愯鍚庯紝鍙互鍐嶆榪愯ps -A -ostat,ppid,pid,cmd | grep -e '^[Zz]'鏉ョ‘璁ゆ槸鍚﹀凡緇忓皢鍍靛案榪涚▼鏉姝?br /> 濡傛灉kill 瀛愯繘紼嬬殑鏃犳晥錛屽彲浠ュ皾璇昸ill 鍏剁埗榪涚▼鏉ヨВ鍐抽棶棰橈紝渚嬪涓婇潰渚嬪瓙鐖惰繘紼媝id鏄?12334錛岄偅涔堟垜浠氨榪愯
kill -HUP 12334
鏉ヨВ鍐抽棶棰?
]]>[root@testdb~]# kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS
SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX
淇″彿鏄湪杞歡灞傛涓婂涓柇鏈哄埗鐨勪竴縐嶆ā鎷燂紝鍦ㄥ師鐞嗕笂錛屼竴涓繘紼嬫敹鍒頒竴涓俊鍙蜂笌澶勭悊鍣ㄦ敹鍒頒竴涓腑鏂姹傚彲浠ヨ鏄竴鏍風殑銆備俊鍙鋒槸寮傛鐨勶紝涓涓繘紼嬩笉蹇呴氳繃浠諱綍鎿嶄綔鏉ョ瓑寰呬俊鍙風殑鍒拌揪錛屼簨瀹炰笂錛岃繘紼嬩篃涓嶇煡閬撲俊鍙峰埌搴曚粈涔堟椂鍊欏埌杈俱?/p>
鏈俊鍙峰湪鐢ㄦ埛緇堢榪炴帴(姝e父鎴栭潪姝e父)緇撴潫鏃跺彂鍑? 閫氬父鏄湪緇堢鐨勬帶鍒惰繘紼嬬粨鏉熸椂, 閫氱煡鍚屼竴session鍐呯殑鍚勪釜浣滀笟, 榪欐椂瀹冧滑涓庢帶鍒剁粓绔笉鍐嶅叧鑱斻?/p>
紼嬪簭緇堟(interrupt)淇″彿, 鍦ㄧ敤鎴烽敭鍏NTR瀛楃(閫氬父鏄疌trl-C)鏃跺彂鍑猴紝鐢ㄤ簬閫氱煡鍓嶅彴榪涚▼緇勭粓姝㈣繘紼嬨?/p>
鍜孲IGINT綾諱技, 浣嗙敱QUIT瀛楃(閫氬父鏄疌trl-\)鏉ユ帶鍒? 榪涚▼鍦ㄥ洜鏀跺埌SIGQUIT閫鍑烘椂浼氫駭鐢焎ore鏂囦歡, 鍦ㄨ繖涓剰涔変笂綾諱技浜庝竴涓▼搴忛敊璇俊鍙楓?/p>
鎵ц浜嗛潪娉曟寚浠? 閫氬父鏄洜涓哄彲鎵ц鏂囦歡鏈韓鍑虹幇閿欒, 鎴栬呰瘯鍥炬墽琛屾暟鎹. 鍫嗘爤婧㈠嚭鏃朵篃鏈夊彲鑳戒駭鐢熻繖涓俊鍙楓?/p>
鐢辨柇鐐規寚浠ゆ垨鍏跺畠trap鎸囦護浜х敓. 鐢眃ebugger浣跨敤銆?/p>
璋冪敤abort鍑芥暟鐢熸垚鐨勪俊鍙楓?/p>
闈炴硶鍦板潃, 鍖呮嫭鍐呭瓨鍦板潃瀵歸綈(alignment)鍑洪敊銆傛瘮濡傝闂竴涓洓涓瓧闀跨殑鏁存暟, 浣嗗叾鍦板潃涓嶆槸4鐨勫嶆暟銆傚畠涓嶴IGSEGV鐨勫尯鍒湪浜庡悗鑰呮槸鐢變簬瀵瑰悎娉曞瓨鍌ㄥ湴鍧鐨勯潪娉曡闂Е鍙戠殑(濡傝闂笉灞炰簬鑷繁瀛樺偍絀洪棿鎴栧彧璇誨瓨鍌ㄧ┖闂?銆?/p> SIGFPE
鍦ㄥ彂鐢熻嚧鍛界殑綆楁湳榪愮畻閿欒鏃跺彂鍑? 涓嶄粎鍖呮嫭嫻偣榪愮畻閿欒, 榪樺寘鎷孩鍑哄強闄ゆ暟涓?絳夊叾瀹冩墍鏈夌殑綆楁湳鐨勯敊璇?/p>
鐢ㄦ潵绔嬪嵆緇撴潫紼嬪簭鐨勮繍琛? 鏈俊鍙蜂笉鑳借闃誨銆佸鐞嗗拰蹇界暐銆傚鏋滅鐞嗗憳鍙戠幇鏌愪釜榪涚▼緇堟涓嶄簡錛屽彲灝濊瘯鍙戦佽繖涓俊鍙楓?/p>
鐣欑粰鐢ㄦ埛浣跨敤
璇曞浘璁塊棶鏈垎閰嶇粰鑷繁鐨勫唴瀛? 鎴栬瘯鍥懼線娌℃湁鍐欐潈闄愮殑鍐呭瓨鍦板潃鍐欐暟鎹?
鐣欑粰鐢ㄦ埛浣跨敤
綆¢亾鐮磋銆傝繖涓俊鍙烽氬父鍦ㄨ繘紼嬮棿閫氫俊浜х敓錛屾瘮濡傞噰鐢‵IFO(綆¢亾)閫氫俊鐨勪袱涓繘紼嬶紝璇葷閬撴病鎵撳紑鎴栬呮剰澶栫粓姝㈠氨寰綆¢亾鍐欙紝鍐欒繘紼嬩細鏀跺埌SIGPIPE淇″彿銆傛澶栫敤Socket閫氫俊鐨勪袱涓繘紼嬶紝鍐欒繘紼嬪湪鍐橲ocket鐨勬椂鍊欙紝璇昏繘紼嬪凡緇忕粓姝€?/p>
鏃墮挓瀹氭椂淇″彿, 璁$畻鐨勬槸瀹為檯鐨勬椂闂存垨鏃墮挓鏃墮棿. alarm鍑芥暟浣跨敤璇ヤ俊鍙?
紼嬪簭緇撴潫(terminate)淇″彿, 涓嶴IGKILL涓嶅悓鐨勬槸璇ヤ俊鍙峰彲浠ヨ闃誨鍜屽鐞嗐傞氬父鐢ㄦ潵瑕佹眰紼嬪簭鑷繁姝e父閫鍑猴紝shell鍛戒護kill緙虹渷浜х敓榪欎釜淇″彿銆傚鏋滆繘紼嬬粓姝笉浜嗭紝鎴戜滑鎵嶄細灝濊瘯SIGKILL銆?/p>
瀛愯繘紼嬬粨鏉熸椂, 鐖惰繘紼嬩細鏀跺埌榪欎釜淇″彿銆?/strong>
璁╀竴涓仠姝?stopped)鐨勮繘紼嬬戶緇墽琛? 鏈俊鍙蜂笉鑳借闃誨. 鍙互鐢ㄤ竴涓猦andler鏉ヨ紼嬪簭鍦ㄧ敱stopped鐘舵佸彉涓虹戶緇墽琛屾椂瀹屾垚鐗瑰畾鐨勫伐浣? 渚嬪, 閲嶆柊鏄劇ず鎻愮ず絎?/p>
鍋滄(stopped)榪涚▼鐨勬墽琛? 娉ㄦ剰瀹冨拰terminate浠ュ強interrupt鐨勫尯鍒?璇ヨ繘紼嬭繕鏈粨鏉? 鍙槸鏆傚仠鎵ц. 鏈俊鍙蜂笉鑳借闃誨, 澶勭悊鎴栧拷鐣?
鍋滄榪涚▼鐨勮繍琛? 浣嗚淇″彿鍙互琚鐞嗗拰蹇界暐. 鐢ㄦ埛閿叆SUSP瀛楃鏃?閫氬父鏄疌trl-Z)鍙戝嚭榪欎釜淇″彿
褰撳悗鍙頒綔涓氳浠庣敤鎴風粓绔鏁版嵁鏃? 璇ヤ綔涓氫腑鐨勬墍鏈夎繘紼嬩細鏀跺埌SIGTTIN淇″彿. 緙虹渷鏃惰繖浜涜繘紼嬩細鍋滄鎵ц.
綾諱技浜嶴IGTTIN, 浣嗗湪鍐欑粓绔?鎴栦慨鏀圭粓绔ā寮?鏃舵敹鍒?
鏈?#8221;绱ф?#8221;鏁版嵁鎴杘ut-of-band鏁版嵁鍒拌揪socket鏃朵駭鐢?
瓚呰繃CPU鏃墮棿璧勬簮闄愬埗. 榪欎釜闄愬埗鍙互鐢眊etrlimit/setrlimit鏉ヨ鍙?鏀瑰彉銆?/p>
褰撹繘紼嬩紒鍥炬墿澶ф枃浠朵互鑷充簬瓚呰繃鏂囦歡澶у皬璧勬簮闄愬埗銆?/p>
铏氭嫙鏃墮挓淇″彿. 綾諱技浜嶴IGALRM, 浣嗘槸璁$畻鐨勬槸璇ヨ繘紼嬪崰鐢ㄧ殑CPU鏃墮棿.
綾諱技浜嶴IGALRM/SIGVTALRM, 浣嗗寘鎷榪涚▼鐢ㄧ殑CPU鏃墮棿浠ュ強緋葷粺璋冪敤鐨勬椂闂?
紿楀彛澶у皬鏀瑰彉鏃跺彂鍑?
鏂囦歡鎻忚堪絎﹀噯澶囧氨緇? 鍙互寮濮嬭繘琛岃緭鍏?杈撳嚭鎿嶄綔.
Power failure
闈炴硶鐨勭郴緇熻皟鐢ㄣ?/p>
涓嶈兘鎭㈠鑷抽粯璁ゅ姩浣滅殑淇″彿鏈夛細SIGILL,SIGTRAP
榛樿浼氬鑷磋繘紼嬫祦浜х殑淇″彿鏈夛細SIGABRT,SIGBUS,SIGFPE,SIGILL,SIGIOT,SIGQUIT,SIGSEGV,SIGTRAP,SIGXCPU,SIGXFSZ
榛樿浼氬鑷磋繘紼嬮鍑虹殑淇″彿鏈夛細SIGALRM,SIGHUP,SIGINT,SIGKILL,SIGPIPE,SIGPOLL,SIGPROF,SIGSYS,SIGTERM,SIGUSR1,SIGUSR2,SIGVTALRM
榛樿浼氬鑷磋繘紼嬪仠姝㈢殑淇″彿鏈夛細SIGSTOP,SIGTSTP,SIGTTIN,SIGTTOU
榛樿榪涚▼蹇界暐鐨勪俊鍙鋒湁錛歋IGCHLD,SIGPWR,SIGURG,SIGWINCH
淇″彿 鍙栧?/strong> 榛樿鍔ㄤ綔 鍚箟錛堝彂鍑轟俊鍙風殑鍘熷洜錛?/strong> SIGHUP 1 Term 緇堢鐨勬寕鏂垨榪涚▼姝諱骸 SIGINT 2 Term 鏉ヨ嚜閿洏鐨勪腑鏂俊鍙?/td> SIGQUIT 3 Core 鏉ヨ嚜閿洏鐨勭寮淇″彿 SIGILL 4 Core 闈炴硶鎸囦護 SIGABRT 6 Core 鏉ヨ嚜abort鐨勫紓甯鎬俊鍙?/td> SIGFPE 8 Core 嫻偣渚嬪 SIGKILL 9 Term 鏉姝?/td> SIGSEGV 11 Core 孌甸潪娉曢敊璇?鍐呭瓨寮曠敤鏃犳晥) SIGPIPE 13 Term 綆¢亾鎹熷潖錛氬悜涓涓病鏈夎榪涚▼鐨勭閬撳啓鏁版嵁 SIGALRM 14 Term 鏉ヨ嚜alarm鐨勮鏃跺櫒鍒版椂淇″彿 SIGTERM 15 Term 緇堟 SIGUSR1 30,10,16 Term 鐢ㄦ埛鑷畾涔変俊鍙? SIGUSR2 31,12,17 Term 鐢ㄦ埛鑷畾涔変俊鍙? SIGCHLD 20,17,18 Ign 瀛愯繘紼嬪仠姝㈡垨緇堟 SIGCONT 19,18,25 Cont 濡傛灉鍋滄錛岀戶緇墽琛?/td> SIGSTOP 17,19,23 Stop 闈炴潵鑷粓绔殑鍋滄淇″彿 SIGTSTP 18,20,24 Stop 鏉ヨ嚜緇堢鐨勫仠姝俊鍙?/td> SIGTTIN 21,21,26 Stop 鍚庡彴榪涚▼璇葷粓绔?/td> SIGTTOU 22,22,27 Stop 鍚庡彴榪涚▼鍐欑粓绔?/td> SIGBUS 10,7,10 Core 鎬葷嚎閿欒錛堝唴瀛樿闂敊璇級 SIGPOLL Term Pollable浜嬩歡鍙戠敓(Sys V)錛屼笌SIGIO鍚屼箟 SIGPROF 27,27,29 Term 緇熻鍒嗗竷鍥劇敤璁℃椂鍣ㄥ埌鏃?/td> SIGSYS 12,-,12 Core 闈炴硶緋葷粺璋冪敤(SVr4) SIGTRAP 5 Core 璺熻釜/鏂偣鑷櫡 SIGURG 16,23,21 Ign socket绱фヤ俊鍙?4.2BSD) SIGVTALRM 26,26,28 Term 铏氭嫙璁℃椂鍣ㄥ埌鏃?4.2BSD) SIGXCPU 24,24,30 Core 瓚呰繃CPU鏃墮檺(4.2BSD) SIGXFSZ 25,25,31 Core 瓚呰繃鏂囦歡闀垮害闄愬埗(4.2BSD) SIGIOT 6 Core IOT鑷櫡錛屼笌SIGABRT鍚屼箟 SIGEMT 7,-,7 Term SIGSTKFLT -,16,- Term 鍗忓鐞嗗櫒鍫嗘爤閿欒(涓嶄嬌鐢? SIGIO 23,29,22 Term 鎻忚堪絎︿笂鍙互榪涜I/O鎿嶄綔 SIGCLD -,-,18 Ign 涓嶴IGCHLD鍚屼箟 SIGPWR 29,30,19 Term 鐢靛姏鏁呴殰(System V) SIGINFO 29,-,- 涓嶴IGPWR鍚屼箟 SIGLOST -,-,- Term 鏂囦歡閿佷涪澶?/td> SIGWINCH 28,28,20 Ign 紿楀彛澶у皬鏀瑰彉(4.3BSD, Sun) SIGUNUSED -,31,- Term 鏈嬌鐢ㄤ俊鍙?will be SIGSYS)
]]>* soft core unlimited
* hard core unlimited[root@localhost ~]# ulimit -a
core file size (blocks, -c) 0# No core files by default
ulimit -S -c 0 > /dev/null 2>&1# No core files by default
#ulimit -S -c 0 > /dev/null 2>&1[root@localhost ~]# ulimit -a
core file size (blocks, -c) ulimited-----------------------------------------------------------------
]]>
涓銆佷慨鏀?etc/httpd/conf/httpd.conf鏂囦歡涓殑鐩戝惉绔彛鍙?/p>
Listen 80
鎶?0淇敼鎴愰渶瑕佺殑鍙鳳紝濡?000錛屽嵆
Listen 8000
浜屻佹煡鐪婼ELinux涓媓ttp鐩稿叧绔彛
# semanage port -l|grep http
http_cache_port_t tcp 3128, 8080, 8118, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
鍙戠幇8000涓嶅湪鍏惰寖鍥翠箣鍐咃紝鎵浠ラ渶瑕佸彟澶栨坊鍔狅紝鏂規硶濡備笅錛?/p>
# semanage port -a -t http_port_t -p tcp 8000
鍐嶆鏌ョ湅錛?/p>
# semanage port -l|grep http
http_cache_port_t tcp 3128, 8080, 8118, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 8000, 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
涓夈佸湪闃茬伀澧欎腑寮鏀炬柊娣誨姞鐨勭鍙?/p>
淇敼/etc/sysconfig/iptables鏂囦歡錛屽湪鏂囦歡涓坊鍔犲涓琛岋細
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8008 -j ACCEPT
鍥涖侀噸鍚槻鐏鍜孉pache
# service iptables restart
# service httpd restart
浜斻佹甯告儏鍐典笅錛屽簲璇ュ彲浠ラ氳繃鏂扮鍙h闂甒EB鏈嶅姟浜嗐?/p>
娉細
1銆佺浜屻佷笁銆佸洓姝ラ鏄湪緋葷粺宸茬粡寮鍚疭ELinux鍜岄槻鐏鐨勬儏鍐典笅璁劇疆鐨勶紝濡傛灉宸茬粡鍏抽棴姝や袱涓湇鍔★紝淇敼绔彛鍚庣洿鎺ラ噸鍚疉pache鍗沖彲錛?/p>
2銆佷慨鏀圭殑绔彛鍙峰彲浠ユ槸鎵ц#semanage port -l|grep http鍚庯紝榛樿宸茬粡鏈夌殑绔彛錛屽8443錛岃繖鏍峰彲浠ョ渷鐣ラ澶栨坊鍔燬ELinux绔彛鎿嶄綔錛?/p>
3銆佺涓夋鎿嶄綔鍙互鍥懼艦鐣岄潰涓嬪畬鎴愩?/p>
鍙傝冭祫鏂?/p>
1銆丳ermission denied: make_sock: could not bind to address
http://emmune.blogspot.com/2009/07/permission-denied-makesock-could-not.html
涓嶇啛鎮塸ython銆乸lone銆亃ope錛屾兂鐢╝pache銆?0绔彛宸茬粡涓嶅湪錛屽氨寰佺敤81绔彛鍑戝悎鍚с備慨鏀筯ttpd.conf鍚巃pachectl start錛岀粨鏋滐細
(13)Permission denied: make_sock: could not bind to address [::]:81
(13)Permission denied: make_sock: could not bind to address 0.0.0.0:81
鏌ヤ竴涓婼ELinux涓媓ttp鐩稿叧绔彛 semanage port -l|grep http錛岀粨鏋滐細
http_cache_port_t tcp 3128, 8080, 8118, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 443, 488, 8008, 8009, 8443
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989
鐩存帴鐢╩an semanage鏈鍚庝緥瀛愪腑鐨勪竴鍙?br /># Allow Apache to listen on port 81
semanage port -a -t http_port_t -p tcp 81
鐒跺悗鍐峚pachectl start錛孫K銆備嬌鐢ㄥ煙鍚?81鑳藉璁塊棶鍟︺?br />
娉細semanage
semanage is used to configure certain elements of SELinux policy without requiring modification to or recompilation from policy sources. This includes the mapping from Linux usernames to SELinux user identities (which controls the initial security context assigned to Linux users when they login and bounds their authorized role set) as well as security context mappings for various kinds of objects, such as network ports, interfaces, and nodes(hosts) as well as the file context mapping. See the EXAMPLES section below for some examples of common usage. Note that the semanage login command deals with the mapping from Linux usernames (logins) to SELinux user identities, while the semanage user command deals with the mapping from SELinux user identities to authorized role sets. In most cases, only the former mapping needs to be adjusted by the administrator; the latter is principally defined by the base policy and usually does not require modification.
2銆乴inux 涓媋pche鏃犳硶鐩戝惉绔彛瑙e喅鍔炴硶
http://www.zzxj.net/blog/fxs_2008/archive/2010/07/05/187.html
鎯沖緩绔嬩竴涓祴璇曠敤鐨勮櫄鎷熶富鏈猴紝閬囧埌浜嗚繖涓棶棰橈細Hi there!
For the TCP connections: socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
In case you're having problems in socket_connect() with socket_strerror() = "Permission denied", you may be having a SELinux config issue.
Check if SELinux is enabled:
# /usr/sbin/sestatus -v
In case it is, you can just type the command:
# setsebool httpd_can_network_connect=1
That's it... I read you had to reboot, but I didn't and it worked fine anyway. More info, you may check:
http://arkiv.netbsd.se/?ml=squirrelmail-users&a=2005-11&t=1523021
鏈榪戦」鐩腑浣跨敤鍒頒簡PHP涓嶤鏈嶅姟鍣ㄧ殑socket閫氫俊錛屽湪鍋氭暟鎹漿鎹㈢殑鏃跺欙紝PHP娌℃湁鎻愪緵瀵瑰簲灝嗙綉緇滃瓧鑺傚簭鍜屾満鍣ㄥ瓧鑺傚簭鐩鎬簰杞崲鐨勭▼搴忥紝浣嗘槸鏍規嵁鍑芥暟鐨勬剰涔夛紝鎴戜滑鍙互鍋氱浉搴旂殑杞崲鏉ュ疄鐜拌繖涓鍑芥暟錛?/p>
1 2 3 4 | function ntohl( $str ){ $arr = unpack( 'I' , pack( 'N' , $str )); return $arr [1]; } |
鍑芥暟鐨勬剰涔?/strong>
紼嬪簭鐨勪綔鐢ㄦ槸灝嗙綉緇滃瓧鑺傚簭鍜屾満鍣ㄥ瓧鑺傚簭榪涜鐩鎬簰杞崲銆傚湪C/C++銆丳ython銆丏elphi涓兘鎻愪緵浜嗙浉搴旂殑鍑芥暟“ntohl”鍜?#8220;htonl”錛屽鏋滄槸short綾誨瀷灝辨槸“ntohs”鍜?#8220;htons”銆備笅闈㈡槸榪欎簺鍑芥暟鐨勬剰涔夛細
ntohl()--"Network to Host Long" htonl()--"Host to Network Long" htons()--"Host to Network Short" ntohs()--"Network to Host Short"
浠涔堟槸涓繪満瀛楄妭搴?/strong>
涓嶅悓鐨勬満鍣ㄥ瓧鑺傚簭涓嶇浉鍚岋紝榪欎笌浣跨敤鐨凜PU鏈夊叧銆備笉鍚岀殑CPU鍦ㄥ鐞嗛珮浣嶅瓧鑺傛椂鎵瀛樺偍鐨勯『搴忔槸涓嶅悓鐨勩?br /> 渚嬪Intel x86緇撴瀯涓? short鍨嬫暟0×1234琛ㄧず涓?4 12, int鍨嬫暟0×12345678琛ㄧず涓?8 56 34 12
濡侷BM power PC緇撴瀯涓? short鍨嬫暟0×1234琛ㄧず涓?2 34, int鍨嬫暟0×12345678琛ㄧず涓?2 34 56 78
緗戠粶瀛楄妭搴?/strong>
姝f槸鐢變簬姣忎釜涓繪満鐨勫鐞嗛『搴忔湁鍙兘涓嶅悓錛屾墍浠ュ湪緗戠粶鍗忚涓瀹氭暟鎹粠楂樺埌浣庨『搴忓瓨鍌紝鐩殑鏄湪涓嶅悓鏋舵瀯鐨勪富鏈轟腑鍙互姝e父閫氫俊錛岄伩鍏嶅吋瀹規ч棶棰樸?/p>
monitor# /usr/local/php/bin/php -m [Zend Modules] |
瀹夎php-5.3.4.tar.bz2棣栧厛瑕佸畨瑁卨ibxml2鑰屼笖鐗堟湰涓嶄綆浜?.6.11錛岃繖閲屾垜閫夋嫨鐨刲ibxml2-2.6.30.tar.bz2
[root@localhost root]# tar xjvf libxml2-2.6.31.tar.bz2
[root@localhost root]# cd libxml2-2.6.31
[root@localhost libxml2-2.6.31]# ./configure --prefix=/usr/local/libxml2
[root@localhost libxml2-2.6.31]# make
[root@localhost libxml2-2.6.31]# make install
鍒拌繖閲宭ibxml2灝卞畨瑁呭畬鎴愪簡錛屼笅闈㈠紑濮嬪畨瑁匬HP5.3
[root@localhost libxml2-2.6.31]# cd
[root@localhost root]# tar -xjvf php-5.3.4.tar.gz2
[root@localhost root]# cd php-5.3.4
[root@localhost php-5.3.4]# ./configure --prefix=/usr/local/php5 //瀹夎浣嶇疆
--enable-mbstring //璁劇疆 php 鏀寔澶氬瓧鑺傚瓧絎︿覆
--with-apxs2=/usr/local/apache2/bin/apxs //璁劇疆 apache 鏈嶅姟鏀寔 apxs浣嶇疆
--width-libxml-dir=/usr/local/libxml2 //璁劇疆鍒氭墠瀹夎鐨刲ibxml2浣嶇疆
--with-mysql=/usr/mysql //璁劇疆 mysql 紼嬪簭瀹夎浣嶇疆
--with-config-file-path=/usr/local/php5 //璁劇疆 php 紼嬪簭閰嶇疆鏂囦歡浣嶇疆
[root@localhost php-5.3.4]# make
[root@localhost php-5.3.4]# make install
[root@localhost php-5.3.4]# cp php.ini-development /usr/local/php5/php.ini
鍦?APACHE閲屾坊鍔?php錛屼嬌 APACHE 鏀寔 PHP
[root@localhost php-5.3.4]# vi /usr/local/apache2/conf/httpd.conf
53 LoadModule php5_module modules/libphp5.so
54 AddType application/x-httpd-php .php //鎴栬呭湪涓嬮潰鐨刴eta涓畾涔?鎼滅儲AddType灝卞彲浠ユ壘鍒?
167
168 DirectoryIndex index.php index.html
169
[root@localhost php-5.3.4]# service apache restart
鍒涘緩index.php鍦ㄧ綉绔欓粯璁ゆ牴鐩綍涓嬶紝杈撳叆緗戝潃璁塊棶嫻嬭瘯
SOCK_RAW
to create the socket. It might be you need root privilegues on your machine to execute this code. If this any issue with your enviroment, then fall back to shell_exec
鍦ㄤ嬌鐢≒HP緙栧啓web欏甸潰璁塊棶Postgres鏁版嵁搴撴椂錛岄亣鍒頒簡apache 娌℃湁姝g‘鍔犺澆pdo_pgsql.so鐨勯棶棰橈紝 鎶婂畠璁板綍涓嬫潵浠ュ鐢ㄣ?/p>
閫氳繃web璁塊棶php欏甸潰鏃訛紝欏甸潰娌℃湁鍙嶅簲錛?鏌ョ湅http log鏃跺嚭鐜頒笅闈㈢殑閿欒錛?/p>
PHP Fatal error: Call to undefined function pg_connect()
浣嗘槸鍦ㄥ懡浠よ榪愯php紼嬪簭璁塊棶postgres嫻嬭瘯鏄垚鍔熺殑錛?娌℃湁鍙戠幇闂銆?/p>
緗戜笂鎼滅儲錛岄兘鏄php璁塊棶postgres 瀹夎浜唒hp-pgsql灝卞彲浠ヤ簡銆?浣嗘垜宸茬粡閫氳繃yum瀹夎浜唒hp-pgsql錛?鏌ョ湅/etc/php.ini, /etc/php.d/pdo_pgsql.ini閮芥槸閰嶇疆姝g‘鐨勩?/p>
[root@localhost php.d]# cat pdo_pgsql.ini
; Enable pdo_pgsql extension module
extension=pdo_pgsql.so
phpinfo錛堬級涔熸樉紺哄姞杞戒簡pdo_pgsql.ini錛?pgsql.ini 錛?浣嗗湪PDO鑺傞噷娌℃湁鐪嬪埌Postgres銆?/p>
鍚庢潵鎯沖埌浼氫笉浼氭槸SElinux鐨勯棶棰橈紝 鎶奡Elinux 鍏充簡錛屽啀閲嶅惎apache錛?/p>
[root@localhost php.d]# setenforce 0
service httpd restart
閲嶅惎榪愯phpinfo(), 灝辯湅鍒皃ostgres 姝g‘鍔犺澆浜嗐?/p>
鍥炶繃鏉ユ煡鐪嬩互鍓峚pache 鐨別rror_log, 紜疄鏄痯hp 鍦ㄥ姞杞絧do_pgsql.so 鏃跺嚭鐜頒簡鐢變簬璁塊棶鏉冮檺寮曡搗鐨勯棶棰樸?/p>
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pdo_pgsql.so' - libpq.so.5: failed to map segment from shared object: Permission denied in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/pgsql.so' - libpq.so.5: failed to map segment from shared object: Permission denied in Unknown on line 0
鎶奡Elinux 鍏充簡鍚庯紝 鍚姩apache鏃跺氨娌℃湁榪欎釜閿欒浜嗭紝php涔熸垚鍔熷姞杞戒簡pgsql銆?br />
鍦ㄥ疄闄呭簲鐢ㄤ腑灝遍渶瑕佸叧闂璖Elinux錛屾垨鑰呴噸璁緇ibpq.so.5鐨勬潈闄愩?/p>
錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛嶏紞錛?/p>
錛弖sr/bin/apxs: no such file or directory
yum install httpd-devel
銆銆杞歡鐨勫畨瑁?/strong>
銆銆Linux涓嬭蔣浠剁殑瀹夎涓昏鏈変袱縐嶄笉鍚岀殑褰㈠紡銆傜涓縐嶅畨瑁呮枃浠跺悕涓簒xx.tar.gz錛涘彟涓縐嶅畨瑁呮枃浠跺悕涓簒xx.i386.rpm銆備互絎竴縐嶆柟寮忓彂琛岀殑杞歡澶氫負浠ユ簮鐮佸艦寮忓彂閫佺殑錛涚浜岀鏂瑰紡鍒欐槸鐩存帴浠ヤ簩榪涘埗褰㈠紡鍙戦佺殑銆?/p>
銆銆瀵逛簬絎竴縐嶏紝瀹夎鏂規硶濡備笅錛?/p>
銆銆1 .棣栧厛錛屽皢瀹夎鏂囦歡鎷瘋礉鑷充綘鐨勭洰褰曚腑銆備緥濡傦紝濡傛灉浣犳槸浠oot韜喚鐧誨綍涓婄殑錛屽氨灝嗚蔣浠舵嫹璐濊嚦/root涓?/p>
銆銆#cp xxx.tar.gz /root
銆銆2 .鐢變簬璇ユ枃浠舵槸琚帇緙╁茍鎵撳寘鐨?搴斿鍏惰В鍘嬬緝銆傚懡浠や負錛?/p>
銆銆#tar xvzf filename.tar.gz 濡傛灉鏄痜ilename.tar.bz2鏍煎紡鐨勶紝搴旇鏄痶ar jxvf filename.tar.bz2鏉ヨВ鍘?/p>
銆銆3. 鎵ц璇ュ懡浠ゅ悗錛屽畨瑁呮枃浠舵寜璺緞錛岃В鍘嬬緝鍦ㄥ綋鍓嶇洰褰曚笅銆傜敤ls鍛戒護鍙互鐪嬪埌瑙e帇緙╁悗鐨勬枃浠躲傞氬父鍦ㄨВ鍘嬬緝鍚庝駭鐢熺殑鏂囦歡涓紝鏈?#8220;Install”鐨勬枃浠躲傝鏂囦歡涓虹函鏂囨湰鏂囦歡錛岃緇嗚榪頒簡璇ヨ蔣浠跺寘鐨勫畨瑁呮柟娉曘?/p>
銆銆4.鎵ц瑙e帇緙╁悗浜х敓鐨勪竴涓悕涓篶onfigure鐨勫彲鎵ц鑴氭湰紼嬪簭銆傚畠鏄敤浜庢鏌ョ郴緇熸槸鍚︽湁緙栬瘧鏃舵墍闇鐨勫簱錛屼互鍙婂簱鐨勭増鏈槸鍚︽弧瓚崇紪璇戠殑闇瑕佺瓑瀹夎鎵闇瑕佺殑緋葷粺淇℃伅銆備負闅忓悗鐨勭紪璇戝伐浣滃仛鍑嗗銆傚懡浠や負錛?#./configure
銆銆濡傛灉鎮ㄦ兂鎶婅蔣浠跺畨瑁呭埌鎸囧畾鐩綍錛屽簲璇ョ敤#./configure --prefix=/鎮ㄨ嚜宸辨寚瀹氱殑鐩綍錛屾瘮濡傛垜鎯蟲妸涓涓猰lterm瀹夎鍒?opt/mlterm鐩綍涓紝搴旇濡備笅杈撳叆
銆銆#./configure --prefix=/opt/mlterm
銆銆5.媯鏌ラ氳繃鍚庯紝灝嗙敓鎴愮敤浜庣紪璇戠殑MakeFile鏂囦歡銆傛鏃訛紝鍙互寮濮嬭繘琛岀紪璇戜簡銆傜紪璇戠殑榪囩▼瑙嗚蔣浠剁殑瑙勬ā鍜岃綆楁満鎬ц兘鐨勪笉鍚岋紝鎵鑰楄垂鐨勬椂闂翠篃涓嶅悓銆傚懡浠や負錛?#make銆?/p>
銆銆6.鎴愬姛緙栬瘧鍚庯紝閿叆濡備笅鐨勫懡浠ゅ紑濮嬪畨瑁咃細
銆銆#make install
銆銆7.瀹夎瀹屾瘯錛屽簲娓呴櫎緙栬瘧榪囩▼涓駭鐢熺殑涓存椂鏂囦歡鍜岄厤緗繃紼嬩腑浜х敓鐨勬枃浠躲傞敭鍏ュ涓嬪懡浠わ細
銆銆#make clean
銆銆#make distclean
銆銆鑷蟲錛岃蔣浠剁殑瀹夎緇撴潫銆?/p>
銆銆瀵逛簬絎簩縐嶏紝鍏跺畨瑁呮柟娉曡綆鍗曞緱澶氥?/p>
銆銆鍚岀涓縐嶆柟寮忎竴鏍鳳紝灝嗗畨瑁呮枃浠舵嫹璐濊嚦浣犵殑鐩綍涓傜劧鍚庝嬌鐢╮pm鏉ュ畨瑁呰鏂囦歡銆傚懡浠ゅ涓嬶細
銆銆#rpm -i filename.i386.rpm
銆銆rpm灝嗚嚜鍔ㄥ皢瀹夎鏂囦歡瑙e寘錛屽茍灝嗚蔣浠跺畨瑁呭埌緙虹渷鐨勭洰褰曚笅銆傚茍灝嗚蔣浠剁殑瀹夎淇℃伅娉ㄥ唽鍒皉pm鐨勬暟鎹簱涓傚弬鏁癷鐨勪綔鐢ㄦ槸浣縭pm榪涘叆瀹夎妯″紡銆?/p>
銆銆杞歡鐨勫嵏杞?/strong>
銆銆1.杞歡鐨勫嵏杞戒富瑕佹槸浣跨敤rpm鏉ヨ繘琛岀殑銆傚嵏杞借蔣浠墮鍏堣鐭ラ亾杞歡鍖呭湪緋葷粺涓敞鍐岀殑鍚嶇О銆傞敭鍏ュ懡浠わ細
銆銆#rpm -q -a
銆銆鍗沖彲鏌ヨ鍒板綋鍓嶇郴緇熶腑瀹夎鐨勬墍鏈夌殑杞歡鍖呫?/p>
銆銆2. 紜畾浜嗚鍗歌澆鐨勮蔣浠剁殑鍚嶇О錛屽氨鍙互寮濮嬪疄闄呭嵏杞借杞歡浜嗐傞敭鍏ュ懡浠わ細
銆銆#rpm -e [package name]
銆銆鍗沖彲鍗歌澆杞歡銆傚弬鏁癳鐨勪綔鐢ㄦ槸浣縭pm榪涘叆鍗歌澆妯″紡銆傚鍚嶄負[package name]鐨勮蔣浠跺寘榪涜鍗歌澆銆傜敱浜庣郴緇熶腑鍚勪釜杞歡鍖呬箣闂寸浉浜掓湁渚濊禆鍏崇郴銆傚鏋滃洜瀛樺湪渚濊禆鍏崇郴鑰屼笉鑳藉嵏杞斤紝rpm灝嗙粰浜堟彁紺哄茍鍋滄鍗歌澆銆備綘鍙互浣跨敤濡備笅鐨勫懡浠ゆ潵蹇界暐渚濊禆鍏崇郴錛岀洿鎺ュ紑濮嬪嵏杞斤細
銆銆#rpm -e [package name] -nodeps
銆銆蹇界暐渚濊禆鍏崇郴鐨勫嵏杞藉彲鑳戒細瀵艱嚧緋葷粺涓叾瀹冪殑涓浜涜蔣浠舵棤娉曚嬌鐢?/p>
銆銆濡傛灉鎯崇煡閬搑pm鍖呭畨瑁呭埌鍝噷浜嗗憿錛?/p>
銆銆搴旇鐢?#rpm -ql [package name]
銆銆3.濡備綍鍗歌澆鐢ㄦ簮鐮佸寘瀹夎鐨勮蔣浠訛紵
銆銆鏈濂芥槸鐪婻EADME鍜孖NSTALL 錛涗竴鑸殑鎯呭喌涓嬮兘鏈夎錛屼絾澶у杞歡娌℃湁鎻愪緵婧愮爜鍖呯殑鍗歌澆鏂規硶錛涙垜浠彲浠ユ壘鍒拌蔣浠剁殑瀹夎鐐瑰垹闄ゃ備富瑕佺湅浣犳妸瀹冨畨瑁呭湪鍝簡銆?/p>
銆銆姣斿錛?/p>
銆銆濡傛灉瀹夎杞歡鏃訛紝鎸囧畾涓洰褰曘傝繖涓棶棰樹篃涓嶄細闅撅紱
銆銆姣斿鐢ㄦ簮鐮佸寘瀹夎gaim 鐨?/p>
銆銆#./configure --prefix=/opt/gaim
銆銆#make
銆銆#make install
銆銆濡傛灉瀹夎mlterm
銆銆#./configure --prefix=/opt/mlterm
銆銆#make
銆銆#make install
銆銆鎶婃簮鐮佸寘瀹夎鐨勮蔣浠訛紝閮芥寚瀹氬畨瑁呭湪 /opt鐩綍涓紝榪欐牱涓嶅氨鐭ラ亾浜嗭紱
銆銆濡傛灉鍒犻櫎錛屽氨鍒犻櫎鐩稿簲鐨勮蔣浠剁洰褰曪紱
銆銆鏈変簺杞歡瑕佸湪瑙e帇瀹夎鐩綍涓墽琛?make uninstall 錛岃繖鏍峰氨鍗歌澆鎺変簡銆?/p>
centos涓嬪畨瑁卲hp
#yum install -y php
榪欎釜鍙畨瑁匬HP
寤鴻瀹夎榪愯搴撳強MySQL鐨勬敮鎸?/p>
#yum install -y php php-devel php-mysql // postgresql 鏄?php-pgsql
濡傛灉浣犵殑緋葷粺鏄疌entOS 5.6閭d箞涓婇潰榪欐潯鍛戒護瀹夎鐨勬槸PHP 5.1,
瑕佸畨瑁?PHP 5.3鍒欐墽琛屼笅闈㈢殑鍛戒護:
#yum install -y php53 php53-devel php53-mysql
鑷姩瀹夎鍚姩
#service httpd restart
浼氬畨瑁卆pache(涔熷氨鏄痟ttpd),浣嗘槸涓嶄細瀹夎MySQL,MySQL闇瑕佸崟鐙畨瑁? 瀹夎MySQL鍛戒護: #yum install -y mysql mysql-devel mysql-server 榪欐潯鍛戒護鍖呮嫭MySQL鐨勮繍琛屽簱鍙婃湇鍔$
銆銆瀹夎瀹屾瘯錛岃 MySQL 鑳藉闅忕郴緇熻嚜鍔ㄥ惎鍔細
銆銆璁劇疆 MySQL 鏁版嵁 root 璐︽埛鐨勫瘑鐮侊細
銆銆褰撳嚭鐜板涓嬫彁紺烘椂鍊欑洿鎺ユ寜鍥炶濺錛?/p>
Enter current password for root
銆銆鍑虹幇濡備笅鍐嶆鍥炶濺錛?/p>
Set root password? [Y/n]
銆銆鍑虹幇濡備笅鎻愮ず杈撳叆浣犻渶瑕佽緗殑瀵嗙爜錛屽洖杞﹀悗鍦ㄨ緭鍏ヤ竴嬈$‘璁わ細
New password:
銆銆鎺ヤ笅鏉ヨ繕浼氭湁鍥涗釜紜錛屽垎鍒槸錛?/p>
- Remove anonymous users? [Y/n]
- Disallow root login remotely? [Y/n]
- Remove test database and access to it? [Y/n]
- Reload privilege tables now? [Y/n]
銆銆鐩存帴鍥炶濺鍗沖彲銆?/p>
銆銆鐢變簬 CentOS 宸茬粡灝佽浜?Apache錛岀洿鎺ヨ繍琛屽畨瑁咃細
銆銆鍚屾牱閰嶇疆緋葷粺璁?Apache 闅忕郴緇熷惎鍔細
銆銆閰嶇疆瀹屾瘯錛屽惎鍔?Apache錛?/p>
銆銆姝ゆ椂宸茬粡鍙互璁塊棶浣犵殑鏈嶅姟鍣紝涓嶅嚭鎰忓鐨勮瘽錛岃兘澶熺湅鍒?“Apache 2 Test Page powered by CentOS” 鐨勬祴璇曢〉闈€傛敞鎰忥紝濡傛灉鍏朵粬鏈哄櫒璁塊棶榪欏彴鏈嶅姟鏃犳硶鏄劇ず榪欎釜欏甸潰錛岃岀洿鎺ュ湪榪欏彴鏈嶅姟鍣ㄤ笂鍙互璁塊棶鐨勮瘽錛屼竴鑸儏鍐典笅鏄?CentOS 鑷甫鐨勯槻鐏紱佹浜嗐備綘鍙渶瑕佽繘鍏ラ槻鐏錛屽皢 “WWW” 瀵瑰簲鐨?“80” 绔彛鎵撳紑鍗沖彲銆?/p>
銆銆娉ㄦ剰錛氬湪 CentOS 涓?Apache 鐨勯粯璁ゆ牴鐩綍鏄?/var/www/html錛岄厤緗枃浠?/etc/httpd/conf/httpd.conf銆傚叾浠栭厤緗瓨鍌ㄥ湪 /etc/httpd/conf.d/ 鐩綍銆?/p>
銆銆杈撳叆濡備笅鎸囦護瀹夎 PHP:
銆銆闇瑕侀噸鏂板惎鍔?Apache 鏈嶅姟錛?/p>
銆銆榪欐瀹為檯涓婂彲浠ョ渷鐣ワ紝浣嗘槸涓轟簡嫻嬭瘯鏄惁瀹夎鎴愬姛錛屼綘鍙互鏂板緩涓涓?PHP 欏甸潰榪涜嫻嬭瘯錛屼嬌鐢?vim 緙栬緫鍣ㄦ柊寤猴細
銆銆鎸?“i” 閿繘琛岀紪杈戯紝杈撳叆錛?/p>
銆銆緙栬緫瀹屾瘯錛屾寜 “ESC” 閿鍑虹紪杈戞ā寮忥紝鎺ョ潃杈撳叆錛?/p>
銆銆鐒跺悗鍥炶濺錛屽嵆淇濆瓨騫墮鍑恒?/p>
銆銆姝ゆ椂浣犲彲浠ヨ闂綘鐨勭珯鐐瑰湴鍧錛屼緥濡?“http://192.168.1.2/info.php”錛屾煡鐪嬫槸鍚﹁兘鐪嬪埌鐩稿叧鐨?PHP 淇℃伅銆?/p>
銆銆鐪嬪埌榪欐牱鐨勫浘錛屽氨璇存槑 PHP 瀹夎鎴愬姛浜嗐?/p>
銆銆榪橀渶瑕佸皢 PHP 鍜?MySQL 鍏寵仈璧鋒潵錛屾墠鑳芥甯稿伐浣溿傛悳绱㈡ā鍧楋細
銆銆瀹夎鐩稿叧妯″潡錛?/p>
銆銆闇瑕侀噸鍚?Apache 妯″潡鎵嶈兘鐢熸晥錛?/p>
銆銆鍐嶆鍒鋒柊鍒氭墠寤虹珛鐨?“info.php” 欏甸潰錛屽線涓嬫媺鎵懼埌鐩稿叧 MySQL 妯″潡錛岀湅鏄惁媯嫻嬪埌鐩稿叧淇℃伅銆?/p>
銆銆濡傛灉鐪嬪埌濡備笂鍥劇浉鍏充俊鎭紝鍒欒鏄?MySQL 宸ヤ綔姝e父浜嗐?/p>
銆銆鍒拌繖閲屽氨緇撴潫浜嗭紝鏈枃闃愯堪浜嗗湪 CentOS 6.0 緋葷粺涓?LAMP 緇勪歡錛圓pache+MySQL+PHP錛?鐨勮緇嗗畨瑁呮楠わ紝鍙互璁╂洿澶氭柊鎵嬬啛鎮夋湇鍔″櫒閰嶇疆鐜銆?/p>
銆銆浣嗘槸鍒拌繖閲岋紝榪樺彧鏄皢鐜閰嶇疆瀹屾瘯錛屽緢澶氫笢瑗胯繕鏈夋瑺緙猴紝鑰屼笖榪樻槸涓浜涢噸瑕佺殑闂錛屼緥濡傜洰褰曠殑鏉冮檺閰嶇疆闂錛屾垨鑰呮槸綆$悊涓婄殑闂錛屽儚寤虹珛 FTP 絳夈傝繖浜涘唴瀹歸殢鍚庝細鎱㈡參璋堝埌銆?/p>
鏌ョ湅澶氭牳CPU鍛戒護
mpstat -P ALL 鍜?nbsp; sar -P ALL
璇存槑錛?/strong>sar -P ALL > aaa.txt 閲嶅畾鍚戣緭鍑哄唴瀹瑰埌鏂囦歡 aaa.txt
top鍛戒護緇忓父鐢ㄦ潵鐩戞帶linux鐨勭郴緇熺姸鍐碉紝姣斿cpu銆佸唴瀛樼殑浣跨敤錛岀▼搴忓憳鍩烘湰閮界煡閬撹繖涓懡浠わ紝浣嗘瘮杈冨鎬殑鏄兘鐢ㄥソ瀹冪殑浜哄嵈寰堝皯錛屼緥濡倀op鐩戞帶瑙嗗浘涓唴瀛樻暟鍊肩殑鍚箟灝辨湁涓嶅皯鐨勬洸瑙c?/p>
鏈枃閫氳繃涓涓繍琛屼腑鐨刉EB鏈嶅姟鍣ㄧ殑top鐩戞帶鎴浘錛岃榪皌op瑙嗗浘涓殑鍚勭鏁版嵁鐨勫惈涔夛紝榪樺寘鎷鍥句腑鍚勮繘紼嬶紙浠誨姟錛夌殑瀛楁鐨勬帓搴忋?/p>
top榪涘叆瑙嗗浘
top瑙嗗浘 01
銆恡op瑙嗗浘 01銆戞槸鍒氳繘鍏op鐨勫熀鏈鍥撅紝鎴戜滑鏉ョ粨鍚堣繖涓鍥捐瑙e悇涓暟鎹殑鍚箟銆?/p>
絎竴琛岋細
10:01:23 — 褰撳墠緋葷粺鏃墮棿
126 days, 14:29 — 緋葷粺宸茬粡榪愯浜?26澶?4灝忔椂29鍒嗛挓錛堝湪榪欐湡闂存病鏈夐噸鍚繃錛?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />2 users — 褰撳墠鏈?涓敤鎴風櫥褰曠郴緇?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />load average: 1.15, 1.42, 1.44 — load average鍚庨潰鐨勪笁涓暟鍒嗗埆鏄?鍒嗛挓銆?鍒嗛挓銆?5鍒嗛挓鐨勮礋杞芥儏鍐點?/p>
load average鏁版嵁鏄瘡闅?縐掗挓媯鏌ヤ竴嬈℃椿璺冪殑榪涚▼鏁幫紝鐒跺悗鎸夌壒瀹氱畻娉曡綆楀嚭鐨勬暟鍊箋傚鏋滆繖涓暟闄や互閫昏緫CPU鐨勬暟閲忥紝緇撴灉楂樹簬5鐨勬椂鍊欏氨琛ㄦ槑緋葷粺鍦ㄨ秴璐熻嵎榪愯漿浜嗐?/p>
絎簩琛岋細
Tasks — 浠誨姟錛堣繘紼嬶級錛岀郴緇熺幇鍦ㄥ叡鏈?83涓繘紼嬶紝鍏朵腑澶勪簬榪愯涓殑鏈?涓紝182涓湪浼戠湢錛坰leep錛夛紝stoped鐘舵佺殑鏈?涓紝zombie鐘舵侊紙鍍靛案錛夌殑鏈?涓?/p>
絎笁琛岋細cpu鐘舵?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />6.7% us — 鐢ㄦ埛絀洪棿鍗犵敤CPU鐨勭櫨鍒嗘瘮銆?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />0.4% sy — 鍐呮牳絀洪棿鍗犵敤CPU鐨勭櫨鍒嗘瘮銆?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />0.0% ni — 鏀瑰彉榪囦紭鍏堢駭鐨勮繘紼嬪崰鐢–PU鐨勭櫨鍒嗘瘮
92.9% id — 絀洪棽CPU鐧懼垎姣?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />0.0% wa — IO絳夊緟鍗犵敤CPU鐨勭櫨鍒嗘瘮
0.0% hi — 紜腑鏂紙Hardware IRQ錛夊崰鐢–PU鐨勭櫨鍒嗘瘮
0.0% si — 杞腑鏂紙Software Interrupts錛夊崰鐢–PU鐨勭櫨鍒嗘瘮
鍦ㄨ繖閲孋PU鐨勪嬌鐢ㄦ瘮鐜囧拰windows姒傚康涓嶅悓錛屽鏋滀綘涓嶇悊瑙g敤鎴風┖闂村拰鍐呮牳絀洪棿錛岄渶瑕佸厖鍏呯數浜嗐?/p>
絎洓琛岋細鍐呭瓨鐘舵?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />8306544k total — 鐗╃悊鍐呭瓨鎬婚噺錛?GB錛?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />7775876k used — 浣跨敤涓殑鍐呭瓨鎬婚噺錛?.7GB錛?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />530668k free — 絀洪棽鍐呭瓨鎬婚噺錛?30M錛?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />79236k buffers — 緙撳瓨鐨勫唴瀛橀噺 錛?9M錛?/p>
絎簲琛岋細swap浜ゆ崲鍒嗗尯
2031608k total — 浜ゆ崲鍖烘婚噺錛?GB錛?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />2556k used — 浣跨敤鐨勪氦鎹㈠尯鎬婚噺錛?.5M錛?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />2029052k free — 絀洪棽浜ゆ崲鍖烘婚噺錛?GB錛?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />4231276k cached — 緙撳啿鐨勪氦鎹㈠尯鎬婚噺錛?GB錛?/p>
榪欓噷瑕佽鏄庣殑鏄笉鑳界敤windows鐨勫唴瀛樻蹇電悊瑙h繖浜涙暟鎹紝濡傛灉鎸墂indows鐨勬柟寮忔鍙版湇鍔″櫒“鍗辯煟”錛?G鐨勫唴瀛樻婚噺鍙墿涓?30M鐨勫彲鐢ㄥ唴瀛樸侺inux鐨勫唴瀛樼鐞嗘湁鍏剁壒孌婃э紝澶嶆潅鐐歸渶瑕佷竴鏈功鏉ヨ鏄庯紝榪欓噷鍙槸綆鍗曡鐐瑰拰鎴戜滑浼犵粺姒傚康錛坵indows錛夌殑涓嶅悓銆?/p>
絎?鍥涜涓嬌鐢ㄤ腑鐨勫唴瀛樻婚噺錛坲sed錛夋寚鐨勬槸鐜板湪緋葷粺鍐呮牳鎺у埗鐨勫唴瀛樻暟錛岀┖闂插唴瀛樻婚噺錛坒ree錛夋槸鍐呮牳榪樻湭綰沖叆鍏剁鎺ц寖鍥寸殑鏁伴噺銆傜撼鍏ュ唴鏍哥鐞嗙殑鍐呭瓨涓嶈 寰楅兘鍦ㄤ嬌鐢ㄤ腑錛岃繕鍖呮嫭榪囧幓浣跨敤榪囩殑鐜板湪鍙互琚噸澶嶅埄鐢ㄧ殑鍐呭瓨錛屽唴鏍稿茍涓嶆妸榪欎簺鍙閲嶆柊浣跨敤鐨勫唴瀛樹氦榪樺埌free涓幓錛屽洜姝ゅ湪linux涓奻ree鍐呭瓨浼氳秺 鏉ヨ秺灝戯紝浣嗕笉鐢ㄤ負姝ゆ媴蹇冦?/p>
濡傛灉鍑轟簬涔犳儻鍘昏綆楀彲鐢ㄥ唴瀛樻暟錛岃繖閲屾湁涓繎浼肩殑璁$畻鍏紡錛氱鍥涜鐨刦ree + 絎洓琛岀殑buffers + 絎簲琛岀殑cached錛屾寜榪欎釜鍏紡姝ゅ彴鏈嶅姟鍣ㄧ殑鍙敤鍐呭瓨錛?30668+79236+4231276 = 4.7GB銆?/p>
瀵逛簬鍐呭瓨鐩戞帶錛屽湪top閲屾垜浠鏃跺埢鐩戞帶絎簲琛宻wap浜ゆ崲鍒嗗尯鐨剈sed錛屽鏋滆繖涓暟鍊煎湪涓嶆柇鐨勫彉鍖栵紝璇存槑鍐呮牳鍦ㄤ笉鏂繘琛屽唴瀛樺拰swap鐨勬暟鎹氦鎹紝榪欐槸鐪熸鐨勫唴瀛樹笉澶熺敤浜嗐?/p>
絎叚琛屾槸絀鴻
絎竷琛屼互涓嬶細鍚勮繘紼嬶紙浠誨姟錛夌殑鐘舵佺洃鎺?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />PID — 榪涚▼id
USER — 榪涚▼鎵鏈夎?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />PR — 榪涚▼浼樺厛綰?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />NI — nice鍊箋傝礋鍊艱〃紺洪珮浼樺厛綰э紝姝e艱〃紺轟綆浼樺厛綰?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />VIRT — 榪涚▼浣跨敤鐨勮櫄鎷熷唴瀛樻婚噺錛屽崟浣峩b銆俈IRT=SWAP+RES
RES — 榪涚▼浣跨敤鐨勩佹湭琚崲鍑虹殑鐗╃悊鍐呭瓨澶у皬錛屽崟浣峩b銆俁ES=CODE+DATA
SHR — 鍏變韓鍐呭瓨澶у皬錛屽崟浣峩b
S — 榪涚▼鐘舵併侱=涓嶅彲涓柇鐨勭潯鐪犵姸鎬?R=榪愯 S=鐫$湢 T=璺熻釜/鍋滄 Z=鍍靛案榪涚▼
%CPU — 涓婃鏇存柊鍒扮幇鍦ㄧ殑CPU鏃墮棿鍗犵敤鐧懼垎姣?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />%MEM — 榪涚▼浣跨敤鐨勭墿鐞嗗唴瀛樼櫨鍒嗘瘮
TIME+ — 榪涚▼浣跨敤鐨凜PU鏃墮棿鎬昏錛屽崟浣?/100縐?br style="margin:0px; font-family:Arial,Helvetica,sans-serif; padding:0px" />COMMAND — 榪涚▼鍚嶇О錛堝懡浠ゅ悕/鍛戒護琛岋級
澶歎澶氭牳CPU鐩戞帶
鍦╰op鍩烘湰瑙嗗浘涓紝鎸夐敭鐩樻暟瀛?#8220;1”錛屽彲鐩戞帶姣忎釜閫昏緫CPU鐨勭姸鍐碉細
top瑙嗗浘 02
瑙傚療涓婂浘錛屾湇鍔″櫒鏈?6涓昏緫CPU錛屽疄闄呬笂鏄?涓墿鐞咰PU銆?/p>
榪涚▼瀛楁鎺掑簭
榛?璁よ繘鍏op鏃訛紝鍚勮繘紼嬫槸鎸夌収CPU鐨勫崰鐢ㄩ噺鏉ユ帓搴忕殑錛屽湪銆恡op瑙嗗浘 01銆戜腑榪涚▼ID涓?4210鐨刯ava榪涚▼鎺掑湪絎竴錛坈pu鍗犵敤100%錛夛紝榪涚▼ID涓?4183鐨刯ava榪涚▼鎺掑湪絎簩錛坈pu鍗犵敤12%錛夈傚彲閫氳繃 閿洏鎸囦護鏉ユ敼鍙樻帓搴忓瓧孌碉紝姣斿鎯崇洃鎺у摢涓繘紼嬪崰鐢∕EM鏈澶氾紝鎴戜竴鑸殑浣跨敤鏂規硶濡備笅錛?/p>
1. 鏁插嚮閿洏“b”錛堟墦寮/鍏抽棴鍔犱寒鏁堟灉錛夛紝top鐨勮鍥懼彉鍖栧涓嬶細
top瑙嗗浘 03
鎴戜滑鍙戠幇榪涚▼id涓?0704鐨?#8220;top”榪涚▼琚姞浜簡錛宼op榪涚▼灝辨槸瑙嗗浘絎簩琛屾樉紺虹殑鍞竴鐨勮繍琛屾侊紙runing錛夌殑閭d釜榪涚▼錛屽彲浠ラ氳繃鏁插嚮“y”閿叧闂垨鎵撳紑榪愯鎬佽繘紼嬬殑鍔犱寒鏁堟灉銆?/p>
2. 鏁插嚮閿洏“x”錛堟墦寮/鍏抽棴鎺掑簭鍒楃殑鍔犱寒鏁堟灉錛夛紝top鐨勮鍥懼彉鍖栧涓嬶細
top瑙嗗浘 04
鍙互鐪嬪埌錛宼op榛樿鐨勬帓搴忓垪鏄?#8220;%CPU”銆?/p>
3. 閫氳繃”shift + >”鎴?#8221;shift + <”鍙互鍚戝彸鎴栧乏鏀瑰彉鎺掑簭鍒楋紝涓嬪浘鏄寜涓嬈?#8221;shift + >”鐨勬晥鏋滃浘錛?/p>
top瑙嗗浘 05
瑙嗗浘鐜板湪宸茬粡鎸夌収%MEM鏉ユ帓搴忎簡銆?/p>
鏀瑰彉榪涚▼鏄劇ず瀛楁
1. 鏁插嚮“f”閿紝top榪涘叆鍙︿竴涓鍥撅紝鍦ㄨ繖閲屽彲浠ョ紪鎺掑熀鏈鍥句腑鐨勬樉紺哄瓧孌碉細
top瑙嗗浘 06
榪欓噷鍒楀嚭浜嗘墍鏈夊彲鍦╰op鍩烘湰瑙嗗浘涓樉紺虹殑榪涚▼瀛楁錛屾湁”*”騫朵笖鏍囨敞涓哄ぇ鍐欏瓧姣嶇殑瀛楁鏄彲鏄劇ず鐨勶紝娌℃湁”*”騫朵笖鏄皬鍐欏瓧姣嶇殑瀛楁鏄笉鏄劇ず鐨勩傚鏋滆鍦ㄥ熀鏈鍥句腑鏄劇ず“CODE”鍜?#8220;DATA”涓や釜瀛楁錛屽彲浠ラ氳繃鏁插嚮“r”鍜?#8220;s”閿細
top瑙嗗浘 07
2. “鍥炶濺”榪斿洖鍩烘湰瑙嗗浘錛屽彲浠ョ湅鍒板浜?#8220;CODE”鍜?#8220;DATA”涓や釜瀛楁錛?/p>
top瑙嗗浘 08
top鍛戒護鐨勮ˉ鍏?/strong>
top 鍛戒護鏄疞inux涓婅繘琛岀郴緇熺洃鎺х殑棣栭夊懡浠わ紝浣嗘湁鏃跺欏嵈杈句笉鍒版垜浠殑瑕佹眰錛屾瘮濡傚綋鍓嶈繖鍙版湇鍔″櫒錛宼op鐩戞帶鏈夊緢澶х殑灞闄愭с傝繖鍙版湇鍔″櫒榪愯鐫 websphere闆嗙兢錛屾湁涓や釜鑺傜偣鏈嶅姟錛屽氨鏄恡op瑙嗗浘 01銆戜腑鐨勮佸ぇ銆佽佷簩涓や釜java榪涚▼錛宼op鍛戒護鐨勭洃鎺ф渶灝忓崟浣嶆槸榪涚▼錛屾墍浠ョ湅涓嶅埌鎴戝叧蹇冪殑java綰跨▼鏁板拰瀹㈡埛榪炴帴鏁幫紝鑰岃繖涓や釜鎸囨爣鏄痡ava鐨?web鏈嶅姟闈炲父閲嶈鐨勬寚鏍囷紝閫氬父鎴戠敤ps鍜宯etstate涓や釜鍛戒護鏉ヨˉ鍏卼op鐨勪笉瓚熾?/p>
鐩戞帶java綰跨▼鏁幫細
ps -eLf | grep java | wc -l
鐩戞帶緗戠粶瀹㈡埛榪炴帴鏁幫細
netstat -n | grep tcp | grep 渚﹀惉绔彛 | wc -l
涓婇潰涓や釜鍛戒護錛屽彲鏀瑰姩grep鐨勫弬鏁幫紝鏉ヨ揪鍒版洿緇嗚嚧鐨勭洃鎺ц姹傘?/p>
鍦?Linux緋葷粺“涓鍒囬兘鏄枃浠?#8221;鐨勬濇兂璐交鎸囧涓嬶紝鎵鏈夎繘紼嬬殑榪愯鐘舵侀兘鍙互鐢ㄦ枃浠舵潵鑾峰彇銆傜郴緇熸牴鐩綍/proc涓紝姣忎竴涓暟瀛楀瓙鐩綍鐨勫悕瀛楅兘鏄繍琛屼腑鐨?榪涚▼鐨凱ID錛岃繘鍏ヤ換涓涓繘紼嬬洰褰曪紝鍙氳繃鍏朵腑鏂囦歡鎴栫洰褰曟潵瑙傚療榪涚▼鐨勫悇欏硅繍琛屾寚鏍囷紝渚嬪task鐩綍灝辨槸鐢ㄦ潵鎻忚堪榪涚▼涓嚎紼嬬殑錛屽洜姝や篃鍙互閫氳繃涓嬮潰鐨勬柟 娉曡幏鍙栨煇榪涚▼涓繍琛屼腑鐨勭嚎紼嬫暟閲忥紙PID鎸囩殑鏄繘紼婭D錛夛細
ls /proc/PID/task | wc -l
鍦╨inux涓繕鏈変竴涓懡浠map錛屾潵杈撳嚭榪涚▼鍐呭瓨鐨勭姸鍐碉紝鍙互鐢ㄦ潵鍒嗘瀽綰跨▼鍫嗘爤錛?/p>
pmap PID
yum install httpd
銆銆鐜板湪閰嶇疆緋葷粺鍦ㄥ紩瀵兼椂鍚姩Apache
chkconfig --levels 235 httpd on
銆銆騫跺惎鍔ˋpache
/etc/init.d/httpd start
銆銆鐜板湪錛屾偍鐨勬祻瑙堝櫒鍒癶ttp錛?/192.168.0.100錛屼綘搴旇鐪嬪埌Apache2鐨勬祴璇曢〉錛?/p>
銆銆杞歡鐨勫畨瑁?/strong>
銆銆Linux涓嬭蔣浠剁殑瀹夎涓昏鏈変袱縐嶄笉鍚岀殑褰㈠紡銆傜涓縐嶅畨瑁呮枃浠跺悕涓簒xx.tar.gz錛涘彟涓縐嶅畨瑁呮枃浠跺悕涓簒xx.i386.rpm銆備互絎竴縐嶆柟寮忓彂琛岀殑杞歡澶氫負浠ユ簮鐮佸艦寮忓彂閫佺殑錛涚浜岀鏂瑰紡鍒欐槸鐩存帴浠ヤ簩榪涘埗褰㈠紡鍙戦佺殑銆?/p>
銆銆瀵逛簬絎竴縐嶏紝瀹夎鏂規硶濡備笅錛?/p>
銆銆1 .棣栧厛錛屽皢瀹夎鏂囦歡鎷瘋礉鑷充綘鐨勭洰褰曚腑銆備緥濡傦紝濡傛灉浣犳槸浠oot韜喚鐧誨綍涓婄殑錛屽氨灝嗚蔣浠舵嫹璐濊嚦/root涓?/p>
銆銆#cp xxx.tar.gz /root
銆銆2 .鐢變簬璇ユ枃浠舵槸琚帇緙╁茍鎵撳寘鐨?搴斿鍏惰В鍘嬬緝銆傚懡浠や負錛?/p>
銆銆#tar xvzf filename.tar.gz 濡傛灉鏄痜ilename.tar.bz2鏍煎紡鐨勶紝搴旇鏄痶ar jxvf filename.tar.bz2鏉ヨВ鍘?/p>
銆銆3. 鎵ц璇ュ懡浠ゅ悗錛屽畨瑁呮枃浠舵寜璺緞錛岃В鍘嬬緝鍦ㄥ綋鍓嶇洰褰曚笅銆傜敤ls鍛戒護鍙互鐪嬪埌瑙e帇緙╁悗鐨勬枃浠躲傞氬父鍦ㄨВ鍘嬬緝鍚庝駭鐢熺殑鏂囦歡涓紝鏈?#8220;Install”鐨勬枃浠躲傝鏂囦歡涓虹函鏂囨湰鏂囦歡錛岃緇嗚榪頒簡璇ヨ蔣浠跺寘鐨勫畨瑁呮柟娉曘?/p>
銆銆4.鎵ц瑙e帇緙╁悗浜х敓鐨勪竴涓悕涓篶onfigure鐨勫彲鎵ц鑴氭湰紼嬪簭銆傚畠鏄敤浜庢鏌ョ郴緇熸槸鍚︽湁緙栬瘧鏃舵墍闇鐨勫簱錛屼互鍙婂簱鐨勭増鏈槸鍚︽弧瓚崇紪璇戠殑闇瑕佺瓑瀹夎鎵闇瑕佺殑緋葷粺淇℃伅銆備負闅忓悗鐨勭紪璇戝伐浣滃仛鍑嗗銆傚懡浠や負錛?#./configure
銆銆濡傛灉鎮ㄦ兂鎶婅蔣浠跺畨瑁呭埌鎸囧畾鐩綍錛屽簲璇ョ敤#./configure --prefix=/鎮ㄨ嚜宸辨寚瀹氱殑鐩綍錛屾瘮濡傛垜鎯蟲妸涓涓猰lterm瀹夎鍒?opt/mlterm鐩綍涓紝搴旇濡備笅杈撳叆
銆銆#./configure --prefix=/opt/mlterm
銆銆5.媯鏌ラ氳繃鍚庯紝灝嗙敓鎴愮敤浜庣紪璇戠殑MakeFile鏂囦歡銆傛鏃訛紝鍙互寮濮嬭繘琛岀紪璇戜簡銆傜紪璇戠殑榪囩▼瑙嗚蔣浠剁殑瑙勬ā鍜岃綆楁満鎬ц兘鐨勪笉鍚岋紝鎵鑰楄垂鐨勬椂闂翠篃涓嶅悓銆傚懡浠や負錛?#make銆?/p>
銆銆6.鎴愬姛緙栬瘧鍚庯紝閿叆濡備笅鐨勫懡浠ゅ紑濮嬪畨瑁咃細
銆銆#make install
銆銆7.瀹夎瀹屾瘯錛屽簲娓呴櫎緙栬瘧榪囩▼涓駭鐢熺殑涓存椂鏂囦歡鍜岄厤緗繃紼嬩腑浜х敓鐨勬枃浠躲傞敭鍏ュ涓嬪懡浠わ細
銆銆#make clean
銆銆#make distclean
銆銆鑷蟲錛岃蔣浠剁殑瀹夎緇撴潫銆?/p>
銆銆瀵逛簬絎簩縐嶏紝鍏跺畨瑁呮柟娉曡綆鍗曞緱澶氥?/p>
銆銆鍚岀涓縐嶆柟寮忎竴鏍鳳紝灝嗗畨瑁呮枃浠舵嫹璐濊嚦浣犵殑鐩綍涓傜劧鍚庝嬌鐢╮pm鏉ュ畨瑁呰鏂囦歡銆傚懡浠ゅ涓嬶細
銆銆#rpm -i filename.i386.rpm
銆銆rpm灝嗚嚜鍔ㄥ皢瀹夎鏂囦歡瑙e寘錛屽茍灝嗚蔣浠跺畨瑁呭埌緙虹渷鐨勭洰褰曚笅銆傚茍灝嗚蔣浠剁殑瀹夎淇℃伅娉ㄥ唽鍒皉pm鐨勬暟鎹簱涓傚弬鏁癷鐨勪綔鐢ㄦ槸浣縭pm榪涘叆瀹夎妯″紡銆?/p>
銆銆杞歡鐨勫嵏杞?/strong>
銆銆1.杞歡鐨勫嵏杞戒富瑕佹槸浣跨敤rpm鏉ヨ繘琛岀殑銆傚嵏杞借蔣浠墮鍏堣鐭ラ亾杞歡鍖呭湪緋葷粺涓敞鍐岀殑鍚嶇О銆傞敭鍏ュ懡浠わ細
銆銆#rpm -q -a
銆銆鍗沖彲鏌ヨ鍒板綋鍓嶇郴緇熶腑瀹夎鐨勬墍鏈夌殑杞歡鍖呫?/p>
銆銆2. 紜畾浜嗚鍗歌澆鐨勮蔣浠剁殑鍚嶇О錛屽氨鍙互寮濮嬪疄闄呭嵏杞借杞歡浜嗐傞敭鍏ュ懡浠わ細
銆銆#rpm -e [package name]
銆銆鍗沖彲鍗歌澆杞歡銆傚弬鏁癳鐨勪綔鐢ㄦ槸浣縭pm榪涘叆鍗歌澆妯″紡銆傚鍚嶄負[package name]鐨勮蔣浠跺寘榪涜鍗歌澆銆傜敱浜庣郴緇熶腑鍚勪釜杞歡鍖呬箣闂寸浉浜掓湁渚濊禆鍏崇郴銆傚鏋滃洜瀛樺湪渚濊禆鍏崇郴鑰屼笉鑳藉嵏杞斤紝rpm灝嗙粰浜堟彁紺哄茍鍋滄鍗歌澆銆備綘鍙互浣跨敤濡備笅鐨勫懡浠ゆ潵蹇界暐渚濊禆鍏崇郴錛岀洿鎺ュ紑濮嬪嵏杞斤細
銆銆#rpm -e [package name] -nodeps
銆銆蹇界暐渚濊禆鍏崇郴鐨勫嵏杞藉彲鑳戒細瀵艱嚧緋葷粺涓叾瀹冪殑涓浜涜蔣浠舵棤娉曚嬌鐢?/p>
銆銆濡傛灉鎯崇煡閬搑pm鍖呭畨瑁呭埌鍝噷浜嗗憿錛?/p>
銆銆搴旇鐢?#rpm -ql [package name]
銆銆3.濡備綍鍗歌澆鐢ㄦ簮鐮佸寘瀹夎鐨勮蔣浠訛紵
銆銆鏈濂芥槸鐪婻EADME鍜孖NSTALL 錛涗竴鑸殑鎯呭喌涓嬮兘鏈夎錛屼絾澶у杞歡娌℃湁鎻愪緵婧愮爜鍖呯殑鍗歌澆鏂規硶錛涙垜浠彲浠ユ壘鍒拌蔣浠剁殑瀹夎鐐瑰垹闄ゃ備富瑕佺湅浣犳妸瀹冨畨瑁呭湪鍝簡銆?/p>
銆銆姣斿錛?/p>
銆銆濡傛灉瀹夎杞歡鏃訛紝鎸囧畾涓洰褰曘傝繖涓棶棰樹篃涓嶄細闅撅紱
銆銆姣斿鐢ㄦ簮鐮佸寘瀹夎gaim 鐨?/p>
銆銆#./configure --prefix=/opt/gaim
銆銆#make
銆銆#make install
銆銆濡傛灉瀹夎mlterm
銆銆#./configure --prefix=/opt/mlterm
銆銆#make
銆銆#make install
銆銆鎶婃簮鐮佸寘瀹夎鐨勮蔣浠訛紝閮芥寚瀹氬畨瑁呭湪 /opt鐩綍涓紝榪欐牱涓嶅氨鐭ラ亾浜嗭紱
銆銆濡傛灉鍒犻櫎錛屽氨鍒犻櫎鐩稿簲鐨勮蔣浠剁洰褰曪紱
銆銆鏈変簺杞歡瑕佸湪瑙e帇瀹夎鐩綍涓墽琛?make uninstall 錛岃繖鏍峰氨鍗歌澆鎺変簡銆?/p>
濡傛灉鏌愯剼鏈榪愯30鍒嗛挓錛屽彲浠ュ湪Crontab閲屾妸鑴氭湰闂撮殧璁句負鑷沖皯涓灝忔椂鏉ラ伩鍏嶅啿紿併傝屾瘮杈冪碂鐨勬儏鍐墊槸鍙兘璇ヨ剼鏈湪鎵ц鍛ㄦ湡鍐呮病鏈夊畬鎴愶紝鎺ョ潃絎?浜屼釜鑴氭湰鍙堝紑濮嬭繍琛屼簡銆傚浣曠‘淇濆彧鏈変竴涓剼鏈疄渚嬭繍琛屽憿錛熶竴涓ソ鐢ㄧ殑鏂規硶鏄埄鐢╨ockf錛團reeBSD 8.1涓嬩負lockf錛孋entOS 5.5涓嬩負flock錛夛紝鍦ㄨ剼鏈墽琛屽墠鍏堟嫻嬭兘鍚﹁幏鍙栨煇涓枃浠墮攣錛屼互闃叉鑴氭湰榪愯鍐茬獊銆?/p>
lockf鐨勫弬鏁板涓嬨?/p>
-k錛氫竴鐩寸瓑寰呰幏鍙栨枃浠墮攣銆?/p>
-s錛歴ilent錛屼笉鍙戝嚭浠諱綍淇℃伅錛屽嵆浣挎嬁涓嶅埌鏂囦歡閿併?/p>
-t seconds錛氳瀹歵imeout鐨勬椂闂存槸seconds縐掞紝濡傛灉瓚呰繃鏃墮棿錛屽垯鑷姩鏀懼純銆?/p>
浠ヤ笅Crontab璁″垝浠誨姟鎵ц鍓嶏紝闇鑾峰彇涓存椂鏂囦歡create.lock鐨勬枃浠墮攣錛屾欏笴rontab璁″垝浠誨姟鐨勫唴瀹瑰涓嬶細
1 | * /10 * * * * (lockf -s -t 0 /tmp/create .lock /usr/bin/python /home/project/cron/create_tab .py >> /home/project/logs/create .log 2>&1) |
鑻ョ涓涓疄渚嬪湪10鍒嗛挓鍐呮病鏈夎繍琛屽畬錛岀2涓疄渚嬩笉浼氳繍琛屻傛垜浠ュ墠鏄氳繃Shell鑴氭湰鏉ヨВ鍐寵繖涓棶棰樼殑錛屾瘮濡傜敤while...do寰幆錛岀劧鍚庢斁鍦ㄥ悗鍙版墽琛屻備絾鍚庢潵鍙戠幇鍏跺疄鐢╢lock鎴杔ockf鏂規硶鏇翠負綆鍗曘?/p>
闄勪笂linux涓嬬殑flock鐨勭敤娉曪細
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | flock (util-linux 2.13-pre7) Usage: flock [-sxun][-w #] fd# flock [-sxon][-w #] file [-c] command... -s --shared Get a shared lock #鍏變韓閿?鍦ㄥ畾鍚戜負鏌愭枃浠剁殑FD涓婅緗叡浜攣鑰屾湭閲婃斁閿佺殑鏃墮棿鍐?鍏朵粬榪涚▼璇曞浘鍦ㄥ畾鍚戜負姝ゆ枃浠剁殑FD涓婅緗嫭鍗犻攣鐨勮姹傚け璐?鑰屽叾浠栬繘紼嬭瘯鍥懼湪瀹氬悜涓烘鏂囦歡鐨凢D涓婅緗叡浜攣鐨勮姹備細鎴愬姛 -x --exclusive Get an exclusive lock #鐙崰鎴栨帓浠栭攣,鍦ㄥ畾鍚戜負鏌愭枃浠剁殑FD涓婅緗嫭鍗犻攣鑰屾湭閲婃斁閿佺殑鏃墮棿鍐?鍏朵粬榪涚▼璇曞浘鍦ㄥ畾鍚戜負姝ゆ枃浠剁殑FD涓婅緗叡浜攣鎴栫嫭鍗犻攣閮戒細澶辮觸銆傚彧瑕佹湭璁劇疆-s鍙傛暟,姝ゅ弬鏁伴粯璁よ璁劇疆 -u --unlock Remove a lock #鎵嬪姩瑙i攣,涓鑸儏鍐典笉蹇呴』,褰揊D鍏抽棴鏃?緋葷粺浼氳嚜鍔ㄨВ閿?姝ゅ弬鏁扮敤浜庤剼鏈懡浠や竴閮ㄥ垎闇瑕佸紓姝ユ墽琛?涓閮ㄥ垎鍙互鍚屾鎵ц鐨勬儏鍐?/code> -n --nonblock Fail rather than wait #涓洪潪闃誨妯″紡,褰撹瘯鍥捐緗攣澶辮觸,閲囩敤闈為樆濉炴ā寮?鐩存帴榪斿洖1, -w --timeout Wait for a limited amount of time #璁劇疆闃誨瓚呮椂,褰撹秴榪囪緗殑縐掓暟,灝辮煩鍑洪樆濉?榪斿洖1 -o --close Close file descriptor before running command -c --command Run a single command string through the shell 鎵ц鍏跺悗鐨刢omand -h --help Display this text -V --version Display version |
涓句釜渚嬪瓙鎵ц濡備笅鑴氭湰錛?/p>
姣忓ぉ23:30鐨勬椂鍊欐墽琛屼竴涓剼鏈紝浣嗘槸鎵ц鍓嶅繀欏昏鑾峰緱鎺掍粬鏂囦歡閿侊紝鍚﹀垯鏃犳硶鎵ц鍛戒護
1 | 30 23 * * * flock -xn /tmp/test .lock -c '/usr/local/php test.php' |
姣旇緝涓や釜瀛楃涓叉槸鍚︾浉絳夌殑鍔炴硶鏄細
if [ "$test"x = "test"x ]; then
榪欓噷鐨勫叧閿湁鍑犵偣錛?/p>
1 浣跨敤鍗曚釜絳夊彿
2 娉ㄦ剰鍒扮瓑鍙蜂袱杈瑰悇鏈変竴涓┖鏍鹼細榪欐槸unix shell鐨勮姹?/p>
3 娉ㄦ剰鍒?$test"x鏈鍚庣殑x錛岃繖鏄壒鎰忓畨鎺掔殑錛屽洜涓哄綋$test涓虹┖鐨勬椂鍊欙紝涓婇潰鐨勮〃杈懼紡灝卞彉鎴愪簡x = testx錛屾樉鐒舵槸涓嶇浉絳夌殑銆傝屽鏋滄病鏈夎繖涓獂錛岃〃杈懼紡灝變細鎶ラ敊錛歔: =: unary operator expected
浜屽厓姣旇緝鎿嶄綔絎?姣旇緝鍙橀噺鎴栬呮瘮杈冩暟瀛?娉ㄦ剰鏁板瓧涓庡瓧絎︿覆鐨勫尯鍒?
鏁存暟姣旇緝
-eq 絳変簬,濡?if [ "$a" -eq "$b" ]
-ne 涓嶇瓑浜?濡?if [ "$a" -ne "$b" ]
-gt 澶т簬,濡?if [ "$a" -gt "$b" ]
-ge 澶т簬絳変簬,濡?if [ "$a" -ge "$b" ]
-lt 灝忎簬,濡?if [ "$a" -lt "$b" ]
-le 灝忎簬絳変簬,濡?if [ "$a" -le "$b" ]
澶т簬(闇瑕佸弻鎷彿),濡?(("$a" > "$b"))
>= 澶т簬絳変簬(闇瑕佸弻鎷彿),濡?(("$a" >= "$b"))
灝忔暟鎹瘮杈冨彲浣跨敤AWK
瀛楃涓叉瘮杈?/p>
= 絳変簬,濡?if [ "$a" = "$b" ]
== 絳変簬,濡?if [ "$a" == "$b" ],涓?絳変環
娉ㄦ剰:==鐨勫姛鑳藉湪[[]]鍜孾]涓殑琛屼負鏄笉鍚岀殑,濡備笅:
1 [[ $a == z* ]] # 濡傛灉$a浠?z"寮澶?妯″紡鍖歸厤)閭d箞灝嗕負true
2 [[ $a == "z*" ]] # 濡傛灉$a絳変簬z*(瀛楃鍖歸厤),閭d箞緇撴灉涓簍rue
3
4 [ $a == z* ] # File globbing 鍜寃ord splitting灝嗕細鍙戠敓
5 [ "$a" == "z*" ] # 濡傛灉$a絳変簬z*(瀛楃鍖歸厤),閭d箞緇撴灉涓簍rue
涓鐐硅В閲?鍏充簬File globbing鏄竴縐嶅叧浜庢枃浠剁殑閫熻娉?姣斿"*.c"灝辨槸,鍐嶅~涔熸槸.
浣嗘槸file globbing騫朵笉鏄弗鏍肩殑姝e垯琛ㄨ揪寮?铏界劧緇濆ぇ澶氭暟鎯呭喌涓嬬粨鏋勬瘮杈冨儚.
!= 涓嶇瓑浜?濡?if [ "$a" != "$b" ]
榪欎釜鎿嶄綔絎﹀皢鍦╗[]]緇撴瀯涓嬌鐢ㄦā寮忓尮閰?
澶т簬,鍦ˋSCII瀛楁瘝欏哄簭涓?濡?
if [[ "$a" > "$b" ]]
if [ "$a" \> "$b" ]
娉ㄦ剰:鍦╗]緇撴瀯涓?>"闇瑕佽杞箟.
鍏蜂綋鍙傝僂xample 26-11鏉ユ煡鐪嬭繖涓搷浣滅搴旂敤鐨勪緥瀛?
-z 瀛楃涓蹭負"null".灝辨槸闀垮害涓?.
-n 瀛楃涓蹭笉涓?null"
娉ㄦ剰:
浣跨敤-n鍦╗]緇撴瀯涓祴璇曞繀欏昏鐢?"鎶婂彉閲忓紩璧鋒潵.浣跨敤涓涓湭琚?"鐨勫瓧絎︿覆鏉ヤ嬌鐢? -z
鎴栬呭氨鏄湭鐢?"寮曠敤鐨勫瓧絎︿覆鏈韓,鏀懼埌[]緇撴瀯涓傝櫧鐒朵竴鑸儏鍐典笅鍙?
浠ュ伐浣?浣嗚繖鏄笉瀹夊叏鐨?涔犳儻浜庝嬌鐢?"鏉ユ祴璇曞瓧絎︿覆鏄竴縐嶅ソ涔犳儻.
if鍒ゆ柇寮?br />if [ 鏉′歡鍒ゆ柇涓 ] && (||) [ 鏉′歡鍒ゆ柇浜?]; then
elif [ 鏉′歡鍒ゆ柇涓?] && (||) [ 鏉′歡鍒ゆ柇鍥?]; then
else
鎵ц絎笁孌靛収瀹圭▼寮?br />fi
渚嬪錛?/span>
root@Bizbox:~# a=0 root@Bizbox:~# b=0 root@Bizbox:~# c=5 root@Bizbox:~# if [ $a = 0 -a $b = 0 ]&&[ $c != 0 ]; then > echo success > fi success
if 浣跨敤鐨勮〃杈懼紡
浠婂ぉ鍦ㄨ窇鑴氭湰鐨勬椂鍊欑湅鍒板涓嬫姤閿欙細
find: paths must precede expression
Usage: find [-H] [-L] [-P] [path...] [expression]
鐒跺悗灝變笂緗戞煡浜嗕竴涓嬶紝緇撴灉鎼滅儲鍒頒竴綃囷紝澶ф鏄繖鏍瘋鐨勶細澶氭枃浠剁殑鏌ユ壘鐨勬椂鍊欓渶瑕佸鍔犲崟寮曞彿
鑰屾垜涔嬪墠涓鐩撮兘鏄敤鐨勫弻寮曞彿錛屼篃娌℃湁閬囧埌闂錛岃繖嬈″嵈鎶ラ敊浜唦
ssh $ip "cd $path;find . -name'access.$month*.log' -print -exec zip -r access.$month.zip {} \;"
淇敼鎴?span style="background-color:#ffff99">鍗曞紩鍙?/span>鍚庯紝鏈ㄦ湁鍐嶈鎶ラ敊~
渚嬪瓙璇存槑錛?/span>
鍑虹幇榪欎釜鎻愮ず鏄洜涓烘槦鍙瘋灞曞紑涓哄綋鍓嶇洰褰曚笅鎵鏈夌殑鏂囦歡錛岃繖鏍風殑鍖歸厤褰撶劧浼氬嚭閿欍傜湅榪欎釜灝辯煡閬撲簡錛?/span>
鎯寵鏄熷彿涓嶈灞曞紑灝遍渶瑕佸姞涓?span style="background-color:#ccffff">鎷彿鎴栬呭弽鏂滄潬杞箟錛岀煡閬撲簡榪欎簺鎴戜滑灝辯煡閬撹鎬庝箞find浜?/span>
mv {old-file-name {new-file-name} mv {old-dir-name} {new-dir-name}
mv tom.txt jerry.txt
mv lgitech logitech
姣忎釜鎿嶄綔緋葷粺閮芥湁瀹冪殑鑷姩瀹氭椂鍚姩紼嬪簭鐨勫姛鑳斤紝Windows鏈夊畠鐨勪換鍔¤鍒掞紝鑰?a title="Linux" >Linux瀵瑰簲鐨勫姛鑳芥槸crontab銆?/p>
crontab鍛戒護甯歌浜嶶nix鍜岀被Unix鐨勬搷浣滅郴緇熶箣涓紝鐢ㄤ簬璁劇疆鍛ㄦ湡鎬ц鎵ц鐨勬寚浠ゃ傝鍛戒護浠庢爣鍑嗚緭鍏ヨ澶囪鍙栨寚浠わ紝騫跺皢鍏跺瓨鏀句簬 “crontab”鏂囦歡涓紝浠ヤ緵涔嬪悗璇誨彇鍜屾墽琛屻傝璇嶆潵婧愪簬甯岃厞璇? chronos(χρόνος)錛屽師鎰忔槸鏃墮棿銆傘銆閫氬父錛宑rontab鍌ㄥ瓨鐨勬寚浠よ瀹堟姢榪涚▼嬋媧伙紝 crond甯稿父鍦ㄥ悗鍙拌繍琛岋紝姣忎竴鍒嗛挓媯鏌ユ槸鍚︽湁棰勫畾鐨勪綔涓氶渶瑕佹墽琛屻傝繖綾諱綔涓氫竴鑸О涓篶ron jobs銆?/p>
crontab鐨勬牸寮忓涓嬮潰錛?/p>
f1 f2 f3 f4 f5 program
鍏朵腑 f1 鏄〃紺哄垎閽燂紝f2 琛ㄧず灝忔椂錛宖3 琛ㄧず涓涓湀浠戒腑鐨勭鍑犳棩錛宖4 琛ㄧず鏈堜喚錛宖5 琛ㄧず涓涓槦鏈熶腑鐨勭鍑犲ぉ銆俻rogram 琛ㄧず瑕佹墽琛岀▼寮忕殑璺緞銆?/p>
綆$悊鍛樼櫥褰昐SH,杈撳叆鍛戒護crontab -e緙栬緫crontab鏂囦歡錛屾牴鎹笂闈㈢殑鏍煎紡杈撳叆騫朵繚瀛樸?/p>
姣忔湀姣忓ぉ姣忓皬鏃剁殑絎?0 鍒嗛挓鎵ц涓嬈?/bin/ls :
鍦?12 鏈堝唴, 姣忓ぉ鐨勬棭涓?6 鐐瑰埌 12 鐐逛腑錛屾瘡闅?20 鍒嗛挓鎵ц涓嬈?/usr/bin/backup :
鍛ㄤ竴鍒板懆浜旀瘡澶╀笅鍗?5:00 瀵勪竴灝佷俊緇?alex@domain.name :
姣忔湀姣忓ぉ鐨勫崍澶?0 鐐?20 鍒? 2 鐐?20 鍒? 4 鐐?20 鍒?...鎵ц echo "haha"
鏅氫笂11鐐瑰埌鏃╀笂8鐐逛箣闂存瘡涓や釜灝忔椂錛屾棭涓?鐐?/p>
鍦╤p unix,涓紝姣?0鍒嗛挓鎵ц涓嬈★紝琛ㄧず涓猴細0,20,40 * * * * 鑰屼笉鑳介噰鐢?/n鏂瑰紡錛屽惁鍒欏嚭鐜拌娉曢敊璇?/p>
crontab鐢ㄦ硶鍏跺疄寰堝鏄撴帉鎻★紝鎳傚緱浣跨敤crontab錛屽緗戠珯鍜屾湇鍔″櫒緇存姢璧峰埌寰堝ぇ鐨勫府鍔╋紝姣斿瀹氭椂澶囦喚錛屽畾鏃朵紭鍖栨湇鍔″櫒絳夈?/p>
搴撲粠鏈川涓婃潵璇存槸涓縐嶅彲鎵ц浠g爜鐨勪簩榪涘埗鏍煎紡錛屽彲浠ヨ杞藉叆鍐呭瓨涓墽琛屻傚簱鍒嗛潤鎬佸簱鍜屽姩鎬佸簱涓ょ銆?nbsp;
1. 闈欐佸嚱鏁板簱
榪欑被搴撶殑鍚嶅瓧涓鑸槸libxxx.a錛涘埄鐢ㄩ潤鎬佸嚱鏁板簱緙栬瘧鎴愮殑鏂囦歡姣旇緝澶э紝鍥犱負鏁翠釜 鍑芥暟搴撶殑鎵鏈夋暟鎹兘浼氳鏁村悎榪涚洰鏍囦唬鐮佷腑錛屼粬鐨勪紭鐐瑰氨鏄捐屾槗瑙佷簡錛屽嵆緙栬瘧鍚庣殑鎵ц紼嬪簭涓嶉渶瑕佸閮ㄧ殑鍑芥暟搴撴敮鎸侊紝鍥犱負鎵鏈変嬌鐢ㄧ殑鍑芥暟閮藉凡緇忚緙栬瘧榪涘幓浜嗐傚綋 鐒惰繖涔熶細鎴愪負浠栫殑緙虹偣錛屽洜涓哄鏋滈潤鎬佸嚱鏁板簱鏀瑰彉浜嗭紝閭d箞浣犵殑紼嬪簭蹇呴』閲嶆柊緙栬瘧銆?
2. 鍔ㄦ佸嚱鏁板簱
榪欑被搴撶殑鍚嶅瓧涓鑸槸libxxx.so;鐩稿浜庨潤鎬佸嚱鏁板簱錛屽姩鎬佸嚱鏁板簱鍦ㄧ紪璇戠殑鏃跺? 騫舵病鏈夎緙栬瘧榪涚洰鏍囦唬鐮佷腑錛屼綘鐨勭▼搴忔墽琛屽埌鐩稿叧鍑芥暟鏃舵墠璋冪敤璇ュ嚱鏁板簱閲岀殑鐩稿簲鍑芥暟錛屽洜姝ゅ姩鎬佸嚱鏁板簱鎵浜х敓鐨勫彲鎵ц鏂囦歡姣旇緝灝忋傜敱浜庡嚱鏁板簱娌℃湁琚暣鍚堣繘浣犵殑 紼嬪簭錛岃屾槸紼嬪簭榪愯鏃跺姩鎬佺殑鐢寵騫惰皟鐢紝鎵浠ョ▼搴忕殑榪愯鐜涓繀欏繪彁渚涚浉搴旂殑搴撱傚姩鎬佸嚱鏁板簱鐨勬敼鍙樺茍涓嶅獎鍝嶄綘鐨勭▼搴忥紝鎵浠ュ姩鎬佸嚱鏁板簱鐨勫崌綰ф瘮杈冩柟渚褲?
linux緋葷粺鏈夊嚑涓噸瑕佺殑鐩綍瀛樻斁鐩稿簲鐨勫嚱鏁板簱錛屽/lib /usr/lib銆?
闈欐佸簱鐨勬搷浣滃伐鍏鳳細gcc鍜宎r 鍛戒護銆?nbsp;
緙栧啓鍙婁嬌鐢ㄩ潤鎬佸簱
(1)璁捐搴撴簮鐮?pr1.c 鍜?pr2.c
[root@billstone make_lib]# cat pr1.c
void print1()
{
printf("This is the first lib src!\n");
}
[root@billstone make_lib]# cat pr2.c
void print2()
{
printf("This is the second src lib!\n");
}
(2) 緙栬瘧.c 鏂囦歡
[bill@billstone make_lib]$ cc -O -c pr1.c pr2.c
[bill@billstone make_lib]$ ls -l pr*.o
-rw-rw-r-- 1 bill bill 804 4 鏈?nbsp; 15 11:11 pr1.o
-rw-rw-r-- 1 bill bill 804 4 鏈?nbsp; 15 11:11 pr2.o
(3) 閾炬帴闈欐佸簱
涓轟簡鍦ㄧ紪璇戠▼搴忎腑姝g‘鎵懼埌搴撴枃浠?闈欐佸簱蹇呴』鎸夌収 lib[name].a 鐨勮鍒欏懡鍚?濡備笅渚嬩腑[name]=pr.
[bill@billstone make_lib]$ ar -rsv libpr.a pr1.o pr2.o
a - pr1.o
a - pr2.o
[bill@billstone make_lib]$ ls -l *.a
-rw-rw-r-- 1 bill bill 1822 4 鏈?nbsp; 15 11:12 libpr.a
[bill@billstone make_lib]$ ar -t libpr.a
pr1.o
pr2.o
(4) 璋冪敤搴撳嚱鏁頒唬鐮?main.c
[bill@billstone make_lib]$ cat main.c
int main()
{
print1();
print2();
return 0;
}
(5) 緙栬瘧閾炬帴閫夐」
-L 鍙?l 鍙傛暟鏀懼湪鍚庨潰.鍏朵腑,-L 鍔犺澆搴撴枃浠惰礬寰?-l 鎸囨槑搴撴枃浠跺悕瀛?
[bill@billstone make_lib]$ gcc -o main main.c -L./ -lpr
[bill@billstone make_lib]$ ls -l main*
-rwxrwxr-x 1 bill bill 11805 4 鏈?nbsp; 15 11:17 main
-rw-rw-r-- 1 bill bill 50 4 鏈?nbsp; 15 11:15 main.c
(6)鎵ц鐩爣紼嬪簭
[bill@billstone make_lib]$ ./main
This is the first lib src!
This is the second src lib!
[bill@billstone make_lib]$
緙栧啓鍔ㄦ佸簱
(1)璁捐搴撲唬鐮?/strong>
[bill@billstone make_lib]$ cat pr1.c
int p = 2;
void print(){
printf("This is the first dll src!\n");
}
[bill@billstone make_lib]$
(2)鐢熸垚鍔ㄦ佸簱
[bill@billstone make_lib]$ gcc -O -fpic -shared -o dl.so pr1.c
[bill@billstone make_lib]$ ls -l *.so
-rwxrwxr-x 1 bill bill 6592 4 鏈?nbsp; 15 15:19 dl.so
[bill@billstone make_lib]$
鍔ㄦ佸簱鐨勯殣寮忚皟鐢?/strong>
鍦ㄧ紪璇戣皟鐢ㄥ簱鍑芥暟浠g爜鏃舵寚鏄庡姩鎬佸簱鐨勪綅緗強鍚嶅瓧, 鐪嬩笅闈㈠疄渚?nbsp;
[bill@billstone make_lib]$ cat main.c
int main()
{
print();
return 0;
}
[bill@billstone make_lib]$ gcc -o tdl main.c ./dl.so
[bill@billstone make_lib]$ ./tdl
This is the first dll src!
[bill@billstone make_lib]$
褰撳姩鎬佸簱鐨勪綅緗椿鍚嶅瓧鍙戠敓鏀瑰彉鏃? 紼嬪簭灝嗘棤娉曟甯歌繍琛? 鑰屽姩鎬佸簱鍙栦唬闈欐佸簱鐨勫ソ澶勪箣涓鍒欐槸閫氳繃鏇存柊鍔ㄦ佸簱鑰岄殢鏃跺崌綰у簱鐨勫唴瀹?
鍔ㄦ佸簱鐨勬樉寮忚皟鐢?/strong>
鏄懼紡璋冪敤鍔ㄦ佸簱闇瑕佸洓涓嚱鏁扮殑鏀寔, 鍑芥暟 dlopen 鎵撳紑鍔ㄦ佸簱, 鍑芥暟 dlsym 鑾峰彇鍔ㄦ佸簱涓璞″熀鍧, 鍑?/strong>鏁?dlerror 鑾峰彇鏄懼紡鍔ㄦ佸簱鎿嶄綔涓殑閿欒淇℃伅, 鍑芥暟 doclose 鍏抽棴鍔ㄦ佸簱.
[bill@billstone make_lib]$ cat main.c
#include <dlfcn.h>
int main()
{
void *pHandle;
void (*pFunc)(); // 鎸囧悜鍑芥暟鐨勬寚閽?nbsp;
int *p;
pHandle = dlopen("./d1.so", RTLD_NOW); // 鎵撳紑鍔ㄦ佸簱
if(!pHandle){
printf("Can't find d1.so \n");
exit(1);
}
pFunc = (void (*)())dlsym(pHandle, "print"); // 鑾峰彇搴撳嚱鏁?print 鐨勫湴鍧
if(pFunc)
pFunc();
else
printf("Can't find function print\n");
p = (int *)dlsym(pHandle, "p"); // 鑾峰彇搴撳彉閲?p 鐨勫湴鍧
if(p)
printf("p = %d\n", *p);
else
printf("Can't find int p\n");
dlclose(pHandle); // 鍏抽棴鍔ㄦ佸簱
return 0;
}
[bill@billstone make_lib]$ gcc -o tds main.c –ld1 –L.
姝?鏃惰繕涓嶈兘绔嬪嵆./tds錛屽洜涓哄湪鍔ㄦ佸嚱鏁板簱浣跨敤鏃訛紝浼氭煡鎵?usr/lib銆?lib鐩綍涓嬬殑鍔ㄦ佸嚱鏁板簱錛岃屾鏃舵垜浠敓鎴愮殑搴撲笉鍦ㄩ噷杈廣? 榪欎釜鏃跺欐湁濂藉嚑縐嶆柟娉曞彲浠ヨ浠栨垚鍔熻繍琛岋細 鏈鐩存帴鏈綆鍗曠殑鏂規硶灝辨槸鎶妉ibstr_out.so鎷夊埌/usr/lib鎴?lib涓幓銆?榪樻湁涓縐嶆柟娉? export LD_LIBRARY_PATH=$(pwd) 鍙﹀榪樺彲浠ュ湪/etc/ld.so.conf鏂囦歡閲屽姞鍏ユ垜浠敓鎴愮殑搴撶殑鐩綍錛岀劧鍚?sbin/ldconfig銆? /etc/ld.so.conf鏄潪甯擱噸瑕佺殑涓涓洰褰曪紝閲岄潰瀛樻斁鐨勬槸閾炬帴鍣ㄥ拰鍔犺澆鍣ㄦ悳绱㈠叡浜簱鏃惰媯鏌ョ殑鐩綍錛岄粯璁ゆ槸浠?usr/lib /lib涓鍙栫殑錛屾墍浠ユ兂瑕侀『鍒╄繍琛岋紝鎴戜滑涔熷彲浠ユ妸鎴戜滑搴撶殑鐩綍鍔犲叆鍒拌繖涓枃浠朵腑騫舵墽琛?sbin/ldconfig 銆傚彟澶栬繕鏈変釜鏂囦歡闇瑕佷簡瑙?etc/ld.so.cache,閲岄潰淇濆瓨浜嗗父鐢ㄧ殑鍔ㄦ佸嚱鏁板簱錛屼笖浼氬厛鎶婁粬浠姞杞藉埌鍐呭瓨涓紝鍥犱負鍐呭瓨鐨勮闂熷害榪滆繙澶т簬紜洏鐨?璁塊棶閫熷害錛岃繖鏍峰彲浠ユ彁楂樿蔣浠跺姞杞藉姩鎬佸嚱鏁板簱鐨勯熷害浜嗐?
浣跨敤ldd鍛戒護鏉ユ煡鐪嬫墽琛屾枃浠朵緷璧栦簬鍝簺搴撱?/p>
璇ュ懡浠ょ敤浜庡垽鏂煇涓彲鎵ц鐨?binary 妗f鍚湁浠涔堝姩鎬佸嚱寮忓簱銆?br />[root@test root]# ldd [-vdr] [filename]
鍙傛暟璇存槑錛?br />--version銆銆鎵撳嵃ldd鐨勭増鏈彿
-v --verbose銆銆鎵撳嵃鎵鏈変俊鎭紝渚嬪鍖呮嫭絎﹀彿鐨勭増鏈俊鎭?br />-d --data-relocs銆銆鎵ц絎﹀彿閲嶉儴緗詫紝騫舵姤鍛婄己灝戠殑鐩爣瀵硅薄錛堝彧瀵笶LF鏍煎紡閫傜敤錛?br />-r --function-relocs銆銆瀵圭洰鏍囧璞″拰鍑芥暟鎵ц閲嶆柊閮ㄧ講錛屽茍鎶ュ憡緙哄皯鐨勭洰鏍囧璞″拰鍑芥暟錛堝彧瀵笶LF鏍煎紡閫傜敤錛?br />--help 鐢ㄦ硶淇℃伅銆?
濡傛灉鍛戒護琛屼腑緇欏畾鐨勫簱鍚嶅瓧鍖呭惈'/'錛岃繖涓▼搴忕殑libc5鐗堟湰灝嗕嬌鐢ㄥ畠浣滀負搴撳悕瀛楋紱鍚﹀垯瀹冨皢鍦ㄦ爣鍑嗕綅緗悳绱㈠簱銆傝繍琛屼竴涓綋鍓嶇洰褰曚笅鐨勫叡浜簱錛屽姞鍓嶇紑"./"銆?/p>
鍦╯hell涓畾涔夊嚱鏁板彲浠ヤ嬌浠g爜妯″潡鍖栵紝渚夸簬澶嶇敤浠g爜銆備笉榪囪剼鏈湰韜殑鍙橀噺鍜屽嚱鏁扮殑鍙橀噺鐨勪綔鐢ㄥ煙闂鍙兘浠や綘璐硅В錛屽湪榪欓噷姊崇悊涓涓嬭繖涓棶棰樸?br />
(1)Shell鑴氭湰涓畾涔夌殑鍙橀噺鏄痝lobal鐨勶紝鍏朵綔鐢ㄥ煙浠庤瀹氫箟鐨勫湴鏂瑰紑濮嬶紝鍒皊hell緇撴潫鎴栬鏄劇ず鍒犻櫎鐨勫湴鏂逛負姝€?br />
渚?錛氳剼鏈彉閲忕殑浣滅敤鍩?br /> #!/bin/bash
#define the function ltx_func
ltx_func()
{
}
#define the variable v1
v1=100
#call the function ltx_func
ltx_func
echo $v1
緇撴灉錛?br /> 100
200
瑙f瀽錛氳剼鏈彉閲弙1鐨勪綔鐢ㄥ煙浠庤瀹氫箟鐨勫湴鏂瑰紑濮嬶紝鍒皊hell緇撴潫銆傝皟鐢ㄥ嚱鏁發tx_func鐨勫湴鏂瑰湪鍙橀噺v1鐨勪綔鐢ㄥ煙鍐咃紝鎵浠ヨ兘澶熻闂茍淇敼鍙橀噺v1銆?br />
(2)Shell鍑芥暟瀹氫箟鐨勫彉閲忛粯璁ゆ槸global鐨勶紝鍏朵綔鐢ㄥ煙浠?#8220;鍑芥暟琚皟鐢ㄦ椂鎵ц鍙橀噺瀹氫箟鐨勫湴鏂?#8221;寮濮嬶紝鍒皊hell緇撴潫鎴栬鏄劇ず鍒犻櫎澶勪負姝€傚嚱鏁板畾涔夌殑鍙橀噺鍙互琚樉紺哄畾涔夋垚local鐨勶紝鍏朵綔鐢ㄥ煙灞闄愪簬鍑芥暟鍐呫備絾璇鋒敞鎰忥紝鍑芥暟鐨勫弬鏁版槸local鐨勩?br />
渚?錛氬嚱鏁板畾涔夌殑global鍙橀噺
#!/bin/bash
#define the function ltx_func
ltx_func()
{
}
#call the function ltx_func
ltx_func
echo $v2
緇撴灉錛?br /> 200
瑙f瀽錛氬嚱鏁板彉閲弙2榛樿鏄痝lobal鐨勶紝鍏朵綔鐢ㄥ煙浠?#8220;鍑芥暟琚皟鐢ㄦ椂鎵ц鍙橀噺瀹氫箟鐨勫湴鏂?#8221;寮濮嬶紝鍒皊hell緇撴潫涓烘銆傛敞鎰忥紝涓嶆槸浠庡畾涔夊嚱鏁扮殑鍦版柟寮濮嬶紝鑰屾槸浠庤皟鐢ㄥ嚱鏁扮殑鍦版柟寮濮嬨傛墦鍗板懡浠ゅ湪鍙橀噺v2鐨勪綔鐢ㄥ煙鍐咃紝鎵浠ヨ兘澶熻闂彉閲弙2銆?br />
渚?錛氬嚱鏁板畾涔夌殑local鍙橀噺
#!/bin/bash
#define the function ltx_func
ltx_func()
{
}
#call the function ltx_func
ltx_func
echo $v2
緇撴灉錛?br /> 錛堢┖錛?br /> 瑙f瀽錛氬嚱鏁板彉閲弙2鏄劇ず瀹氫箟涓簂ocal鐨勶紝鍏朵綔鐢ㄥ煙灞闄愪簬鍑芥暟鍐呫傛墦鍗板懡浠ゅ湪鍑芥暟澶栵紝涓嶅湪鍙橀噺v2鐨勪綔鐢ㄥ煙鍐咃紝鎵浠ヨ兘澶熶笉鑳借闂彉閲弙2銆?br />
渚?錛氬嚱鏁板弬鏁版槸local鍙橀噺
#!/bin/bash
#define the function ltx_func
ltx_func()
{
}
#call the function ltx_func
ltx_func 100
緇撴灉錛?br /> 100
瑙f瀽錛氬嚱鏁板弬鏁版槸local鐨勶紝閫氳繃浣嶇疆鍙橀噺鏉ヨ闂傛墦鍗板懡浠よ緭鍑哄嚱鏁扮殑絎竴涓弬鏁般?br />
(3)濡傛灉鍚屽悕錛孲hell鍑芥暟瀹氫箟鐨刲ocal鍙橀噺浼氬睆钄借剼鏈畾涔夌殑global鍙橀噺銆?br />
渚?錛氬悓鍚峫ocal鍙橀噺灞忚斀global鍙橀噺
#!/bin/bash
#define the function ltx_func
ltx_func()
{
}
#define the global variable v1
v1=100
#call the function ltx_func
ltx_func
echo $v1
緇撴灉錛?br /> 100
200
100
瑙f瀽錛歡lobal鍙橀噺v1鐨勪綔鐢ㄥ煙浠庤瀹氫箟鐨勫湴鏂瑰紑濮嬶紝鍒皊hell緇撴潫銆傝皟鐢ㄥ嚱鏁發tx_func鐨勫湴鏂瑰湪鍙橀噺v1鐨勪綔鐢ㄥ煙鍐咃紝鎵浠ヨ兘澶熷彉閲弙1銆傚嚱 鏁板張瀹氫箟浜嗗悓鍚嶇殑local鍙橀噺v1錛屽悓鍚峫ocal鍙橀噺灞忚斀global鍙橀噺錛屾墍浠ュ嚱鏁扮浜屾鎵撳嵃璁塊棶鐨勬槸local鍙橀噺銆傞鍑哄嚱鏁板悗鍐嶆鎵撳嵃v1錛屾 鏃跺嚱鏁板畾涔夌殑local鍙橀噺宸茬粡娑堝け錛岃闂殑鏄痝lobal鍙橀噺銆?/p>
QUOTE: |
#include #include #include int count=0; void ctrl_c_count(int); main() { int c; void (*old_handler)(int); old_handler=signal(SIGINT,ctrl_c_count); while((c=getchar()!='\n')) ; printf("Ctrl_C count=%d\n",count); signal(SIGINT,old_handler); } void ctrl_c_count(int i) { printf("Ctrl_C\n"); count++; } |
涓)ANSI clock鍑芥暟
1)姒傝堪:
clock 鍑芥暟鐨勮繑鍥炲肩被鍨嬫槸clock_t,瀹冮櫎浠LOCKS_PER_SEC鏉ュ緱鍑烘椂闂?涓鑸敤涓ゆclock鍑芥暟鏉ヨ綆楄繘紼嬭嚜韜繍琛岀殑鏃墮棿.
ANSI clock鏈変笁涓棶棰?
1)濡傛灉瓚呰繃涓涓皬鏃?灝嗚瀵艱嚧婧㈠嚭.
2)鍑芥暟clock娌℃湁鑰冭檻CPU琚瓙榪涚▼浣跨敤鐨勬儏鍐?
3)涔熶笉鑳藉尯鍒嗙敤鎴風┖闂村拰鍐呮牳絀洪棿.
鎵浠lock鍑芥暟鍦╨inux緋葷粺涓婂彉寰楁病鏈夋剰涔?
2)嫻嬭瘯
緙栧啓test1.c紼嬪簭,嫻嬭瘯閲囩敤clock鍑芥暟鐨勮緭鍑轟笌time紼嬪簭鐨勫尯鍒?
vi test1.c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main( void )
{
}
gcc test1.c -o test1
time ./test1
Time to do 1000 empty loops is 0.180000 seconds
real
user
sys
3)鎬葷粨:
(1)紼嬪簭璋冪敤 system("cd");錛岃繖閲屼富瑕佹槸緋葷粺妯″紡瀛愯繘紼嬬殑娑堣?test1紼嬪簭涓嶈兘浣撶幇榪欎竴鐐?
(2)0.180000 seconds縐掔殑娑堣楁槸涓ゆclock()鍑芥暟璋冪敤闄や互CLOCKS_PER_SEC.
(3)clock()鍑芥暟榪斿洖鍊兼槸涓涓浉瀵規椂闂達紝鑰屼笉鏄粷瀵規椂闂?
(4)CLOCKS_PER_SEC鏄郴緇熷畾涔夌殑瀹忥紝鐢盙NU鏍囧噯搴撳畾涔変負1000000.
浜?times()鏃墮棿鍑芥暟
1)姒傝堪:
鍘熷瀷濡備笅錛?br /> clock_t times(struct tms *buf);
tms緇撴瀯浣撳涓?
strace tms{
}
娉ㄩ噴:
tms_utime璁板綍鐨勬槸榪涚▼鎵ц鐢ㄦ埛浠g爜鐨勬椂闂?
tms_stime璁板綍鐨勬槸榪涚▼鎵ц鍐呮牳浠g爜鐨勬椂闂?
tms_cutime璁板綍鐨勬槸瀛愯繘紼嬫墽琛岀敤鎴蜂唬鐮佺殑鏃墮棿.
tms_cstime璁板綍鐨勬槸瀛愯繘紼嬫墽琛屽唴鏍鎬唬鐮佺殑鏃墮棿.
2)嫻嬭瘯:
vi test2.c
#include <sys/times.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
static void do_cmd(char *);
static void pr_times(clock_t, struct tms *, struct tms *);
int main(int argc, char *argv[]){
}
static void do_cmd(char *cmd){
}
static void pr_times(clock_t real, struct tms *tmsstart, struct tms *tmsend){
}
緙栬瘧:
gcc test2.c -o test2
嫻嬭瘯榪欎釜紼嬪簭:
time ./test2 "dd if=/dev/zero f=/dev/null bs=1M count=10000"
10000+0 records in
10000+0 records out
10485760000 bytes (10 GB) copied, 4.93028 s, 2.1 GB/s
real:
user-cpu:
system-cpu:
child-user-cpu:
child-system-cpu:
real
user
sys
3)鎬葷粨:
(1)閫氳繃榪欎釜嫻嬭瘯,緋葷粺鐨則ime紼嬪簭涓巘est2紼嬪簭杈撳嚭鍩烘湰涓鑷翠簡.
(2)(double)clktck鏄氳繃clktck=sysconf(_SC_CLK_TCK)鏉ュ彇鐨?涔熷氨鏄寰楀埌user-cpu鎵鍗犵敤鐨勬椂闂? 灝辮鐢?br /> (tmsend->tms_utime - tmsstart->tms_utime)/(double)clktck);
(3)clock_t times(struct tms *buf);榪斿洖鍊兼槸榪囧幓涓孌墊椂闂村唴鏃墮挓鍢鍡掔殑嬈℃暟.
(4)times()鍑芥暟榪斿洖鍊間篃鏄竴涓浉瀵規椂闂?
涓?瀹炴椂鍑芥暟clock_gettime
鍦≒OSIX1003.1涓娣諱簡榪欎釜鍑芥暟,瀹冪殑鍘熷瀷濡備笅錛?br /> int clock_gettime(clockid_t clk_id, struct timespec *tp);
瀹冩湁浠ヤ笅鐨勭壒鐐?
1)瀹冧篃鏈変竴涓椂闂寸粨鏋勪綋:timespec ,timespec璁$畻鏃墮棿嬈℃暟鐨勫崟浣嶆槸鍗佷嚎鍒嗕箣涓縐?
strace timespec{
}
2)clockid_t鏄‘瀹氬摢涓椂閽熺被鍨?
CLOCK_REALTIME: 鏍囧噯POSIX瀹炴椂鏃墮挓
CLOCK_MONOTONIC: POSIX鏃墮挓,浠ユ亽瀹氶熺巼榪愯;涓嶄細澶嶄綅鍜岃皟鏁?瀹冪殑鍙栧煎拰CLOCK_REALTIME鏄竴鏍風殑.
CLOCK_PROCESS_CPUTIME_ID鍜孋LOCK_THREAD_CPUTIME_ID鏄疌PU涓殑紜歡璁℃椂鍣ㄤ腑瀹炵幇鐨?
3)嫻嬭瘯:
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
#define MILLION 1000000
int main(void)
{
}
緙栬瘧:
gcc test3.c -lrt -o test3
璁$畻鏃墮棿:
time ./test3
it took 3463843 microseconds
real
user
sys
鍥?鏃墮棿鍑芥暟gettimeofday()
1)姒傝堪:
gettimeofday()鍙互鑾峰緱褰撳墠緋葷粺鐨勬椂闂?鏄竴涓粷瀵瑰?/p>
鍘熷瀷濡備笅錛?br /> int gettimeofday ( struct timeval * tv , struct timezone * tz )
timeval緇撳瀷浣撶殑鍘熷瀷濡備笅:
struct timeval {
鎵浠ュ畠鍙互綺劇‘鍒板井縐?/p>
嫻嬭瘯:
#include <sys/time.h>
#include <stdio.h>
#include <unistd.h>
int
main(){
}
gcc test5.c
./a.out
time: 0.041239000000
浜?鍥涚鏃墮棿鍑芥暟鐨勬瘮杈?/strong>
1)綺劇‘搴︽瘮杈?
浠ヤ笅鏄悇縐嶇簿紜害鐨勭被鍨嬭漿鎹?
1縐?1000姣(ms), 1姣=1/1000縐?s)錛?br /> 1縐?1000000 寰(μs), 1寰=1/1000000縐?s)錛?br /> 1縐?1000000000 綰崇(ns),1綰崇=1/1000000000縐?s)錛?/p>
2)
clock()鍑芥暟鐨勭簿紜害鏄?0姣(ms)
times()鍑芥暟鐨勭簿紜害鏄?0姣(ms)
gettimofday()鍑芥暟鐨勭簿紜害鏄井縐?μs)
clock_gettime()鍑芥暟鐨勮閲忓崟浣嶄負鍗佷嚎鍒嗕箣涓錛屼篃灝辨槸綰崇(ns)
3)嫻嬭瘯4縐嶅嚱鏁扮殑綺劇‘搴?
vi test4.c
#include
#include
#include
#include
#include
#include
#define WAIT for(i=0;i<298765432;i++);
#define MILLION
main ( int argc, char *argv[] )
{
}
gcc -lrt test4.c -o test4
debian:/tmp# ./test4
clock time : 1.190000000000
times time : 1.180000000000
gettimeofday time: 1.186477000000
clock_gettime time: 1.179271718000
鍏?鍐呮牳鏃墮挓
榛樿鐨凩inux鏃墮挓鍛ㄦ湡鏄?00HZ,鑰岀幇鍦ㄦ渶鏂扮殑鍐呮牳鏃墮挓鍛ㄦ湡榛樿涓?50HZ.
濡備綍寰楀埌鍐呮牳鐨勬椂閽熷懆鏈熷憿?
grep ^CONFIG_HZ /boot/config-2.6.26-1-xen-amd64
CONFIG_HZ_250=y
CONFIG_HZ=250
緇撴灉灝辨槸250HZ.
鑰岀敤sysconf(_SC_CLK_TCK);寰楀埌鐨勫嵈鏄?00HZ
渚嬪:
#include
#include
#include
#include
#include
#include
int
main ( int argc, char *argv[] )
{
}
涓轟粈涔堝緱鍒扮殑鏄笉鍚岀殑鍊煎憿錛?br /> 鍥犱負sysconf(_SC_CLK_TCK)鍜孋ONFIG_HZ鎵浠h〃鐨勬剰涔夋槸涓嶅悓鐨?
sysconf(_SC_CLK_TCK)鏄疓NU鏍囧噯搴撶殑clock_t棰戠巼.
瀹冪殑瀹氫箟浣嶇疆鍦?/usr/include/asm/param.h
渚嬪:
#ifndef HZ
#define HZ 100
#endif
鏈鍚庢葷粨涓涓嬪唴鏍告椂闂?
鍐呮牳鐨勬爣鍑嗘椂闂存槸jiffy,涓涓猨iffy灝辨槸涓涓唴閮ㄦ椂閽熷懆鏈?鑰屽唴閮ㄦ椂閽熷懆鏈熸槸鐢?50HZ鐨勯鐜囨墍浜х敓涓殑,涔熷氨鏄竴涓椂閽熸淮絳?闂撮殧鏃墮棿鏄?姣?縐?ms).
涔熷氨鏄:
1涓猨iffy=1涓唴閮ㄦ椂閽熷懆鏈?250HZ=1涓椂閽熸淮絳?4姣
姣忕粡榪囦竴涓椂閽熸淮絳斿氨浼氳皟鐢ㄤ竴嬈℃椂閽熶腑鏂鐞嗙▼搴忥紝澶勭悊紼嬪簭鐢╦iffy鏉ョ瘡璁℃椂閽熸淮絳旀暟,姣忓彂鐢熶竴嬈℃椂閽熶腑鏂氨澧?.
鑰屾瘡涓腑鏂箣鍚?緋葷粺閫氳繃璋冨害紼嬪簭璺熸嵁鏃墮棿鐗囬夋嫨鏄惁瑕佽繘紼嬬戶緇繍琛?鎴栬榪涚▼榪涘叆灝辯華鐘舵?
鏈鍚庨渶瑕佽鏄庣殑鏄瘡涓搷浣滅郴緇熺殑鏃墮挓婊寸瓟棰戠巼閮芥槸涓嶄竴鏍風殑,LINUX鍙互閫夋嫨(100,250,1000)HZ,鑰孌OS鐨勯鐜囨槸55HZ.
涓?涓哄簲鐢ㄧ▼搴忚鏃?/strong>
鐢╰ime紼嬪簭鍙互鐩戣浠諱綍鍛戒護鎴栬剼鏈崰鐢–PU鐨勬儏鍐?
1)bash鍐呯疆鍛戒護time
渚嬪:
time sleep 1
real
user
sys
2)/usr/bin/time鐨勪竴鑸懡浠よ
渚嬪:
\time sleep 1
0.00user 0.00system 0:01.01elapsed 0%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (1major+176minor)pagefaults 0swaps
娉細
鍦ㄥ懡浠ゅ墠鍔犱笂鏂滄潬鍙互緇曡繃鍐呴儴鍛戒護.
/usr/bin/time榪樺彲浠ュ姞涓?v鐪嬪埌鏇村叿浣撶殑杈撳嚭:
\time -v sleep 1
榪欓噷鐨勮緭鍑烘洿澶氭潵婧愪簬緇撴瀯浣搑usage.