锘??xml version="1.0" encoding="utf-8" standalone="yes"?>有码中文亚洲精品,亚洲国产岛国毛片在线,国产精品久久久久久户外露出http://m.shnenglu.com/izualzhy/category/16309.html鍧氭寔 鐩鎬俊鑷繁zh-cnThu, 06 Dec 2012 22:51:47 GMTThu, 06 Dec 2012 22:51:47 GMT60linux&shell涓嬬殑瀛楃涓叉搷浣?/title><link>http://m.shnenglu.com/izualzhy/archive/2012/12/01/195859.html</link><dc:creator>izualzhy</dc:creator><author>izualzhy</author><pubDate>Sat, 01 Dec 2012 04:24:00 GMT</pubDate><guid>http://m.shnenglu.com/izualzhy/archive/2012/12/01/195859.html</guid><wfw:comment>http://m.shnenglu.com/izualzhy/comments/195859.html</wfw:comment><comments>http://m.shnenglu.com/izualzhy/archive/2012/12/01/195859.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/izualzhy/comments/commentRss/195859.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/izualzhy/services/trackbacks/195859.html</trackback:ping><description><![CDATA[shell鏈韓瀵逛簬瀛楃涓茬殑鎿嶄綔宸茬粡鏄潪甯稿己澶х殑浜嗭紝寰堜箙浠ユ潵閮藉彧鏄敤鍒頒粈涔堝氨鏌ヤ笅浠涔堬紝浠婂ぉ鎬葷粨浜嗕竴涓嬶紝甯屾湜瀵圭湅鍒拌繖綃囨枃绔犵殑璇昏呮湁鎵甯姪銆?br />渚嬪瓙鍜岃鏄庨兘鍐欏湪涓璧蜂簡錛屾劅瑙夎繖鏍鋒湁鍔╀簬璁板繂銆?br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->string=<span style="color: #800000; ">"</span><span style="color: #800000; ">This is a test string</span><span style="color: #800000; ">"</span><br /><br /><span style="color: #008000; ">#</span><span style="color: #008000; ">string鐨勯暱搴?/span><span style="color: #008000; "><br /></span>echo ${<span style="color: #008000; ">#</span><span style="color: #008000; ">string}</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">expr鍚屾牱鍙互鑾峰彇闀垮害</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">浣嗗湪鏂囦歡閲屾墽琛屼笅闈㈣繖鍙ヤ細鍑洪敊錛屼負浠涔堬紵璇鋒寚鏁?/span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">expr length ${string}</span><span style="color: #008000; "><br /></span><br />echo<br /><span style="color: #008000; ">#</span><span style="color: #008000; ">鎻愬彇瀛愪覆</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">${string:position} 鍦?string涓紝浠庝綅緗?position寮濮嬫彁鍙栧瓙涓?/span><span style="color: #008000; "><br /></span>echo ${string:2}<br /><span style="color: #008000; ">#</span><span style="color: #008000; ">${string:poistion:length} 鍦?string涓紝浠庝綅緗?position寮濮嬫彁鍙栭暱搴︿負$length鐨勫瓙涓?/span><span style="color: #008000; "><br /></span>echo ${string:2:5}<br /><br />echo<br /><span style="color: #008000; ">#</span><span style="color: #008000; ">鍒犻櫎鎿嶄綔</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">${string#substring} 浠庡彉閲?string鐨勫紑澶達紝鍒犻櫎鏈鐭尮閰?substring鐨勫瓙涓?/span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">${string##substring} 浠庡彉閲?string鐨勫紑澶達紝鍒犻櫎鏈闀垮尮閰?substring鐨勫瓙涓?/span><span style="color: #008000; "><br /></span>echo ${string<span style="color: #008000; ">#</span><span style="color: #008000; ">This is a test}</span><span style="color: #008000; "><br /></span>echo ${string<span style="color: #008000; ">#</span><span style="color: #008000; ">*is}</span><span style="color: #008000; "><br /></span>echo ${string<span style="color: #008000; ">#</span><span style="color: #008000; ">#*is}</span><span style="color: #008000; "><br /></span><br />echo<br /><span style="color: #008000; ">#</span><span style="color: #008000; ">${string%substring} 浠庡彉閲?string鐨勭粨灝撅紝鍒犻櫎鏈鐭尮閰?substring鐨勫瓙涓?/span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">${string%%substring} 浠庡彉閲?string鐨勭粨灝撅紝鍒犻櫎鏈闀垮尮閰?substring鐨勫瓙涓?/span><span style="color: #008000; "><br /></span>string=<span style="color: #800000; ">"</span><span style="color: #800000; ">i|ban|banana</span><span style="color: #800000; ">"</span><br />echo ${string%ban*}<br />echo ${string%%ban*}<br /><span style="color: #008000; ">#</span><span style="color: #008000; ">鍏充簬#%榪欎釜濡傛灉瑙夊緱闅捐錛屽彲浠ョ湅涓嬮敭鐩?榪欎箞鏉ヨ錛?/span><span style="color: #008000; "><br />#</span><span style="color: #008000; "> #鍦?鍓嶉潰錛?鍦?鍚庨潰錛?鐨勪綔鐢ㄥ氨鏄彇瀛楃涓?/span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">浣跨敤涓嬩笂闈粙緇嶈繃鐨勫姛鑳斤紝鐚滀笅杈撳嚭?</span><span style="color: #008000; "><br /></span>string=<span style="color: #800000; ">"</span><span style="color: #800000; ">/etc/init.d/profile</span><span style="color: #800000; ">"</span><br />echo <span style="color: #800000; ">"</span><span style="color: #800000; ">Dir: </span><span style="color: #800000; ">"</span> ${string%/*}<br />echo <span style="color: #800000; ">"</span><span style="color: #800000; ">File: </span><span style="color: #800000; ">"</span> ${string<span style="color: #008000; ">#</span><span style="color: #008000; ">#*/}</span><span style="color: #008000; "><br /></span>FileName=${string<span style="color: #008000; ">#</span><span style="color: #008000; ">#*/}</span><span style="color: #008000; "><br /></span>echo <span style="color: #800000; ">"</span><span style="color: #800000; ">FileName Length: </span><span style="color: #800000; ">"</span> ${<span style="color: #008000; ">#</span><span style="color: #008000; ">FileName}</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">Note:</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">${鍙橀噺鍚?substring姝e垯琛ㄨ揪寮弣 浠庡瓧絎︿覆寮澶村紑濮嬪尮閰峴ubstirng,鍒犻櫎鍖歸厤涓婄殑琛ㄨ揪寮?/span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">${鍙橀噺鍚?substring姝e垯琛ㄨ揪寮弣 浠庡瓧絎︿覆緇撳熬寮濮嬪尮閰峴ubstring,鍒犻櫎鍖歸厤涓婄殑琛ㄨ揪寮?/span><span style="color: #008000; "><br /></span><br /><span style="color: #008000; ">#</span><span style="color: #008000; ">${string/substring/replacement} 浣跨敤$replacement,鏉ヤ唬鏇跨涓涓尮閰嶇殑$substring</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">${string//substring/replacement} 浣跨敤$replacement,鏉ヤ唬鏇挎瘡涓涓尮閰嶇殑$substring</span><span style="color: #008000; "><br /></span>string=<span style="color: #800000; ">"</span><span style="color: #800000; ">piapiapia</span><span style="color: #800000; ">"</span><br />echo ${string/pia/ufo}<br />echo ${string//pia/ufo}<br /><br /><span style="color: #008000; ">#</span><span style="color: #008000; ">{string/#substring/replacement} 濡傛灉$stirng鐨勫墠緙鍖歸厤$substring,閭d箞灝辯敤$replacement鏉ヤ唬鏇垮尮閰嶅埌鐨?substring</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">{string/%substring/replacement} 濡傛灉$stirng鐨勫悗緙鍖歸厤$substring,閭d箞灝辯敤$replacement鏉ヤ唬鏇垮尮閰嶅埌鐨?substring</span><span style="color: #008000; "><br /></span>string=<span style="color: #800000; ">"</span><span style="color: #800000; ">i hate myself</span><span style="color: #800000; ">"</span><br />echo ${string/<span style="color: #008000; ">#</span><span style="color: #008000; ">you/ufo}</span><span style="color: #008000; "><br /></span>echo ${string/<span style="color: #008000; ">#</span><span style="color: #008000; ">i/ufo}</span><span style="color: #008000; "><br /></span>echo ${string/%self/slefish}<br /><br />string=<span style="color: #800000; ">"</span><span style="color: #800000; ">/etc/init.d/profile</span><span style="color: #800000; ">"</span><br /><span style="color: #008000; ">#</span><span style="color: #008000; ">鏇存敼絎竴涓枃浠跺す</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">褰撴煡鎵懼唴瀹逛腑鍑虹幇浜?,浣跨敤\/杞箟</span><span style="color: #008000; "><br /></span>echo ${string/<span style="color: #008000; ">#</span><span style="color: #008000; ">\/etc/etc1}</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">濡傛灉鏄笅闈㈢殑璇彞鍒欎細杈撳嚭錛?/span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">/etc/etc1/etc/init.d/profile</span><span style="color: #008000; "><br />#</span><span style="color: #008000; ">鍥犱負 /#/琚鐞嗘帀,/etc/ect1琚綋浣滀簡$replacement</span><span style="color: #008000; "><br /></span>echo ${string/<span style="color: #008000; ">#</span><span style="color: #008000; ">/etc/etc1}</span><span style="color: #008000; "><br /></span></div><img src ="http://m.shnenglu.com/izualzhy/aggbug/195859.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/izualzhy/" target="_blank">izualzhy</a> 2012-12-01 12:24 <a href="http://m.shnenglu.com/izualzhy/archive/2012/12/01/195859.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞Linux grep鍛戒護鐢ㄦ硶http://m.shnenglu.com/izualzhy/archive/2012/08/29/188661.htmlizualzhyizualzhyWed, 29 Aug 2012 10:42:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/08/29/188661.htmlhttp://m.shnenglu.com/izualzhy/comments/188661.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/08/29/188661.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/188661.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/188661.html

http://blog.csdn.net/mark_qi/article/details/7919498

棣栧厛鍒涘緩鎴戜滑緇冧範grep鍛戒護鏃墮渶瑕佺敤鍒扮殑demo鏂囦歡demo_file銆?pre>$ cat demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.

Two lines above this line is empty.
And this is the last line.

1.浠庡崟涓枃浠朵腑鎼滅儲鎸囧畾鐨勫瓧涓?/h5>

grep鐨勫熀紜鐢ㄦ硶鏄涓嬩緥鐨勪粠鎸囧畾鐨勬枃浠朵腑鎼滅儲鐗瑰畾鐨勫瓧涓層?pre>璇硶錛?br>grep "literal_string" filename

$ grep "this" demo_file
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.
2. 鍦ㄥ涓枃浠朵腑媯绱㈡寚瀹氱殑瀛椾覆
璇硶錛?br>grep "string" FILE_PATTERN

鍏堟嫹璐漝emo_file涓篸emo_file1銆俫rep鐨勭粨鏋滃湪絎﹀悎鏉′歡鐨勮鍓嶅皢鍖呮嫭鏂囦歡鍚嶃傚綋鏂囦歡鍚嶅寘鍚厓瀛楃鏃訛紝linux shell浼氬皢鍖歸厤鐨勬墍鏈夋枃浠朵綔涓鴻緭鍏ュ埌grep涓幓銆?pre>$ cp demo_file demo_file1

$ grep "this" demo_*
demo_file:this line is the 1st lower case line in this file.
demo_file:Two lines above this line is empty.
demo_file:And this is the last line.
demo_file1:this line is the 1st lower case line in this file.
demo_file1:Two lines above this line is empty.
demo_file1:And this is the last line.

3. 鐢?grep -i 榪涜澶у皬鍐欐棤鍏崇殑鎼滅儲
璇硶錛?br>grep -i "string" FILE

涔熸槸涓涓熀鏈敤娉曪紝瀵規悳绱㈢殑瀛椾覆蹇界暐澶у皬鍐欙紝鍥犳涓嬩緥涓尮閰嶁渢he鈥? 鈥淭HE鈥?and 鈥淭he鈥濄?pre>$ grep -i "the" demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
And this is the last line.

4. 浣跨敤鐢ㄦ鍒欒〃杈懼紡
璇硶錛?br>grep "REGEX" filename

濡傛灉浣犺兘鏈夋晥鍦板埄鐢ㄦ鍒欒〃杈懼紡錛岃繖鏄釜寰堟湁鐢ㄧ殑鐗圭偣銆傚湪涓嬮潰鐨勪緥瀛愪腑錛屾悳绱㈠叏閮ㄤ互鈥渓ines鈥濆紑濮嬩互鈥渆mpty鈥濈粨鏉熺殑瀛椾覆錛屽鎼滅儲鈥渓ines[涔嬮棿浠繪剰瀛梋empty鈥?錛屽茍涓斿拷鐣ュぇ灝忓啓銆?pre>$ grep -i "lines.*empty" demo_file
Two lines above this line is empty.

姝e垯琛ㄨ揪寮忛伒寰殑鍑犱釜閲嶅鐨勬搷浣?

  • ? 鏈澶氬尮閰嶄竴嬈?
  • * 鍖歸厤闆舵鎴栬呬換鎰忓嬈?
  • + 鍖歸厤涓嬈′互涓?
  • {n} 鍖歸厤n嬈?
  • {n,} 鏈灝戝尮閰峮嬈?
  • {,m} 鏈澶氬尮閰峬嬈?
  • {n,m} 鍖歸厤n鍒癿嬈?/li>
5. 鐢╣rep -w鎼滅儲鏁翠釜璇嶏紝鑰屼笉鏄瘝涓殑閮ㄥ垎瀛椾覆

浣跨敤-w閫夐」鎼滅儲涓涓崟璇嶏紝騫朵笖閬垮厤鎼滅儲鍒拌瘝涓殑閮ㄥ垎瀛椾覆銆?br>涓嬩緥鎼滅儲"is"銆傚鏋滀笉鍔?w閫夐」錛屽皢鏄劇ず鈥渋s鈥? 鈥渉is鈥? 鈥渢his鈥?絳夋墍鏈夊寘鍚渋s鈥濈殑琛屻?pre>$ grep -i "is" demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
This Line Has All Its First Character Of The Word With Upper Case.
Two lines above this line is empty.
And this is the last line.

涓嬩緥浣跨敤浜?w閫夐」錛岃娉ㄦ剰緇撴灉涓笉鍖呭惈 鈥淭his Line Has All Its First Character Of The Word With Upper Case鈥? 铏界劧 鈥淭his鈥濅腑鍖呭惈鈥渋s鈥濄?pre>$ grep -iw "is" demo_file
THIS LINE IS THE 1ST UPPER CASE LINE IN THIS FILE.
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.

6. 浣跨敤grep -A, -B and -C鏄劇ず涔嬪墠銆佷箣鍚庛佸墠鍚庣殑鍑犺

褰撲嬌鐢╣rep鎼滅儲澶ф枃浠舵椂錛屾樉紺哄尮閰嶈闄勮繎鐨勫琛屾暟鎹槸涓涓緢鏈夌敤鐨勫姛鑳姐?

鍒涘緩濡備笅鏂囦歡

$ cat demo_text
4. Vim Word Navigation

You may want to do several navigation in relation to the words, such as:

* e - go to the end of the current word.
* E - go to the end of the current WORD.
* b - go to the previous (before) word.
* B - go to the previous (before) WORD.
* w - go to the next word.
* W - go to the next WORD.

WORD - WORD consists of a sequence of non-blank characters, separated with white space.
word - word consists of a sequence of letters, digits and underscores.

Example to show the difference between WORD and word

* 192.168.1.1 - single WORD
* 192.168.1.1 - seven words.
6.1 鏄劇ず鍖歸厤琛屼箣鍚庣殑N琛?/h6>

-A

璇硶錛?br>grep -A  "string" FILENAME

涓嬩緥鏄劇ず鍖歸厤琛屽拰涔嬪悗鐨?琛屾暟鎹?pre>$ grep -A 3 -i "example" demo_text
Example to show the difference between WORD and word

* 192.168.1.1 - single WORD
* 192.168.1.1 - seven words.

6.2鏄劇ず鍖歸厤琛屼箣鍓嶇殑N琛?/h6>

-B

璇硶錛?br>grep -B  "string" FILENAME

涓嬩緥鏄劇ず鍖歸厤琛屽拰涔嬪墠鐨?琛屾暟鎹?pre>$ grep -B 2 "single WORD" demo_text
Example to show the difference between WORD and word

* 192.168.1.1 - single WORD

6.3鏄劇ず鍖歸厤琛屽墠鍚庣殑N琛?/h6>

-C 鏄劇ず涔嬪墠鐨刵琛岋紝涔嬪悗鐨刵琛屾暟鎹?

$ grep -C 2 "Example" demo_text
word - word consists of a sequence of letters, digits and underscores.

Example to show the difference between WORD and word

* 192.168.1.1 - single WORD
7.閫氳繃GREP_OPTIONS楂樹寒鏄劇ず鎼滅儲鐨勫瓧涓?/h5>

濡傛灉浣犲笇鏈涙悳绱㈢殑瀛椾覆楂樹寒鏄劇ず鍦ㄧ粨鏋滀腑錛屽彲浠ヨ瘯鐢ㄤ互涓嬬殑鍔炴硶銆?

閫氳繃淇敼GREP_OPTIONS瀵規悳绱㈠瓧涓查珮浜樉紺恒?pre>$ export GREP_OPTIONS='--color=auto' GREP_COLOR='100;8'

$ grep this demo_file
this line is the 1st lower case line in this file.
Two lines above this line is empty.
And this is the last line.

8. 鐢╣rep -r閫掑綊鎼滅儲鍏ㄩ儴鐨勬枃浠?/h5>

濡傛灉鎯蟲煡鎵懼綋鍓嶇洰鍓嶄互鍙婂叾瀛愮洰褰曠殑鍏ㄩ儴鏂囦歡鏃訛紝鍙互浣跨敤 -r 閫夐」銆傚涓嬩緥

$ grep -r "ramesh" *
9. 浣跨敤grep -v榪涜涓嶅尮閰?/h5>

鍙互浣跨敤-v閫夐」鏄劇ず涓嶅尮閰嶆悳绱㈠瓧涓茬殑琛屻備笅渚嬫樉紺篸emo_text鏂囦歡涓笉鍖呭惈鈥済o鈥濈殑琛?pre>$ grep -v "go" demo_text
4. Vim Word Navigation

You may want to do several navigation in relation to the words, such as:

WORD - WORD consists of a sequence of non-blank characters, separated with white space.
word - word consists of a sequence of letters, digits and underscores.

Example to show the difference between WORD and word

* 192.168.1.1 - single WORD
* 192.168.1.1 - seven words.

10. 鏄劇ず涓嶅尮閰嶅叏閮ㄦā寮忕殑琛?/h5>
璇硶錛?br>grep -v -e "pattern" -e "pattern"

鍒涘緩濡備笅渚嬪瓙鏂囦歡

$ cat test-file.txt
a
b
c
d

$ grep -v -e "a" -e "b" -e "c" test-file.txt
d
11.鐢╣rep -c 緇熻鍖歸厤鐨勮鏁?/h5>
璇硶錛?br>grep -c "pattern" filename
$ grep -c "go" demo_text
6

緇熻涓嶅尮閰嶇殑琛屾暟

$ grep -v -c this demo_file
4
12. 鐢╣rep -l 鍙樉紺烘枃浠跺悕
$ grep -l this demo_*
demo_file
demo_file1
13. 鍙樉紺哄尮閰嶇殑瀛椾覆

緙虹渷鏄劇ず鍖歸厤瀛椾覆鐨勬墍鍦ㄨ錛屽彲浠ヤ嬌鐢?o閫夐」鍙樉紺哄尮閰嶇殑瀛椾覆銆傝繖欏瑰姛鑳藉綋浣跨敤姝e垯琛ㄨ揪寮忔椂姣旇緝鏈夌敤澶勩?

$ grep -o "is.*line" demo_file

is line is the 1st lower case line
is line
is is the last line
14. 鏄劇ず鍖歸厤鐨勪綅緗?/h5>
璇硶錛?br>grep -o -b "pattern" file
$ cat temp-file.txt
12345
12345

$ grep -o -b "3" temp-file.txt
0:3
6:3

娉ㄦ剰: 浠ヤ笂杈撳嚭鏄劇ず鐨勪笉鏄鍐呯殑浣嶇疆錛岃屾槸鏁翠釜鏂囦歡涓殑瀛楄妭byte浣嶇疆

15. 鐢?grep -n 鍦ㄨ緭鍑烘椂鏄劇ず琛屽彿

琛屽彿浠?寮濮?pre>$ grep -n "go" demo_text
5: * e - go to the end of the current word.
6: * E - go to the end of the current WORD.
7: * b - go to the previous (before) word.
8: * B - go to the previous (before) WORD.
9: * w - go to the next word.
10: * W - go to the next WORD.

izualzhy 2012-08-29 18:42 鍙戣〃璇勮
]]>
[杞琞銆愬師鍒涚炕璇戙戙婂湪linux涓樉紺烘墍鏈夋鍦ㄨ繍琛岀殑榪涚▼銆?/title><link>http://m.shnenglu.com/izualzhy/archive/2012/08/25/188261.html</link><dc:creator>izualzhy</dc:creator><author>izualzhy</author><pubDate>Sat, 25 Aug 2012 10:05:00 GMT</pubDate><guid>http://m.shnenglu.com/izualzhy/archive/2012/08/25/188261.html</guid><wfw:comment>http://m.shnenglu.com/izualzhy/comments/188261.html</wfw:comment><comments>http://m.shnenglu.com/izualzhy/archive/2012/08/25/188261.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/izualzhy/comments/commentRss/188261.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/izualzhy/services/trackbacks/188261.html</trackback:ping><description><![CDATA[<p><em>緲昏瘧錛氶鍝?(</em><a ><em>http://hi.baidu.com/imlidapeng</em></a><em>)</em> <p><em>鐗堟潈鎵鏈夛紝灝婇噸浠栦漢鍔沖姩鎴愭灉錛岃漿杞芥椂璇鋒敞鏄庝綔鑰呭拰鍘熷鍑哄鍙婃湰澹版槑銆?/em> <p><em>鍘熸枃鍚嶇О錛氥奡how All Running Processes in Linux銆?/em> <p><em>鍘熸枃鍦板潃錛歨ttp://www.cyberciti.biz/faq/show-all-running-processes-in-linux/</em> <p>鍦╨inux涓庢牱鏌ョ湅鎵鏈夎繍琛屼腑鐨勮繘紼嬶紵 <p>浣犲彲浠ヤ嬌鐢╬s鍛戒護銆傚畠鑳芥樉紺哄綋鍓嶈繍琛屼腑榪涚▼鐨勭浉鍏充俊鎭紝鍖呮嫭榪涚▼鐨凱ID銆侺inux鍜孶NIX閮芥敮鎸乸s鍛戒護錛屾樉紺烘墍鏈夎繍琛屼腑榪涚▼鐨勭浉鍏充俊鎭俻s鍛戒護鑳芥彁渚涗竴浠藉綋鍓嶈繘紼嬬殑蹇収銆傚鏋滀綘鎯崇姸鎬佸彲浠ヨ嚜鍔ㄥ埛鏂幫紝鍙互浣跨敤top鍛戒護銆?<p>ps鍛戒護 <p>杈撳叆涓嬮潰鐨刾s鍛戒護錛屾樉紺烘墍鏈夎繍琛屼腑鐨勮繘紼嬶細 <p># ps aux | less <p>鍏朵腑錛?<p>-A錛氭樉紺烘墍鏈夎繘紼?<p>a錛氭樉紺虹粓绔腑鍖呮嫭鍏跺畠鐢ㄦ埛鐨勬墍鏈夎繘紼?<p>x錛氭樉紺烘棤鎺у埗緇堢鐨勮繘紼?<p>浠誨姟錛氭煡鐪嬬郴緇熶腑鐨勬瘡涓繘紼嬨?<p># ps -A <p># ps -e <p>浠誨姟錛氭煡鐪嬮潪root榪愯鐨勮繘紼?<p># ps -U root -u root -N <p>浠誨姟錛氭煡鐪嬬敤鎴穠ivek榪愯鐨勮繘紼?<p># ps -u vivek <p>浠誨姟錛歵op鍛戒護 <p>top鍛戒護鎻愪緵浜嗚繍琛屼腑緋葷粺鐨勫姩鎬佸疄鏃惰鍥俱傚湪鍛戒護鎻愮ず琛屼腑杈撳叆top錛?<p># top <p>杈撳嚭錛?<p><img border="0" src="http://hiphotos.baidu.com/imlidapeng/pic/item/1ec9bed02d775e65960a16f0.jpg"> <p>鍥?錛歵op鍛戒護錛氭樉紺篖inux浠誨姟 <p>鎸塹閫鍑猴紝鎸塰榪涘叆甯姪銆?<p>浠誨姟錛氭樉紺鴻繘紼嬬殑鏍戠姸鍥俱?<p>pstree浠ユ爲鐘舵樉紺烘鍦ㄨ繍琛岀殑榪涚▼銆傛爲鐨勬牴鑺傜偣涓簆id鎴杋nit銆傚鏋滄寚瀹氫簡鐢ㄦ埛鍚嶏紝榪涚▼鏍戝皢浠ョ敤鎴鋒墍鎷ユ湁鐨勮繘紼嬩綔涓烘牴鑺傜偣銆?<p>$ pstree <p>杈撳嚭紺轟緥錛?<p><img border="0" src="http://hiphotos.baidu.com/imlidapeng/pic/item/8e04c33ace6a25a23b87cef2.jpg"> <p>鍥?錛歱stree - 鏄劇ず榪涚▼鐨勬爲鐘跺浘 <p>浠誨姟錛氫嬌鐢╬s鍒楀嵃榪涚▼鏍?<p># ps -ejH <p># ps axjf <p>浠誨姟錛氳幏寰楃嚎紼嬩俊鎭?<p>杈撳叆涓嬪垪鍛戒護錛?<p># ps -eLf <p># ps axms <p>浠誨姟錛氳幏寰楀畨鍏ㄤ俊鎭?<p>杈撳叆涓嬪垪鍛戒護錛?<p># ps -eo euser,ruser,suser,fuser,f,comm,label <p># ps axZ <p># ps -eM <p>浠誨姟錛氬皢榪涚▼蹇収鍌ㄥ瓨鍒版枃浠朵腑 <p>杈撳叆涓嬪垪鍛戒護錛?<p># top -b -n1 > /tmp/process.log <p>浣犱篃鍙互灝嗙粨鏋滈氳繃閭歡鍙戠粰鑷繁錛?<p># top -b -n1 | mail -s 'Process snapshot' you@example.com <p>浠誨姟錛氭煡鎵捐繘紼?<p>浣跨敤pgrep鍛戒護銆俻grep鑳芥煡鎵懼綋鍓嶆鍦ㄨ繍琛岀殑榪涚▼騫跺垪鍑虹鍚堟潯浠剁殑榪涚▼ID銆備緥濡傛樉紺篺irefox鐨勮繘紼婭D錛?<p>$ pgrep firefox <p>涓嬮潰鍛戒護灝嗘樉紺鴻繘紼嬪悕涓簊shd銆佹墍鏈夎呬負root鐨勮繘紼嬨?<p>$ pgrep -u root sshd <p>鍚慼top鍜宎top璇磆ello <p>htop鏄竴涓被浼紅op鐨勪氦浜掑紡榪涚▼鏌ョ湅宸ュ叿錛屼絾鏄彲浠ュ瀭鐩村拰姘村鉤婊氬姩鏉ユ煡鐪嬫墍鏈夎繘紼嬪拰浠栦滑鐨勫懡浠よ銆傝繘紼嬬殑鐩稿叧鎿嶄綔錛坘illing錛宺enicing錛変笉闇瑕佽緭鍏ID銆傝瀹夎htop杈撳叆鍛戒護錛?<p># apt-get install htop <p>鎴?<p># yum install htop <p>鍦ㄥ懡浠ゆ彁紺鴻涓緭鍏top錛?<p># htop <p>杈撳嚭紺轟緥錛?<p><img border="0" src="http://hiphotos.baidu.com/imlidapeng/pic/item/21f2aa32e40b2bf95fdf0ef3.jpg"> <p>鍥?錛歨top - Interactive Linux / UNIX process viewer <p>atop宸ュ叿 <p>atop鏄竴涓敤鏉ユ煡鐪婰inux緋葷粺璐熻澆鐨勪氦浜掑紡鐩戞帶宸ュ叿銆傚畠鑳藉睍鐜扮郴緇熷眰綰х殑鍏抽敭紜歡璧勬簮錛堜粠鎬ц兘瑙掑害錛夌殑浣跨敤鎯呭喌錛屽CPU銆佸唴瀛樸佺‖鐩樺拰緗戠粶銆?<p>瀹冧篃鍙互鏍規嵁榪涚▼灞傜駭鐨凜PU鍜屽唴瀛樿礋杞芥樉紺哄摢涓繘紼嬮犳垚浜嗙壒瀹氱殑璐熻澆錛涘鏋滃凡緇忓畨瑁呭唴鏍歌ˉ涓佸彲浠ユ樉紺烘瘡涓繘紼嬬殑紜洏鍜岀綉緇滆礋杞姐傝緭鍏ヤ笅闈㈢殑鍛戒護鍚姩atop錛?<p># atop <p>杈撳嚭紺轟緥錛?<p><img border="0" src="http://hiphotos.baidu.com/imlidapeng/pic/item/ce11b1ec64778247fcfa3cfc.jpg"> <p>鍥?錛欰T Computing's System & Process Monitor <img src ="http://m.shnenglu.com/izualzhy/aggbug/188261.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/izualzhy/" target="_blank">izualzhy</a> 2012-08-25 18:05 <a href="http://m.shnenglu.com/izualzhy/archive/2012/08/25/188261.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞涓涓猣ork鐨勯潰璇曢http://m.shnenglu.com/izualzhy/archive/2012/08/01/185882.htmlizualzhyizualzhyWed, 01 Aug 2012 05:55:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/08/01/185882.htmlhttp://m.shnenglu.com/izualzhy/comments/185882.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/08/01/185882.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/185882.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/185882.html杞嚜錛?a >http://coolshell.cn/articles/7965.html

鍓嶄袱澶╂湁浜洪棶浜嗕釜鍏充簬Unix鐨刦ork()緋葷粺璋冪敤鐨勯潰璇曢錛岃繖涓姝eソ鏄垜澶х害鍗佸勾鍓嶆壘宸ヤ綔鏃舵煇鍏徃闂垜鐨勪竴涓錛屾垜瑙夊緱姣旇緝鏈夎叮錛屽啓綃囨枃绔犱笌澶у鍒嗕韓涓涓嬨傝繖涓鏄繖鏍風殑錛?

棰樼洰錛氳闂笅闈㈢殑紼嬪簭涓鍏辮緭鍑哄灝戜釜鈥?鈥濓紵

   1: #include <stdio.h>
   2:  
   3: #include <sys/types.h>
   4:  
   5: #include <unistd.h>
   6:  
   7: int main(void)
   8:  
   9: {
  10:  
  11: int i;
  12:  
  13: for(i=0; i<2; i++){
  14:  
  15: fork();
  16:  
  17: printf("-");
  18:  
  19: }
  20:  
  21: return 0;
  22:  
  23: }

濡傛灉浣犲fork()鐨勬満鍒舵瘮杈冪啛鎮夌殑璇濓紝榪欎釜棰樺茍涓嶉毦錛岃緭鍑哄簲璇ユ槸6涓?鈥濓紝浣嗘槸錛屽疄闄呬笂榪欎釜紼嬪簭浼氬緢tricky鍦拌緭鍑?涓?鈥濄?/p>

瑕佽娓呰繖涓錛屾垜浠鍏堥渶瑕佺煡閬揻ork()緋葷粺璋冪敤鐨勭壒鎬э紝

  • fork()緋葷粺璋冪敤鏄疷nix涓嬩互鑷韓榪涚▼鍒涘緩瀛愯繘紼嬬殑緋葷粺璋冪敤錛屼竴嬈¤皟鐢紝涓ゆ榪斿洖錛屽鏋滆繑鍥炴槸0錛屽垯鏄瓙榪涚▼錛屽鏋滆繑鍥炲?gt;0錛屽垯鏄埗榪涚▼錛堣繑鍥炲兼槸瀛愯繘紼嬬殑pid錛夛紝榪欐槸浼椾負鍛ㄧ煡鐨勩?/li>
  • 榪樻湁涓涓緢閲嶈鐨勪笢瑗挎槸錛屽湪fork()鐨勮皟鐢ㄥ錛屾暣涓埗榪涚▼絀洪棿浼氬師妯″師鏍峰湴澶嶅埗鍒板瓙榪涚▼涓紝鍖呮嫭鎸囦護錛屽彉閲忓鹼紝紼嬪簭璋冪敤鏍堬紝鐜鍙橀噺錛岀紦鍐插尯錛岀瓑絳夈?/li>

鎵浠ワ紝涓婇潰鐨勯偅涓▼搴忎負浠涔堜細杈撳叆8涓?鈥濓紝榪欐槸鍥犱負printf(鈥?鈥?;璇彞錛屾垜浠煡閬擄紝Unix涓嬬殑璁懼鏈夆?a >鍧楄澶?/a>鈥濆拰鈥?a >瀛楃璁懼鈥濈殑姒傚康錛屾墍璋撳潡璁懼錛屽氨鏄互涓鍧椾竴鍧楃殑鏁版嵁瀛樺彇鐨勮澶囷紝瀛楃璁懼鏄竴嬈″瓨鍙栦竴涓瓧絎︾殑璁懼銆傜鐩樸佸唴瀛樸佹樉紺哄櫒閮芥槸鍧楄澶囷紝瀛楃璁懼濡傞敭鐩樺拰涓插彛銆?strong>鍧楄澶囦竴鑸兘鏈夌紦瀛橈紝鑰屽瓧絎﹁澶囦竴鑸兘娌℃湁緙撳瓨銆?

鎵浠ワ紝瀵逛簬涓婅堪紼嬪簭錛宲rintf(鈥?鈥?;鎶娾?鈥濇斁鍒頒簡緙撳瓨涓紝騫舵病鏈夌湡姝g殑杈撳嚭錛堝弬鐪嬨?a >C璇█鐨勮糠棰?/a>銆嬩腑鐨勭涓棰橈級錛?strong>鍦╢ork鐨勬椂鍊欙紝緙撳瓨琚鍒跺埌浜嗗瓙榪涚▼絀洪棿錛屾墍浠ワ紝灝卞浜嗕袱涓紝灝辨垚浜?涓紝鑰屼笉鏄?涓?

鎴戜滑濡傛灉淇敼涓涓嬩笂闈㈢殑printf鐨勯偅鏉¤鍙ヤ負錛?

printf("-\n");

鎴栨槸

printf("-");

flush();

灝辨病鏈夐棶棰樹簡錛屽洜涓虹▼搴忛亣鍒扳淺n鈥濇垨鏄疎OF錛屾垨鏄紦涓尯婊★紝鎴栨槸鏂囦歡鎻忚堪絎﹀叧闂紝鎴栨槸涓誨姩flush錛屽氨浼氭妸鏁版嵁鍒峰嚭緙撳啿鍖恒?

鎴戜及璁℃湁浜涙湅鍙嬪彲鑳藉浜巉ork()榪樹笉鏄緢浜嗚В錛岄偅涔堟垜浠妸涓婇潰鐨勭▼搴忔敼鎴愪笅闈㈣繖鏍鳳細

   1: #include <stdio.h>
   2:  
   3: #include <sys/types.h>
   4:  
   5: #include <unistd.h>
   6:  
   7: int main(void)
   8:  
   9: {
  10:  
  11: int i;
  12:  
  13: for(i=0; i<2; i++){
  14:  
  15: fork();
  16:  
  17: //娉ㄦ剰錛氫笅闈㈢殑printf鏈夆淺n鈥?/span>
  18:  
  19: printf("ppid=%d, pid=%d, i=%d \n", getppid(), getpid(), i);
  20:  
  21: }
  22:  
  23: sleep(10); //璁╄繘紼嬪仠鐣欏崄縐掞紝榪欐牱鎴戜滑鍙互鐢╬stree鏌ョ湅涓涓嬭繘紼嬫爲
  24:  
  25: return 0;
  26:  
  27: }
  28:  

浜庢槸錛屼笂闈㈣繖孌電▼搴忎細杈撳嚭涓嬮潰鐨勭粨鏋滐紝錛堟敞錛氱紪璇戝嚭鐨勫彲鎵ц鐨勭▼搴忓悕涓篺ork錛?

ppid=8858, pid=8518, i=0

ppid=8858, pid=8518, i=1

ppid=8518, pid=8519, i=0

ppid=8518, pid=8519, i=1

ppid=8518, pid=8520, i=1

ppid=8519, pid=8521, i=1

$ pstree -p | grep fork

|-bash(8858)-+-fork(8518)-+-fork(8519)---fork(8521)

|            |            `-fork(8520)

闈㈠榪欐牱鐨勫浘浣犲彲鑳借繕鏄湅涓嶆噦錛屾病浜嬶紝鎴戝ソ浜嬪仛鍒板簳錛岀敾涓浘緇欎綘鐪嬬湅錛?

娉ㄦ剰錛氫笂鍥句腑鐨勬垜鐢ㄤ簡鍑犱釜鑹插僵錛岀浉鍚岄鑹茬殑鏄悓涓涓繘紼嬨備簬鏄紝鎴戜滑鐨刾stree鐨勫浘紺哄氨鍙互鎴愪負涓嬮潰榪欎釜鏍峰瓙錛氾紙涓嬪浘涓殑棰滆壊涓庝笂鍥懼搴旓級

榪欐牱錛屽浜巔rintf(鈥?鈥?;榪欎釜璇彞錛屾垜浠氨鍙互寰堟竻妤氱殑鐭ラ亾錛屽摢涓瓙榪涚▼澶嶅埗浜嗙埗榪涚▼鏍囧噯杈撳嚭緙撲腑鍖洪噷鐨勭殑鍐呭錛岃屽鑷翠簡澶氭杈撳嚭浜嗐傦紙濡備笅鍥炬墍紺猴紝灝辨槸鎴戦槾褰卞茍鍙岃竟妗嗕簡閭d袱涓瓙榪涚▼錛?

鐜板湪浣犳槑鐧戒簡鍚с傦紙鍙︼紝瀵逛簬鍥句腑鐨勬垜鏈漢鎷欏姡鐨勯厤鑹詫紝璇瘋璋?錛?

錛堝叏鏂囧畬錛?

izualzhy 2012-08-01 13:55 鍙戣〃璇勮
]]>
Terminal姣旇緝甯哥敤鐨勫嚑涓揩鎹烽敭http://m.shnenglu.com/izualzhy/archive/2012/07/24/184870.htmlizualzhyizualzhyTue, 24 Jul 2012 08:06:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/07/24/184870.htmlhttp://m.shnenglu.com/izualzhy/comments/184870.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/07/24/184870.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/184870.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/184870.htmlTechnorati 鏍囩:

tab=琛ュ叏
ctrl+a=寮濮嬩綅緗?
ctrl+e=鏈鍚庝綅緗?
ctrl+k=鍒犻櫎姝ゅ鑷蟲湯灝炬墍鏈夊唴瀹?
ctrl+u=鍒犻櫎姝ゅ鑷沖紑濮嬫墍鏈夊唴瀹?
ctrl+d=鍒犻櫎褰撳墠瀛楁瘝
ctrl+w=鍒犻櫎姝ゅ鍒板乏杈圭殑鍗曡瘝
ctrl+y=綺樿創鐢眂trl+u錛宑trl+d錛宑trl+w鍒犻櫎鐨勫崟璇?
ctrl+r=姝e湪嫻嬭瘯錛岃繕娌″紕鏄庣櫧錛屽懙鍛點?
ctrl+l=鐩稿綋浜巆lear
ctrl+b=鍚戝洖縐誨姩
ctrl+f=鍚戝墠縐誨姩
ctrl+p=鍚戜笂鏄劇ず緙撳瓨鍛戒護
ctrl+n=鍚戜笅鏄劇ず緙撳瓨鍛戒護
ctrl+d=鍏抽棴緇堢
shift+涓婃垨涓?緇堢涓婁笅婊氬姩
shift+pgup鎴杙gdown=緇堢涓婁笅緲婚〉婊氬姩
ctrl+shift+f=鍏ㄥ睆錛堜粎闄愪簬konsole錛?
ctrl+shift+n=鏂扮粓绔紙terminal鍜宬onsole鏈夋墍涓嶅悓錛?
ctrl+c=緇堟



izualzhy 2012-07-24 16:06 鍙戣〃璇勮
]]>
shell涓疄鐜版煡鎵句袱涓枃浠剁殑涓嶉噸澶嶇殑琛?/title><link>http://m.shnenglu.com/izualzhy/archive/2012/07/20/184379.html</link><dc:creator>izualzhy</dc:creator><author>izualzhy</author><pubDate>Fri, 20 Jul 2012 11:23:00 GMT</pubDate><guid>http://m.shnenglu.com/izualzhy/archive/2012/07/20/184379.html</guid><wfw:comment>http://m.shnenglu.com/izualzhy/comments/184379.html</wfw:comment><comments>http://m.shnenglu.com/izualzhy/archive/2012/07/20/184379.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://m.shnenglu.com/izualzhy/comments/commentRss/184379.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/izualzhy/services/trackbacks/184379.html</trackback:ping><description><![CDATA[<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:2ef5ccb0-06e3-4d7c-8fcf-644a0369e856" class="wlWriterEditableSmartContent">Technorati 鏍囩: <a rel="tag">sort</a>,<a rel="tag">uniq</a></div> <p align="left">鏈嬪弸緇欎簡涓や釜email鏂囦歡錛屼竴涓?00琛屽乏鍙?a.txt)錛屼竴涓笉鍒?000琛?b.txt)銆備袱涓湁寰堝閲嶅鐨別mail錛岃鎵懼嚭b.txt閲岄櫎浜哸.txt涔嬪鐨勬墍鏈夎銆?br />鏍規嵁璇勮錛屽彲浠ヨ繖涔堝仛錛?span style="color: red; ">grep -vxFf a.txt b.txt</span></p> <p align="left">浜庢槸灝辨兂鍒頒簡鐩存帴鍒╃敤shell閲岀殑wc錛寀niq錛宻ort絳夈?/p> <p align="left">鍏跺疄鍍忚繖浜涘懡浠わ紝閫夐」鍙傛暟寰堝錛屽ぇ姒傝鐭ラ亾鏌愪釜鐢ㄦ硶錛屽彲浠ュ疄鐜頒粈涔堬紝鐒跺悗鍐嶆煡涔熶笉榪熴?/p> <p align="left">鍏堝啓涓嬫垜鐨勬柟娉曪紝鍐嶅垎鏋愶細</p> <p align="left">cat a.txt > total.txt</p> <p align="left">cat b.txt >> total.txt</p> <p align="left">sort total.txt > total.txt.sort</p> <p align="left">uniq –d total.txt.sort > total.txt.sort.uniq</p> <p align="left">cat b.txt >> total.txt.sort.uniq</p> <p align="left">sort total.txt.sort.uniq > total.txt.sort.uniq.sort</p> <p align="left">uniq –u total.txt.sort.uniq.sort > result.txt</p> <p align="left">涓棿鐢熸垚浜嗕竴浜涗復鏃舵枃浠訛紝涓嶇煡閬撴庝箞鏍烽氳繃pipe鑳藉噺灝戞暟閲忋?/p> <p align="left"><font color="#ff0000" size="4"><strong>uniq浠嬬粛錛?/strong></font></p> <p>uniq [閫夐」] 鏂囦歡 </p><p>璇存槑錛氳繖涓懡浠よ鍙栬緭鍏ユ枃浠訛紝騫舵瘮杈冪浉閭葷殑琛屻傚湪姝e父鎯呭喌涓嬶紝絎簩涓強浠ュ悗鏇村涓噸澶嶈灝嗚鍒犲幓錛岃姣旇緝鏄牴鎹墍鐢ㄥ瓧絎﹂泦鐨勬帓搴忓簭鍒楄繘琛岀殑銆傝鍛戒護鍔犲伐鍚庣殑緇撴灉鍐欏埌杈撳嚭鏂囦歡涓傝緭鍏ユ枃浠跺拰杈撳嚭鏂囦歡蹇呴』涓嶅悓銆傚鏋滆緭鍏ユ枃浠剁敤“- ”琛ㄧず錛屽垯浠庢爣鍑嗚緭鍏ヨ鍙栥?</p><p>璇ュ懡浠ゅ悇閫夐」鍚箟濡備笅錛氥?</p><p>– c 鏄劇ず杈撳嚭涓紝鍦ㄦ瘡琛岃棣栧姞涓婃湰琛屽湪鏂囦歡涓嚭鐜扮殑嬈℃暟銆傚畠鍙彇浠? u鍜? d閫夐」銆?</p><p>– d 鍙樉紺洪噸澶嶈銆?</p><p>– u 鍙樉紺烘枃浠朵腑涓嶉噸澶嶇殑鍚勮銆?</p><p>– n 鍓峮涓瓧孌典笌姣忎釜瀛楁鍓嶇殑絀虹櫧涓璧瘋蹇界暐銆備竴涓瓧孌墊槸涓涓潪絀烘牸銆侀潪鍒惰〃絎︾殑瀛楃涓詫紝褰兼鐢卞埗琛ㄧ鍜岀┖鏍奸殧寮(瀛楁浠?寮濮嬬紪鍙?銆?</p><p>+n 鍓峮涓瓧絎﹁蹇界暐錛屼箣鍓嶇殑瀛楃琚煩榪?瀛楃浠?寮濮嬬紪鍙?銆?</p><p>– f n 涓? n鐩稿悓錛岃繖閲宯鏄瓧孌墊暟銆?</p><p>– s n 涓?n鐩稿悓錛岃繖閲宯鏄瓧絎︽暟銆?</p><p><font color="#ff0000" size="4"><strong>sort浠嬬粛錛?/strong></font> </p><p>sort鐨勯夐」鏇村錛屽ぇ姒傛祻瑙堜笅鏈変釜鍗拌薄鐭ラ亾鍙互鍋氫粈涔堝嵆鍙?</p><p>璇銆娉曪細<strong><a ><u>sort</u></a> </strong>[-b<a ><u>cd</u></a>fimMnr][-o<杈撳嚭鏂囦歡>][-t<鍒嗛殧瀛楃>][+<璧峰鏍忎綅>-<緇撴潫鏍忎綅>][--help][--verison][鏂囦歡]<br />琛ュ厖璇存槑錛歴ort鍙拡瀵規枃鏈枃浠剁殑鍐呭錛屼互琛屼負鍗曚綅鏉ユ帓搴忋?br />鍙傘銆鏁幫細<br />  -b   蹇界暐姣忚鍓嶉潰寮濮嬪嚭鐨勭┖鏍煎瓧絎︺?br />  -c   媯鏌ユ枃浠舵槸鍚﹀凡緇忔寜鐓ч『搴忔帓搴忋?br />  -d   鎺掑簭鏃訛紝澶勭悊鑻辨枃瀛楁瘝銆佹暟瀛楀強絀烘牸瀛楃澶栵紝蹇界暐鍏朵粬鐨勫瓧絎︺?br />  -f   鎺掑簭鏃訛紝灝嗗皬鍐欏瓧姣嶈涓哄ぇ鍐欏瓧姣嶃?br />  -i   鎺掑簭鏃訛紝闄や簡040鑷?76涔嬮棿鐨凙SCII瀛楃澶栵紝蹇界暐鍏朵粬鐨勫瓧絎︺?br />  -m   灝嗗嚑涓帓搴忓ソ鐨勬枃浠惰繘琛屽悎騫躲?br />  -M   灝嗗墠闈?涓瓧姣嶄緷鐓ф湀浠界殑緙╁啓榪涜鎺掑簭銆?br />  -n   渚濈収鏁板肩殑澶у皬鎺掑簭銆?br />  -o<杈撳嚭鏂囦歡>   灝嗘帓搴忓悗鐨勭粨鏋滃瓨鍏ユ寚瀹氱殑鏂囦歡銆?br />  -r   浠ョ浉鍙嶇殑欏哄簭鏉ユ帓搴忋?br />  -t<鍒嗛殧瀛楃>   鎸囧畾鎺掑簭鏃舵墍鐢ㄧ殑鏍忎綅鍒嗛殧瀛楃銆?br />  +<璧峰鏍忎綅>-<緇撴潫鏍忎綅>   浠ユ寚瀹氱殑鏍忎綅鏉ユ帓搴忥紝鑼冨洿鐢辮搗濮嬫爮浣嶅埌緇撴潫鏍忎綅鐨勫墠涓鏍忎綅銆?br />  --help   鏄劇ず甯姪銆?br />  --version   鏄劇ず鐗堟湰淇℃伅 </p><img src ="http://m.shnenglu.com/izualzhy/aggbug/184379.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/izualzhy/" target="_blank">izualzhy</a> 2012-07-20 19:23 <a href="http://m.shnenglu.com/izualzhy/archive/2012/07/20/184379.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>[杞琞鑾峰彇褰撳墠緋葷粺鏃墮棿錛堜笁縐嶆柟娉曪級http://m.shnenglu.com/izualzhy/archive/2012/07/10/182620.htmlizualzhyizualzhyTue, 10 Jul 2012 07:11:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/07/10/182620.htmlhttp://m.shnenglu.com/izualzhy/comments/182620.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/07/10/182620.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/182620.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/182620.htmlTechnorati 鏍囩: ,,,,

http://blog.csdn.net/free_program_1314/article/details/7731073

/*
 * =====================================================================================
 *       Filename:  getCurrentTime.c
 *    Description:  methods of get current time
 *
 *        Version:  1.0
 *        Created:  07/10/2012 09:50:09 AM
 *
 *         Author:  zhy (), izualzhy@163.com
 * =====================================================================================
 */

#include <time.h>
#include <stdio.h>

int main()
{
    time_t curTime = time(NULL);
    char* curDate = ctime(&curTime);
    printf("%s\n",curDate);

    struct tm* localTime = localtime(&curTime);
    char s[50];
    char* format = "%y-%m-%d %H:%M:%S";
    size_t max_size = 49;
    size_t result = strftime(s, max_size, format, localTime);
    if (result!=0) {
        printf("%s\n",s);
    }

    char* cTime = asctime(localTime);
    printf("%s\n", cTime);

    return 0;
}

鎬葷粨涓嬩笁縐嶆柟娉曪細

棣栧厛閮介渶瑕佷嬌鐢╰ime鍑芥暟鑾峰彇鏃墮棿銆?/p>

閮藉湪#include <time.h>閲屽畾涔夈?/p>

鐢ㄥ埌鐨勫嚱鏁板師鍨嬶細

time_t time(time_t *t);

char *ctime(const time_t *timep);

struct tm *localtime(const time_t *timep);

size_t strftime(char *s, size_t max, const char *format,
                const struct tm *tm);

char *asctime(const struct tm *tm);

灝辨垜鐨勬劅瑙夛紝絎簩縐嶆渶涓哄ソ鐢ㄣ傛牸寮忔湁寰堝錛宮an涓涓嬪氨鐪嬪埌浜嗐傛憳鎶勪笅鐢ㄥ埌鐨勶細

%y     The year as a decimal number without a century (range 00 to 99).

%m     The month as a decimal number (range 01 to 12).

%d     The day of the month as a decimal number (range 01 to 31).

%H     The hour as a decimal number using a 24-hour clock (range 00 to 23).

%M     The minute as a decimal number (range 00 to 59).

%S     The second as a decimal number (range 00 to 60).  (The range is up to 60 to allow for occasional leap seconds.)



izualzhy 2012-07-10 15:11 鍙戣〃璇勮
]]>
[杞琞Classical 10 Examples for learning AWKhttp://m.shnenglu.com/izualzhy/archive/2012/07/02/181171.htmlizualzhyizualzhyMon, 02 Jul 2012 12:20:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/07/02/181171.htmlhttp://m.shnenglu.com/izualzhy/comments/181171.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/07/02/181171.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/181171.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/181171.htmlTechnorati 鏍囩:

鍘熷笘鍦板潃錛?a >Classical 10 Examples for learning AWK

寰堜箙涓嶇敤awk浜嗭紝涓鐩磋涓哄涔犵殑鏈浣蟲柟寮忔槸閫氳->瀹炶返->鎬葷粨鐨勮繃紼嬨?/p>

鍘熷笘璁茬殑寰堣緇嗕簡錛屽緢涓嶉敊錛岄兘鏄緢綆鍗曠殑棰樼洰銆傛垜鍦ㄨ繖閲岃褰曚笅鑷繁鍏充簬姣忎釜棰樼洰鐨勬葷粨錛?/p>

e1:

1.鈥?-s鈥濇槸宸﹀榻愶紝鈥?s鈥濇槸鍙沖榻愶紝瀵歸綈鏂瑰紡鐢辨璐熷彿琛ㄧず銆?/p>

e2:

note:grep "Europe" contries涓鏍峰彲浠ヨ揪鍒版晥鏋溿?/p>

e5:

awk鍙互鐩存帴浠庡懡浠よ璇誨彇鎴栦粠鏂囦歡璇誨彇

  • awk [options] 'script' var=value file(s)

  • awk [options] -f scriptfile var=value file(s錛?/p>

e6:

搴旇榪欎箞鍐欙紵

#!/usr/bin/awk
{print $0}

note錛歱rint浼氳嚜鍔ㄦ崲琛岋紝鑰宲rintf涓嶄細銆?/p>

e7:

FILENAME: 褰撳墠鏂囦歡鍚?/p>

OFS:杈撳嚭瀛楁鍒嗛殧絎︼紙榛樿絀烘牸錛?/p>

ORS:杈撳嚭璁板綍鍒嗛殧絎︼紙榛樿鍥炶濺錛?/p>

姣斿鍙互榪欎箞閲嶅啓涓嬶細

#!/usr/bin/awk

BEGIN{FS=":";OFS="-";ORS="$\n"}

{

    printf FILENAME OFS\

        NR OFS\

        $1 OFS\

        $2 OFS\

        $3 OFS\

        $4 OFS\

        ORS

}

杈撳嚭緇撴灉錛?/p>

contries-1-Canada-3852-25-North America-$
contries-2-USA-3615-237-North America-$
contries-3-Brazil-3286-134-South America-$
contries-4-England-94-56-Europe-$
contries-5-France-211-55-Europe-$
contries-6-Japan-144-120-Asia-$
contries-7-Mexico-762-78-North America-$
contries-8-China-3705-1032-Asia-$
contries-9-India-1267-746-Asia-$



izualzhy 2012-07-02 20:20 鍙戣〃璇勮
]]>
automake瀛︿範璁板綍http://m.shnenglu.com/izualzhy/archive/2012/06/28/180680.htmlizualzhyizualzhyThu, 28 Jun 2012 12:43:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/06/28/180680.htmlhttp://m.shnenglu.com/izualzhy/comments/180680.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/06/28/180680.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/180680.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/180680.htmlTechnorati 鏍囩: ,

鏈榪戠湅鍒癮utomake鐨勫嚑綃囨枃绔狅紝欏轟究閲嶆柊澶嶄範浜嗕笅銆?/p>

鎰熻鏈涓昏鐨勫氨鏄繖寮犲浘浜嗐?/p>

鍏朵腑妞渾褰㈢殑鍛戒護灝辨槸鎴戜滑闇瑕佹墜鍔ㄨ緭鍏ユ垨鑰呬慨鏀圭殑銆?/p>

鏂囩珷鏈夊緢澶氾細

http://m.shnenglu.com/sunrise/archive/2012/06/27/180440.html

http://m.shnenglu.com/wc250en007/archive/2012/06/27/180478.aspx

閮芥槸鏈榪戝彂鍦╟pp涓婚〉鐨勩?/p>

浠ョ涓綃囨枃绔犱負渚嬨?/p>

絎?姝ユ湁浜涗笉鏄庣‘

鎴戝啓鐨勬槸錛?/p>

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=hello
hello_SOURCES=hello.c

榪欐牱鍐欎篃鏄彲浠ョ殑錛岀敓鎴愮殑鍙墽琛屾枃浠跺氨鏄痟elloworld

AUTOMAKE_OPTIONS=foreign
bin_PROGRAMS=helloworld
helloworld_SOURCES=hello.c



izualzhy 2012-06-28 20:43 鍙戣〃璇勮
]]>
automake鎻愮ず閿欒installing `./depcomp'; error while making link: Read-only file systemhttp://m.shnenglu.com/izualzhy/archive/2012/06/28/180677.htmlizualzhyizualzhyThu, 28 Jun 2012 12:28:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/06/28/180677.htmlhttp://m.shnenglu.com/izualzhy/comments/180677.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/06/28/180677.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/180677.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/180677.html浠ヤ笅涓烘憳褰曪細

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

鍦ㄧ敓鎴怣akefile鏃訛紝榪愯automake --add-missing鍛戒護鍑虹幇浠ヤ笅閿欒錛?

configure.in: installing './install-sh': error while making link: 涓嶅厑璁哥殑鎿嶄綔
configure.in: installing './mkinstalldirs': error while making link: 涓嶅厑璁哥殑鎿嶄綔
configure.in: installing './missing': error while making link: 涓嶅厑璁哥殑鎿嶄綔
configure.in: installing './depcomp': error while making link: 涓嶅厑璁哥殑鎿嶄綔

緇忚繃鍦ㄧ綉涓婃煡鎵撅紝鍙戠幇鏈変竴綃囨枃绔犱篃鍑虹幇浜嗙被浼肩殑鎯呭喌錛屼互涓嬩負榪欑瘒鏂囩珷鐨勫唴瀹癸細

//===========================================================================

Linux涓嬬殑GTK絳夌瓑銆?/a>
menphix 鍙戣〃浜?2008-06-03 21:09:14

fedora 9鑷甫鐨凣lade鏄?.xx鐗堢殑錛岃屼笖Anjuta鏍規湰灝辨病鏈夈傚垹鎺夋崲鎴愭柊鐨凣lade 3.xx鍜孉njuta錛屽噯澶囪瘯璇曞湪linux涓嬪啓gtk+.
緇撴灉榪愯autogen.sh鎬諱篃榪囦笉鍘匯傝涓嶆槸Anjuta鐨勮緭鍑洪珮浜繕鐪熷彂鐜頒笉浜嗚繖鏍風殑閿欒錛?br>configure.ac:6: installing `./install-sh'; error while making link: 涓嶅厑璁哥殑鎿嶄綔
configure.ac:6: installing `./missing'; error while making link: 涓嶅厑璁哥殑鎿嶄綔
src/Makefile.am: installing `./depcomp'; error while making link: 涓嶅厑璁哥殑鎿嶄綔
Makefile.am: installing `./INSTALL'; error while making link: 涓嶅厑璁哥殑鎿嶄綔
浠旂粏鍒嗘瀽鎵嶇煡閬撳師鏉ユ槸鍥犱負鎶婂伐紼嬫斁鍦‵AT32鍒嗗尯涓婁簡錛岃屽畠涓嶆敮鎸乴ink!
鎸埌ext3涓婂氨瑙e喅浜嗐傚懙鍛點?

//==========================================================================

鍒嗘瀽涓涓嬭嚜宸辯殑鍘熷洜錛屾墠鐭ラ亾鍘熸潵鏄洜涓鴻嚜宸辯殑浠g爜鏂囦歡鏀懼湪linux鍜寃indows鐨勫叡浜洰褰曚笅錛屼篃灝辨槸FAT32鍒嗗尯錛屾渶鍚庢妸榪欎簺浠g爜鏂囦歡縐誨埌ext3涓婂氨瑙e喅浜嗭紝鍛靛懙錛屽お璋㈣阿榪欎綅鍝ヤ滑浣犱簡錛?

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

涔嬪墠鐚滄祴鏄湪铏氭嫙鏈簂inux鍜屼富鏈簑in涓嬪叡浜枃浠剁殑鍘熷洜錛岀湅浜嗕笅鎴戠殑鏄疦TFS鐨勶紝鐪嬫潵鍚屾牱涓嶆敮鎸乴ink銆?

鍙﹀鍏充簬automake錛屾劅鍏磋叮鐨勫彲浠ョ湅涓嬭繖閲岋細

http://www.gnu.org/software/automake/manual/automake.html

 

鍙傝冿細

http://hi.baidu.com/huaan031/blog/item/11849039056fc6c4d5622595.html



izualzhy 2012-06-28 20:28 鍙戣〃璇勮
]]>
getopt_long浠嬬粛http://m.shnenglu.com/izualzhy/archive/2012/06/27/180536.htmlizualzhyizualzhyWed, 27 Jun 2012 12:51:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/06/27/180536.htmlhttp://m.shnenglu.com/izualzhy/comments/180536.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/06/27/180536.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/180536.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/180536.htmlTechnorati 鏍囩:

#include <getopt.h>

int getopt_long(int argc, char * const argv[],
           const char *optstring,
           const struct option *longopts, int *longindex);

int getopt_long_only(int argc, char * const argv[],
           const char *optstring,
           const struct option *longopts, int *longindex);

榪樻槸鐪嬩笅man閲岀殑瑙i噴錛?/strong>

The getopt_long() function works like getopt() except that it also accepts long options, started with two dashes.  (If the program accepts only long options, then
optstring should be specified as an empty string (""), not NULL.)  Long option names may be abbreviated if the abbreviation is unique or is  an  exact  match  for
some defined option.  A long option may take a parameter, of the form --arg=param or --arg param.

longopts is a pointer to the first element of an array of struct option declared in <getopt.h> as

     struct option {
         const char *name;
         int         has_arg;
         int        *flag;
         int         val;
     };

The meanings of the different fields are:

name   is the name of the long option.

has_arg
        is: no_argument (or 0) if the option does not take an argument; required_argument (or 1) if the option requires an argument; or optional_argument (or 2) if
        the option takes an optional argument.

flag   specifies how results are returned for a long option.  If flag is NULL, then getopt_long() returns val.  (For example, the calling program may set  val  to
        the  equivalent short option character.)  Otherwise, getopt_long() returns 0, and flag points to a variable which is set to val if the option is found, but
        left unchanged if the option is not found.

val    is the value to return, or to load into the variable pointed to by flag.

The last element of the array has to be filled with zeros.

If longindex is not NULL, it points to a variable which is set to the index of the long option relative to longopts.

getopt_long_only() is like getopt_long(), but '-' as well as "--" can indicate a long option.  If an option that starts with '-' (not "--") doesn't match  a  long
option, but does match a short option, it is parsed as a short option instead.

鎴戞潵緲昏瘧涓嬶細

鍓嶉潰璇寸殑-h鍙互鐢眊etopt瀹炵幇錛岄偅涔堚攈elp鍒欑敱getopt_long瀹炵幇浜嗐傛墍璋撶殑闀塊夐」鍗砲elp錛岀煭閫夐」灝辨槸h銆?/p>

argc錛宎rgv錛宱ptstring閮藉悓鍓嶉潰銆?/p>

name:濡傗漢elp鈥?鈥漹ersion鈥濈瓑

has_arg:

[絎﹀彿甯擱噺][鏁板糫[鍚箟]

no_argument                0       璇ラ夐」娌℃湁鍙傛暟

required_argument     1       閫夐」闇瑕佸弬鏁?/p>

optional_argument      2       閫夐」鍙傛暟鍙?/p>

int *flag錛?strong>int val:

flag鍜寁al鐩鎬簰渚濊禆錛屼富瑕佸垎涓ょ鎯呭喌錛?

錛?錛夈乫lag涓篘ULL錛寁al鍊肩敤浜庣‘瀹氳闀塊夐」錛屾墍浠ラ渶瑕佷負闀塊夐」鎸囧畾鍞竴鐨剉al鍊箋傝繖閲屼篃涓洪暱閫夐」鍜岀煭閫夐」寤虹珛浜嗘ˉ姊併?

錛?錛夈乫lag涓嶄負NULL錛屽垯灝唙al鍊煎瓨鏀懼埌flag鎵鎸囧悜鐨勫瓨鍌ㄧ┖闂達紝鐢ㄤ簬鏍囪瘑璇ラ暱閫夐」鍑虹幇榪囥?

榪斿洖鍊鹼細

紼嬪簭涓嬌鐢ㄧ煭閫夐」錛屽垯榪斿洖鐭夐」瀛楃錛堝鈥榥'錛夛紝褰撻渶瑕佸弬鏁版槸錛屽垯鍦ㄨ繑鍥炰箣鍓嶅皢鍙傛暟瀛樺叆鍒皁ptarg涓?

紼嬪簭涓嬌鐢ㄩ暱閫夐」錛岃繑鍥炲兼牴鎹甪lag鍜寁al紜畾銆傚綋flag涓篘ULL錛屽垯榪斿洖val鍊箋傛墍浠ユ牴鎹畍al鍊煎仛涓嶅悓鐨勫鐞嗭紝榪欎篃璇存槑浜唙al蹇呴』鍞竴銆傚綋val鍊肩瓑浜庣煭閫夐」鍊鹼紝鍒欏彲浠ヤ嬌鐢ㄧ煭閫夐」瑙f瀽鍑芥暟瑙f瀽闀塊夐」錛涘綋flag涓嶄負NULL錛屽垯灝唙al鍊煎瓨鍏lag鎵鎸囧悜鐨勫瓨鍌ㄧ┖闂達紝getopt_long榪斿洖0

鍑虹幇鏈畾涔夌殑闀塊夐」鎴栬呯煭閫夐」錛実etopt_long榪斿洖錛?

瑙f瀽瀹屾瘯錛実etopt_long榪斿洖-1

 

copy鍙傝冮噷鐨勪竴涓緥瀛愶紝鐣ュ井淇敼浜嗕笅錛?/p>

/*
 * =====================================================================================
 *       Filename:  getopt_long_l.c
 *    Description:  getopt_long() learn notes
 *
 *        Version:  1.0
 *        Created:  06/27/2012 08:25:20 PM
 *
 *         Author:  zhy (), izualzhy@163.com
 * =====================================================================================
 */

#include <stdio.h>
#include <getopt.h>

int main(int argc, char* argv[])
{
    int result, deb;
    struct option opts[] = {{"username", required_argument, NULL, 'n'},
                            {"version",  optional_argument, NULL, 'v'},
                            {"debug",    no_argument, &deb, 2},//flag!=NULL鏃訛紝argument娌℃湁鐢紵
                            {0,0,0,0}//why?
    };
    
    while ((result = getopt_long(argc, argv, "n:v::", opts, NULL))!=-1) {
        switch (result) {
            case 'n'://-n 鎴栬?-username
                printf("username is %s\n", optarg);
                break;
            case 'v'://-v 鎴栬?--version
                printf("version is 1.0.0, %s\n", optarg);
                break;
            case 0://flag涓嶄負NULL
                printf("debug is %d\targs:%s\n", deb, optarg);
                break;
            case '?'://鏈畾涔夌殑閫夐」
                printf("?: %c %c\n", result, optopt);
                break;
            default:
                printf("default: %c\n", result);
                break;
        }
    }

    return 0;
}

image

 

Q:

1.鍙﹀鈥攙ersion錛堝嵆闀塊夐」錛夊悗涓嶇煡閬撳浣曞姞鍙夊弬鏁幫紵璇曚簡涓嬩慨鏀圭▼搴忓悗鈥攄ebug 鈥搗ersion鍚庨兘鏄┖鏍煎姞鍙傛暟鐨勶紝鍙傛暟鐢╫ptarg璇誨彇銆?/p>

image

2.鏈鍚庝竴涓弬鏁版病鐪嬫噦銆傚弬鑰冮噷璇存槸璋冭瘯鐢ㄣ?/p>

鍙傝冿細

http://www.cnitblog.com/zouzheng/archive/2007/04/02/25034.aspx

http://en.wikipedia.org/wiki/Getopt

http://blog.csdn.net/lanyan822/article/details/7692013

http://hi.baidu.com/agodliness/blog/item/554a2d516366711b367abeb2.html



izualzhy 2012-06-27 20:51 鍙戣〃璇勮
]]>
getopt浠嬬粛http://m.shnenglu.com/izualzhy/archive/2012/06/27/180521.htmlizualzhyizualzhyWed, 27 Jun 2012 11:04:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/06/27/180521.htmlhttp://m.shnenglu.com/izualzhy/comments/180521.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/06/27/180521.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/180521.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/180521.htmlTechnorati 鏍囩:

 

棣栧厛man涓嬬湅涓嬪熀鏈殑浠嬬粛錛屾敞鎰忚

$man 3 getopt

鍥犱負getopt涔熸槸shell涓嬬殑涓涓懡浠?/p>

鍩烘湰浠嬬粛錛?/font>

鍘熷瀷錛?/strong>

#include <unistd.h>

int getopt(int argc, char * const argv[],
           const char *optstring);

extern char *optarg;
extern int optind, opterr, optopt;

浣滅敤錛?/p>

鍙互鐢ㄦ潵瑙f瀽鍛戒護琛岄夐」鍙傛暟錛岃屼笉鐢ㄨ嚜宸卞啀鍘誨啓紼嬪簭鍒嗘瀽浜嗐?/p>

鍙傛暟浠嬬粛錛?/strong>

1.argc:鍗充紶鍏ain鍑芥暟鐨刟rgc

2.argv:鍗充紶鍏ain鍑芥暟鐨刟rgv

3.optstring:鎸囧畾棰勬湡鐨勯夐」浠ュ強璇ラ夐」鏄惁瀛樺湪鍙傛暟銆?/p>

鏍煎紡濡備笅錛?/p>

1.鍗曚釜瀛楃錛岃〃紺洪夐」錛屽鈥檟鈥欒〃紺衡?x鈥?br>2.鍗曚釜瀛楃鍚庢帴涓涓啋鍙鳳細琛ㄧず璇ラ夐」鍚庡繀欏昏窡涓涓弬鏁般傚弬鏁扮揣璺熷湪閫夐」鍚庢垨鑰呬互絀烘牸闅斿紑銆傝鍙傛暟鐨勬寚閽堣祴緇檕ptarg銆傚鈥檟:鈥欒〃紺衡?x argument鈥?浣哸rgument鍦ㄨ繖閲屽彲鏈夊彲鏃犮?br>3 鍗曚釜瀛楃鍚庤窡涓や釜鍐掑彿錛岃〃紺鴻閫夐」鍚庡繀欏昏窡涓涓弬鏁般傚弬鏁板繀欏葷揣璺熷湪閫夐」鍚庝笉鑳戒互絀烘牸闅斿紑銆傝鍙傛暟鐨勬寚閽堣祴緇檕ptarg銆傚鈥檟::鈥欒〃紺衡?x argument鈥欙紙榪欎釜鐗規ф槸GNU鐨勬墿寮狅級

涓句釜渚嬪瓙錛?

濡俹ptstring="ab:c::d::",鍛戒護琛屼負getopt.exe -a -b host -ckeke -d haha
host鏄痓鐨勫弬鏁幫紝keke鏄痗鐨勫弬鏁般備絾haha騫朵笉鏄痙鐨勫弬鏁幫紝鍥犱負瀹冧滑涓棿鏈夌┖鏍奸殧寮銆?

鑻辨枃濂界殑鐩存帴鐪嬭繖閲岋紙浠巊etopt.h閲屾妱鐨勶級錛?

/* For communication from `getopt' to the caller.
   When `getopt' finds an option that takes an argument,
   the argument value is returned here.
   Also, when `ordering' is RETURN_IN_ORDER,
   each non-option ARGV-element is returned here.  */

extern char *optarg;

/* Index in ARGV of the next element to be scanned.
   This is used for communication to and from the caller
   and for communication between successive calls to `getopt'.

   On entry to `getopt', zero means this is the first call; initialize.

   When `getopt' returns -1, this is the index of the first of the
   non-option elements that the caller should itself scan.

   Otherwise, `optind' communicates from one call to the next
   how much of ARGV has been scanned so far.  */

extern int optind;

/* Callers store zero here to inhibit the error message `getopt' prints
   for unrecognized options.  */

extern int opterr;

/* Set to an option character which was unrecognized.  */

extern int optopt;

1.extern char* optarg;//閫夐」鐨勫弬鏁版寚閽?/p>

2.extern int optind;//鍌ㄥ瓨璇ヤ綅緗紝涓嬫灝嗕粠璇ヤ綅緗寮濮嬫鏌ラ夐」錛堟鏌ユ椂閬囧埌閫夐」鎴栬呭弬鏁幫紝浣嶇疆+1錛?/p>

3.extern int opterr;//褰搊pterr=0鏃訛紝getopt涓嶅儚stderr杈撳嚭閿欒淇℃伅

4.extern int optopt;//褰撻夐」瀛楃涓嶅湪optstring涓垨鑰呯己灝戝繀瑕佺殑鍙傛暟鏃訛紝璇ラ夐」瀛樺偍鍦╫ptopt錛実etopt榪斿洖鈥?鈥?/p>

璋冪敤涓嬈★紝榪斿洖涓涓夐」銆?/p>

鍦ㄥ懡浠よ閫夐」鍙傛暟鍐嶄篃媯鏌ヤ笉鍒皁ptstring涓寘鍚殑閫夐」鏃訛紝榪斿洖錛?錛屽悓鏃秓ptind鍌ㄥ瓨絎竴涓笉鍖呭惈閫夐」鐨勫懡浠よ鍙傛暟銆?/p>

鍏跺疄鐪嬩釜渚嬪瓙灝辨瘮杈冨鏄撲簡錛?/p>

/*
 * =====================================================================================
 *       Filename:  getopt_l.c
 *    Description:  getopt learning
 *
 *        Version:  1.0
 *        Created:  06/26/2012 08:13:49 PM
 *
 *         Author:  zhy (), izualzhy@163.com
 * =====================================================================================
 */

#include <unistd.h>
#include <stdio.h>

int main(int argc, char *argv[])
{
    int aflag = 0, bflag = 0, cflag = 0;
    int ch;
    while ((ch = getopt(argc, argv, "ab:c")) != -1) {
        printf("optind: %d\n", optind);
        switch (ch) {
            case 'a':
                printf("Have option: -a\n");
                aflag = 1;
                printf("The argument of -a is %s\n", optarg);
                break;
            case 'b':
                printf("Have option: -b\n");
                bflag = 1;
                printf("The argument of -b is %s\n", optarg);
                break;
            case 'c':
                printf("Have option: -c\n");
                cflag = 1;
                break;
            case '?':
                printf("Unknown option: %c\n", (char)optopt);
                break;
        }
    }
}

鍙互鑷繁鍏堣瘯鐫鍐欎笅杈撳嚭鐨勭粨鏋滐細

y@y-VirtualBox:~/Training$ ./getopt_l -a -d -b foo
optind: 2
Have option: -a
The argument of -a is (null)
./getopt_l: invalid option -- 'd'
optind: 3
Unknown option: d
optind: 5
Have option: -b
The argument of -b is foo

閫愯瑙i噴涓嬭緭鍑猴細

1.-a鍦ㄥ懡浠よ閲屼綅緗負1,涓嬫璇誨彇浣嶇疆涓?錛屽洜姝ptind=2

2-3.optstring閲屾湁a錛屽悓鏃禷鏄笉甯﹀弬鏁扮殑錛屽洜姝ゆ嫻嬪埌-a閫夐」錛屽悓鏃跺弬鏁頒負null

4.optstring閲屾病鏈塪(娉紝榪欓噷鐨勮緭鍑烘椂getopt鏈韓杈撳嚭錛岄氳繃璁劇疆opterr鍙互璁劇疆鏄劇ず榪樻槸涓嶆樉紺?

5.涓嬫浠?浣嶇疆錛屽嵆-b寮濮嬭鍙?/p>

6.optstirng娌℃湁d錛岃繑鍥烇紵錛宱ptopt浼氬瓨鍌ㄩ鏈熶箣澶栫殑涓婁竴涓夐」銆?/p>

7.璇誨彇-b鍚屾椂璇誨彇鍏跺弬鏁癴oo錛屽洜姝や笅涓涓綅緗負5

8optstring閲屾湁b錛岃鍙栨紜茍鎵撳嵃

9.鎵撳嵃b鐨勫弬鏁癴oo錛岃鍙栦笉鍒板叾浠栭鏈熶箣鍐呯殑閫夐」錛屽畬姣曡繑鍥?1

 

娉ㄦ剰錛?/p>

榛樿鎯呭喌涓媑etopt浼氶噸鏂版帓鍒楀懡浠よ鍙傛暟鐨勯『搴忥紝鎵浠ュ埌鏈鍚庢墍鏈変笉鍖呭惈閫夐」鐨勫懡浠よ鍙傛暟閮芥帓鍒版渶鍚庛?br>濡俫etopt.exe -a ima -b host -ckeke -d haha, 閮芥渶鍚庡懡浠よ鍙傛暟鐨勯『搴忔槸錛?-a -b host -ckeke -d ima haha
濡傛灉optstring涓殑瀛楃涓蹭互'+'鍔犲彿寮澶存垨鑰呯幆澧冨彉閲廝OSIXLY_CORRE琚緗傞偅涔堜竴閬囧埌涓嶅寘鍚夐」鐨勫懡浠よ鍙傛暟錛実etopt灝變細鍋滄錛岃繑鍥?1銆?

鐪嬩釜渚嬪瓙錛?/p>

/*
 * =====================================================================================
 *       Filename:  getopt_l2.c
 *    Description:  
 *
 *        Version:  1.0
 *        Created:  06/26/2012 08:37:11 PM
 *
 *         Author:  zhy (), izualzhy@163.com
 * =====================================================================================
 */

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

int main(int argc, char *argv[])
{
    int result;

    opterr = 0;//?

    while ((result = getopt(argc, argv, "ab:c::")) != -1) {
        switch (result) {
            case 'a':
                printf("option=a, optopt=%c, optarg=%s\n", optopt, optarg);
                break;
            case 'b':
                printf("option=b, optopt=%c, optarg=%s\n", optopt, optarg);
                break;
            case 'c':
                printf("option=c, optopt=%c, optarg=%s\n", optopt, optarg);
                break;
            case '?':
                printf("result=?, optopt=%c, optarg=%s\n", optopt, optarg);
            default:
                printf("default, result=%c\n", result);
                break;
        }
        printf("argv[%d]=%s\n", optind, argv[optind]);
    }

    printf("result = -1, optind = %d\n", optind);
    for ( result = optind; result<argc; result++)
        printf("------ argv[%d] = %s\n", result, argv[result]);
    printf("\n");
    for ( result = 1; result < argc; result++)
        printf("at the end------argv[%d] = %s\n", result, argv[result]);

    return 0;
}

image

 

鎬葷粨錛?/p>

鍑芥暟璇存槑  getopt()鐢ㄦ潵鍒嗘瀽鍛戒護琛屽弬鏁般傚弬鏁癮rgc鍜宎rgv鏄敱main()浼犻掔殑鍙傛暟涓暟鍜屽唴瀹廣傚弬鏁皁ptstring 鍒欎唬琛ㄦ澶勭悊鐨勯夐」瀛楃涓層傛鍑芥暟浼氳繑鍥炲湪argv 涓笅涓涓殑閫夐」瀛楁瘝錛屾瀛楁瘝浼氬搴斿弬鏁皁ptstring 涓殑瀛楁瘝銆傚鏋滈夐」瀛楃涓查噷鐨勫瓧姣嶅悗鎺ョ潃鍐掑彿鈥?鈥濓紝鍒欒〃紺鴻繕鏈夌浉鍏崇殑鍙傛暟錛屽叏鍩熷彉閲弌ptarg 鍗充細鎸囧悜姝ら澶栧弬鏁般傚鏋済etopt()鎵句笉鍒扮鍚堢殑鍙傛暟鍒欎細鍗板嚭閿欎俊鎭紝騫跺皢鍏ㄥ煙鍙橀噺optopt璁句負鈥?鈥濆瓧絎︼紝濡傛灉涓嶅笇鏈沢etopt()鍗板嚭閿欎俊鎭紝鍒欏彧瑕佸皢鍏ㄥ煙鍙橀噺opterr璁句負0鍗沖彲銆?br>榪斿洖鍊?nbsp; 濡傛灉鎵懼埌絎﹀悎鐨勫弬鏁板垯榪斿洖姝ゅ弬鏁板瓧姣嶏紝濡傛灉鍙傛暟涓嶅寘鍚湪鍙傛暟optstring 鐨勯夐」瀛楁瘝鍒欒繑鍥炩?鈥濆瓧絎︼紝鍒嗘瀽緇撴潫鍒欒繑鍥?1銆?

 

鏈鍚庡疄鎴樹竴涓嬶紝鍋囪鏈変互涓嬮渶姹傦細

1.鍚屽ぇ澶氭暟紼嬪簭涓鏍鳳紝-h杈撳嚭help淇℃伅

2.-c 鎸囧畾鏂囦歡璺緞錛屽鏋滄病鏈夐粯璁や負/tmp/c.conf

3.-d 鎸囧畾鐩爣鏂囦歡錛屽繀欏繪寚瀹氬弬鏁幫紝鍚屾椂璇ラ夐」蹇呴』鎸囧畾銆?

鎴戝疄鐜扮殑錛?pre class="code">/* * ===================================================================================== * Filename: getopt_l3.c * Description: -h for help info * -c set the config file, default is /tmp/c.conf * -d set destination file, could not be empty. * * Version: 1.0 * Created: 06/27/2012 07:12:00 PM * * Author: zhy (), izualzhy@163.com * ===================================================================================== */ #include <unistd.h> #include <stdio.h> int main(int argc, char *argv) { int result; int hflag = 0, cflag = 0, dflag = 0; opterr = 0; char helpinfo[] = "[Usage]: ./a.out \n\ -h, For Help Info\n\ -c, Set the config file, default is /tmp/c.conf\n\ -d, Set the destination file, could not be empty"; while ((result=getopt(argc, argv, "hc::d:")) != -1) { switch (result) { case 'h': hflag = 1; break; case 'c': cflag = 1; if (NULL != optarg) { printf("config file set: %s.\n", optarg); } else { printf("config file set to default: /tmp/c.conf.\n"); } break; case 'd': dflag = 1; if (NULL != optarg) { printf("destination file set to: %s.\n", optarg); } else { printf("args could not be empty for -d options.\n"); return; } break; case '?': printf("unexpected option: %c.\n", optopt); break; default: printf("default, %c", result); } } printf("options(h:%d, c:%d, d:%d)\n", hflag, cflag, dflag); if (hflag && !cflag && !dflag) {//濡傛灉鍙湁h閫夐」錛屾墦鍗板茍鐩存帴榪斿洖錛屽惁鍒欎笉鎵撳嵃. printf("%s.\n", helpinfo); return; } if (!dflag) { printf("-d option must be setted\n"); return; } //鍙傛暟媯嫻嬪畬姣曪紝紼嬪簭鐪熸寮濮嬪共媧諱簡...... // printf("Args Setting Right.\n"); return 0; }

image

鍙傝冿細

http://www.cnitblog.com/zouzheng/archive/2007/04/02/25034.aspx

http://en.wikipedia.org/wiki/Getopt

http://hi.baidu.com/agodliness/blog/item/554a2d516366711b367abeb2.html



izualzhy 2012-06-27 19:04 鍙戣〃璇勮
]]>
[杞琞linux shell 瀛楃涓叉搷浣滐紙闀垮害錛屾煡鎵撅紝鏇挎崲錛夎瑙?/title><link>http://m.shnenglu.com/izualzhy/archive/2012/06/07/177962.html</link><dc:creator>izualzhy</dc:creator><author>izualzhy</author><pubDate>Thu, 07 Jun 2012 11:20:00 GMT</pubDate><guid>http://m.shnenglu.com/izualzhy/archive/2012/06/07/177962.html</guid><wfw:comment>http://m.shnenglu.com/izualzhy/comments/177962.html</wfw:comment><comments>http://m.shnenglu.com/izualzhy/archive/2012/06/07/177962.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/izualzhy/comments/commentRss/177962.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/izualzhy/services/trackbacks/177962.html</trackback:ping><description><![CDATA[<p><a >http://www.cnblogs.com/chengmo/archive/2010/10/02/1841355.html</a></p> <p> </p> <p>鍦ㄥ仛shell鎵瑰鐞嗙▼搴忔椂鍊欙紝緇忓父浼氭秹鍙婂埌瀛楃涓茬浉鍏蟲搷浣溿傛湁寰堝鍛戒護璇彞錛屽錛歛wk,sed閮藉彲浠ュ仛瀛楃涓插悇縐嶆搷浣溿?鍏跺疄shell鍐呯疆涓緋誨垪鎿嶄綔絎﹀彿錛屽彲浠ヨ揪鍒扮被浼兼晥鏋滐紝澶у鐭ラ亾錛屼嬌鐢ㄥ唴閮ㄦ搷浣滅浼氱渷鐣ュ惎鍔ㄥ閮ㄧ▼搴忕瓑鏃墮棿錛屽洜姝ら熷害浼氶潪甯哥殑蹇?<p><strong></strong> <p><strong>涓銆佸垽鏂鍙栧瓧絎︿覆鍊?/strong> <blockquote> <p>琛ㄨ揪寮?br>鍚箟 <p>${var}<br>鍙橀噺var鐨勫? 涓?var鐩稿悓 <p>${var-DEFAULT}<br>濡傛灉var娌℃湁琚0鏄? 閭d箞灝變互$DEFAULT浣滀負鍏跺?* <p>${var:-DEFAULT}<br>濡傛灉var娌℃湁琚0鏄? 鎴栬呭叾鍊間負絀? 閭d箞灝變互$DEFAULT浣滀負鍏跺?* <p>${var=DEFAULT}<br>濡傛灉var娌℃湁琚0鏄? 閭d箞灝變互$DEFAULT浣滀負鍏跺?* <p>${var:=DEFAULT}<br>濡傛灉var娌℃湁琚0鏄? 鎴栬呭叾鍊間負絀? 閭d箞灝變互$DEFAULT浣滀負鍏跺?* <p>${var+OTHER}<br>濡傛灉var澹版槑浜? 閭d箞鍏跺煎氨鏄?OTHER, 鍚﹀垯灝變負null瀛楃涓?<p>${var:+OTHER}<br>濡傛灉var琚緗簡, 閭d箞鍏跺煎氨鏄?OTHER, 鍚﹀垯灝變負null瀛楃涓?<p>${var?ERR_MSG}<br>濡傛灉var娌¤澹版槑, 閭d箞灝辨墦鍗?ERR_MSG * <p>${var:?ERR_MSG}<br>濡傛灉var娌¤璁劇疆, 閭d箞灝辨墦鍗?ERR_MSG * <p>${!varprefix*}<br>鍖歸厤涔嬪墠鎵鏈変互varprefix寮澶磋繘琛屽0鏄庣殑鍙橀噺 <p>${!varprefix@}<br>鍖歸厤涔嬪墠鎵鏈変互varprefix寮澶磋繘琛屽0鏄庣殑鍙橀噺</p></blockquote> <p>鍔犲叆浜嗏?鈥?nbsp; 涓嶆槸鎰忔濇槸錛?褰撶劧, 濡傛灉鍙橀噺var宸茬粡琚緗殑璇? 閭d箞鍏跺煎氨鏄?var. <blockquote> <p>[chengmo@localhost ~]$ echo ${abc-'ok'}<br>ok<br>[chengmo@localhost ~]$ echo $abc <p>[chengmo@localhost ~]$ echo ${abc='ok'}<br>ok<br>[chengmo@localhost ~]$ echo $abc<br>ok <p>濡傛灉abc 娌℃湁澹版槑鈥?" 榪樹細緇檃bc璧嬪箋?<p>[chengmo@localhost ~]$ var1=11;var2=12;var3=<br>[chengmo@localhost ~]$ echo ${!v@}           <br>var1 var2 var3<br>[chengmo@localhost ~]$ echo ${!v*}<br>var1 var2 var3 <p>${!varprefix*}涓?{!varprefix@}鐩鎬技錛屽彲浠ラ氳繃鍙橀噺鍚嶅墠緙瀛楃錛屾悳绱㈠凡緇忓畾涔夌殑鍙橀噺,鏃犺鏄惁涓虹┖鍊箋?/p></blockquote> <p><strong>浜屻佸瓧絎︿覆鎿嶄綔錛堥暱搴︼紝璇誨彇錛屾浛鎹級</strong> <blockquote> <p>琛ㄨ揪寮?br>鍚箟 <p>${#string}<br>$string鐨勯暱搴?<p>${string:position}<br>鍦?string涓? 浠庝綅緗?position寮濮嬫彁鍙栧瓙涓?<p>${string:position:length}<br>鍦?string涓? 浠庝綅緗?position寮濮嬫彁鍙栭暱搴︿負$length鐨勫瓙涓?<p>${string#substring}<br>浠庡彉閲?string鐨勫紑澶? 鍒犻櫎鏈鐭尮閰?substring鐨勫瓙涓?<p>${string##substring}<br>浠庡彉閲?string鐨勫紑澶? 鍒犻櫎鏈闀垮尮閰?substring鐨勫瓙涓?<p>${string%substring}<br>浠庡彉閲?string鐨勭粨灝? 鍒犻櫎鏈鐭尮閰?substring鐨勫瓙涓?<p>${string%%substring}<br>浠庡彉閲?string鐨勭粨灝? 鍒犻櫎鏈闀垮尮閰?substring鐨勫瓙涓?<p>${string/substring/replacement}<br>浣跨敤$replacement, 鏉ヤ唬鏇跨涓涓尮閰嶇殑$substring <p>${string//substring/replacement}<br>浣跨敤$replacement, 浠f浛<em>鎵鏈?/em>鍖歸厤鐨?substring <p>${string/#substring/replacement}<br>濡傛灉$string鐨?em>鍓嶇紑</em>鍖歸厤$substring, 閭d箞灝辯敤$replacement鏉ヤ唬鏇垮尮閰嶅埌鐨?substring <p>${string/%substring/replacement}<br>濡傛灉$string鐨?em>鍚庣紑</em>鍖歸厤$substring, 閭d箞灝辯敤$replacement鏉ヤ唬鏇垮尮閰嶅埌鐨?substring</p></blockquote> <p><strong>璇存槑錛?*</strong> $substring鈥濆彲浠ユ槸涓涓?em>姝e垯琛ㄨ揪寮?/em>. <blockquote> <p><strong>1.闀垮害</strong> <p>[web97@salewell97 ~]$ test='I love china'<br>[web97@salewell97 ~]$ echo ${#test}<br>12 <p>${#鍙橀噺鍚峿寰楀埌瀛楃涓查暱搴?<p><strong>2.鎴彇瀛椾覆</strong> <p>[chengmo@localhost ~]$ test='I love china'<br>[chengmo@localhost ~]$ echo ${test:5}    <br>e china<br>[chengmo@localhost ~]$ echo ${test:5:10}<br>e china <p>${鍙橀噺鍚?璧峰:闀垮害}寰楀埌瀛愬瓧絎︿覆 <p><strong>3.瀛楃涓插垹闄?/strong> <p>[chengmo@localhost ~]$ test='c:/windows/boot.ini'<br>[chengmo@localhost ~]$ echo ${test#/}<br>c:/windows/boot.ini<br>[chengmo@localhost ~]$ echo ${test#*/}<br>windows/boot.ini<br>[chengmo@localhost ~]$ echo ${test##*/}<br>boot.ini <p>[chengmo@localhost ~]$ echo ${test%/*}<br>c:/windows<br>[chengmo@localhost ~]$ echo ${test%%/*} <p>${鍙橀噺鍚?substring姝e垯琛ㄨ揪寮弣浠庡瓧絎︿覆寮澶村紑濮嬮厤澶噑ubstring,鍒犻櫎鍖歸厤涓婄殑琛ㄨ揪寮忋?<p>${鍙橀噺鍚?substring姝e垯琛ㄨ揪寮弣浠庡瓧絎︿覆緇撳熬寮濮嬮厤澶噑ubstring,鍒犻櫎鍖歸厤涓婄殑琛ㄨ揪寮忋?<p>娉ㄦ剰錛?{test##*/},${test%/*} 鍒嗗埆鏄緱鍒版枃浠跺悕錛屾垨鑰呯洰褰曞湴鍧鏈綆鍗曟柟娉曘?<p><strong>4.瀛楃涓叉浛鎹?/strong> <p>[chengmo@localhost ~]$ test='c:/windows/boot.ini'<br>[chengmo@localhost ~]$ echo ${test/\//\\}<br>c:\windows/boot.ini<br>[chengmo@localhost ~]$ echo ${test//\//\\}<br>c:\windows\boot.ini <p>${鍙橀噺/鏌ユ壘/鏇挎崲鍊紏 涓涓?鈥濊〃紺烘浛鎹㈢涓涓紝鈥?/鈥濊〃紺烘浛鎹㈡墍鏈?褰撴煡鎵句腑鍑虹幇浜嗭細鈥?鈥濊鍔犺漿涔夌鈥漒/鈥濊〃紺恒?/p></blockquote> <p><strong>涓夈佹ц兘姣旇緝</strong> <blockquote> <p>鍦╯hell涓紝閫氳繃awk,sed,expr 絳夐兘鍙互瀹炵幇錛屽瓧絎︿覆涓婅堪鎿嶄綔銆備笅闈㈡垜浠繘琛屾ц兘姣旇緝銆?<p>[chengmo@localhost ~]$ test='c:/windows/boot.ini'                      <br>[chengmo@localhost ~]$ time for i in $(seq 10000);do a=${#test};done;            <p>real    0m0.173s<br>user    0m0.139s<br>sys     0m0.004s <p>[chengmo@localhost ~]$ time for i in $(seq 10000);do a=$(expr length $test);done;       <p>real    0m9.734s<br>user    0m1.628s <p>閫熷害鐩稿樊涓婄櫨鍊嶏紝璋冪敤澶栭儴鍛戒護澶勭悊錛屼笌鍐呯疆鎿嶄綔絎︽ц兘鐩稿樊闈炲父澶с傚湪shell緙栫▼涓紝灝介噺鐢ㄥ唴緗搷浣滅鎴栬呭嚱鏁板畬鎴愩備嬌鐢╝wk,sed綾諱技浼氬嚭鐜拌繖鏍風粨鏋溿?/p></blockquote> <p>鍒嗙被: <a >linux</a></p><img src ="http://m.shnenglu.com/izualzhy/aggbug/177962.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/izualzhy/" target="_blank">izualzhy</a> 2012-06-07 19:20 <a href="http://m.shnenglu.com/izualzhy/archive/2012/06/07/177962.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>iwlist鏃剁殑print_scanning_info閿欒http://m.shnenglu.com/izualzhy/archive/2012/05/26/176257.htmlizualzhyizualzhySat, 26 May 2012 08:47:00 GMThttp://m.shnenglu.com/izualzhy/archive/2012/05/26/176257.htmlhttp://m.shnenglu.com/izualzhy/comments/176257.htmlhttp://m.shnenglu.com/izualzhy/archive/2012/05/26/176257.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/176257.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/176257.html 

Wireless Tools For Linux錛?/p>

http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html

鍙互鐪嬪埌鏈鏂扮殑紼沖畾鐗堟湰鏄痸29錛屼笉榪囨垜鍦ㄧ敤鐨勬椂鍊欑粡甯哥鍒拌繖涓敊璇細

[root@y root]# iwlist scanning
lo        Interface doesn't support scanning.

usb0      Interface doesn't support scanning.

print_scanning_info: Allocation failed

 

浜庢槸涓嬭澆浜?9鐨勬簮鐮侊紝閿欒鐨勫嚭澶勶細

 

realloc:
      /* (Re)allocate the buffer - realloc(NULL, len) == malloc(len) */
      newbuf = realloc(buffer, buflen);
      if(newbuf == NULL)
        {
          if(buffer)
        free(buffer);
          fprintf(stderr, "%s: Allocation failed\n", __FUNCTION__);
          return(-1);
        }
      buffer = newbuf;

      /* Try to read the results */
      wrq.u.data.pointer = buffer;
      wrq.u.data.flags = 0;
      wrq.u.data.length = buflen;
      if(iw_get_ext(skfd, ifname, SIOCGIWSCAN, &wrq) < 0)
        {
          /* Check if buffer was too small (WE-17 only) */
          if((errno == E2BIG) && (range.we_version_compiled > 16))
        {
          /* Some driver may return very large scan results, either
           * because there are many cells, or because they have many
           * large elements in cells (like IWEVCUSTOM). Most will
           * only need the regular sized buffer. We now use a dynamic
           * allocation of the buffer to satisfy everybody. Of course,
           * as we don't know in advance the size of the array, we try
           * various increasing sizes. Jean II */

          /* Check if the driver gave us any hints. */
          if(wrq.u.data.length > buflen)
            buflen = wrq.u.data.length;
          else
            buflen *= 2;

          /* Try again */
          goto realloc;
        }
E2BIG閿欒鍙戝嚭鍚庯紝浼氫慨鏀硅realloc鐨勫唴瀛樺潡闀垮害
buflen*=2
灝卞緢璁╀漢璐硅В浜嗭紝鍔犲叆浜嗕簺鎵撳嵃娑堟伅鍚庣紪璇戜簡涓嬪彂鐜幫紝length=0鏃朵篃浼氬彂鍑篍2BIG鐨別rrno錛屽緢璁╀漢璐硅В錛屼笉榪囦互鑷繁鐩墠鐨勭煡璇嗙Н绱紝娌℃硶緇х畫鐮旂┒涓嬪幓浜嗐?/font>
璇曠潃淇敼浜嗕笅錛屼慨鏀圭殑榪囩▼涓紝鍙戠幇浜嗘渶寮濮嬬殑緗戝潃鐨勮繖涔堜竴鍧楋細
image
slightly bigger scan buffer
浜庢槸涓嬭澆浜嗚鐗堟湰鐪嬩簡涓嬶紝鐩稿叧澶勫凡緇忔敼鎴愪簡錛?/font>
realloc:
      /* (Re)allocate the buffer - realloc(NULL, len) == malloc(len) */
      newbuf = realloc(buffer, buflen);
      if(newbuf == NULL)
        {
          if(buffer)
        free(buffer);
          fprintf(stderr, "%s: Allocation failed\n", __FUNCTION__);
          return(-1);
        }
      buffer = newbuf;

      /* Try to read the results */
      wrq.u.data.pointer = buffer;
      wrq.u.data.flags = 0;
      wrq.u.data.length = buflen;
      if(iw_get_ext(skfd, ifname, SIOCGIWSCAN, &wrq) < 0)
        {
          /* Check if buffer was too small (WE-17 only) */
          if((errno == E2BIG) && (range.we_version_compiled > 16)
         && (buflen < 0xFFFF))
        {
          /* Some driver may return very large scan results, either
           * because there are many cells, or because they have many
           * large elements in cells (like IWEVCUSTOM). Most will
           * only need the regular sized buffer. We now use a dynamic
           * allocation of the buffer to satisfy everybody. Of course,
           * as we don't know in advance the size of the array, we try
           * various increasing sizes. Jean II */

          /* Check if the driver gave us any hints. */
          if(wrq.u.data.length > buflen)
            buflen = wrq.u.data.length;
          else
            buflen *= 2;

          /* wrq.u.data.length is 16 bits so max size is 65535 */
          if(buflen > 0xFFFF)
            buflen = 0xFFFF;

          /* Try again */
          goto realloc;
        }

銆?/p>

涓嶈繃榪欓噷鍑洪敊鏃訛紝鎵寰楃殑buffer鏄┖瀛楃涓詫紝鑰屼笉鏄埅鏂殑瀛楃涓詫紝鎵浠ョ敤澶勪笉澶э紝瀵硅嚜宸辯敤澶勪笉澶с俹(鈺枴鈺?o

鍋氫釜璁板綍錛屾繁鎰熻嚜宸辯殑鐭ヨ瘑縐瘡澶皯錛屽鉤鏃舵病浜嬫嬁榪囪繖縐嶄唬鐮佹潵灝辮瀛︿範涓嬨?/p>

 


izualzhy 2012-05-26 16:47 鍙戣〃璇勮
]]>
linux鍛戒護iwconfig閰嶇疆wlan鐨勪嬌鐢ㄦ柟娉?/title><link>http://m.shnenglu.com/izualzhy/archive/2012/05/16/175108.html</link><dc:creator>izualzhy</dc:creator><author>izualzhy</author><pubDate>Wed, 16 May 2012 11:55:00 GMT</pubDate><guid>http://m.shnenglu.com/izualzhy/archive/2012/05/16/175108.html</guid><wfw:comment>http://m.shnenglu.com/izualzhy/comments/175108.html</wfw:comment><comments>http://m.shnenglu.com/izualzhy/archive/2012/05/16/175108.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/izualzhy/comments/commentRss/175108.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/izualzhy/services/trackbacks/175108.html</trackback:ping><description><![CDATA[<p>Tags: linux iwconfig wlan 鏃犵嚎</p> <p>鍏堢湅涓媓elp</p> <p># iwconfig -h<br>Usage: iwconfig [interface]<br>                interface essid {NNN|any|on|off}<br>                interface mode {managed|ad-hoc|master|...}<br>                interface freq N.NNN[k|M|G]<br>                interface channel N<br>                interface bit {N[k|M|G]|auto|fixed}<br>                interface rate {N[k|M|G]|auto|fixed}<br>                interface enc {NNNN-NNNN|off}<br>                interface key {NNNN-NNNN|off}<br>                interface power {period N|timeout N|saving N|off}<br>                interface nickname NNN<br>                interface nwid {NN|on|off}<br>                interface ap {N|off|auto}<br>                interface txpower {NmW|NdBm|off|auto}<br>                interface sens N<br>                interface retry {limit N|lifetime N}<br>                interface rts {N|auto|fixed|off}<br>                interface frag {N|auto|fixed|off}<br>                interface modulation {11g|11a|CCK|OFDMg|...}<br>                interface commit<br>       Check man pages for more details.</p> <p><strong><font color="#ff0000" size="3">鐪嬩簡涓嬫瘮杈冮渶瑕佹敞鎰忕殑涓や釜鍦版柟錛?/font></strong><br>1.essid鍗硍ifi鐑偣鍚嶇О錛宨wlist wlan0 scan鍙互鏌ョ湅褰撳墠鎼滅儲鍒扮殑wifi鐐廣傚叾涓瓀lan0鏄綘鐨勬棤綰胯澶囧悕縐般?/p> <p>[root@kindle /DuoKan]# iwlist<br>Usage: iwlist [interface] scanning [essid NNN] [last]<br>              [interface] frequency<br>              [interface] channel<br>              [interface] bitrate<br>              [interface] rate<br>              [interface] encryption<br>              [interface] keys<br>              [interface] power<br>              [interface] txpower<br>              [interface] retry<br>              [interface] ap<br>              [interface] accesspoints<br>              [interface] peers<br>              [interface] event<br>              [interface] auth<br>              [interface] wpakeys<br>              [interface] genie<br>              [interface] modulation</p> <p>2.key鍏抽敭瀛楃殑浣跨敤錛屾暟瀛椾笌ascii鏄笉鍚岀殑銆?br></p> <p><strong><font color="#ff0000" size="3">杞瘒鏂囩珷錛屽啓鐨勯潪甯歌緇嗭細</font></strong></p> <p>iwconfig鏄疞inux Wireless Extensions(LWE)鐨勭敤鎴峰眰閰嶇疆宸ュ叿涔嬩竴銆侺WE鏄疞inux涓嬪鏃犵嚎緗戠粶閰嶇疆鐨勫伐鍏鳳紝鍖呮嫭鍐呮牳鐨勬敮鎸併佺敤鎴峰眰閰嶇疆宸ュ叿鍜岄┍鍔ㄦ帴鍙g殑鏀寔涓夐儴鍒嗐傜洰鍓嶅緢澶氭棤綰跨綉鍗¢兘鏀寔LWE錛岃屼笖涓繪祦鐨凩inux鍙戝竷鐗堟湰錛屾瘮濡俁edhat Linux銆乁buntu Linux閮藉凡緇忓甫浜嗚繖涓厤緗伐鍏楓? <p>1銆乮wconfig<br>鐢ㄦ硶: iwconfig interface [essid {NN|on|off}]<br>                          [nwid {NN|on|off}]<br>                          [mode {managed|ad-hoc|...}<br>                          [freq N.NNNN[k|M|G]]<br>                          [channel N]<br>                          [ap {N|off|auto}]<br>                          [sens N]<br>                          [nick N]<br>                          [rate {N|auto|fixed}]<br>                          [rts {N|auto|fixed|off}]<br>                          [frag {N|auto|fixed|off}]<br>                          [enc {NNNN-NNNN|off}]<br>                          [power {period N|timeout N}]<br>                          [retry {limit N|lifetime N}]<br>                          [txpower N {mW|dBm}]<br>                          [commit] <p>璇存槑錛歩wconfig鏄疞WE鏈涓昏鐨勫伐鍏鳳紝鍙互瀵規棤綰跨綉鍗$殑澶ч儴鍒嗗弬鏁拌繘琛岄厤緗?br>鍙傛暟錛?br>essid錛氳緗棤綰跨綉鍗$殑ESSID(Extension Service Set ID)銆傞氳繃ESSID鏉ュ尯鍒嗕笉鍚岀殑鏃犵嚎緗戠粶錛屾甯告儏鍐典笅鍙湁鐩稿悓ESSID鐨勬棤綰跨珯鐐?br>         鎵嶅彲浠ヤ簰鐩擱氳錛岄櫎闈炴兂鐩戝惉鏃犵嚎緗戠粶銆傚叾鍚庣殑鍙傛暟涓哄弻寮曞彿鎷搗鐨凟SSID瀛楃涓詫紝鎴栬呮槸any/on/off錛屽鏋淓SSID瀛楃涓蹭腑鍖呭惈<br>         any/no/off錛屽垯闇瑕佸湪鍓嶉潰鍔?--"銆?br>         紺轟緥錛?br>             #iwconfig eth0 essid any                   鍏佽浠諱綍ESSID錛屼篃灝辨槸娣鋒潅妯″紡<br>             #iwconfig eth0 essid "My Network"          璁劇疆ESSID涓?My Network"<br>             #iwconfig eth0 essid -- "ANY"              璁劇疆ESSID涓?ANY"<br>  nwid: Network ID錛屽彧鐢ㄤ簬pre-802.11鐨勬棤綰跨綉鍗★紝802.11緗戝崱鍒╃敤ESSID鍜孉P鐨凪AC鍦板潃鏉ユ浛鎹wid錛岀幇鍦ㄥ熀鏈笂涓嶇敤璁劇疆銆?br>         紺轟緥錛?br>             #iwconfig eth0 nwid AB34<br>             #iwconfig eth0 nwid off<br>  nick: Nickname錛屼竴浜涚綉鍗¢渶瑕佽緗鍙傛暟錛屼絾鏄?02.11鍗忚鏍堛丮AC閮芥病鏈夌敤鍒拌鍙傛暟錛屼竴鑸篃涓嶇敤璁劇疆銆?br>         紺轟緥錛?br>            #iwconfig eth0 nickname "My Linux Node"<br>  mode錛氳緗棤綰跨綉鍗$殑宸ヤ綔妯″紡錛屽彲浠ユ槸<br>        Ad-hoc錛氫笉甯P鐨勭偣瀵圭偣鏃犵嚎緗戠粶<br>        Managed錛氶氳繃澶氫釜AP緇勬垚鐨勭綉緇滐紝鏃犵嚎璁懼鍙互鍦ㄨ繖涓綉緇滀腑婕父<br>        Master錛氳緗鏃犵嚎緗戝崱涓轟竴涓狝P<br>        Repeater錛氳緗負鏃犵嚎緗戠粶涓戶璁懼錛屽彲浠ヨ漿鍙戠綉緇滃寘<br>        Secondary錛氳緗負澶囦喚鐨凙P/Repeater<br>        Monitor錛氱洃鍚ā寮?br>        Auto錛氱敱鏃犵嚎緗戝崱鑷姩閫夋嫨宸ヤ綔妯″紡<br>          紺轟緥錛?br>            #iwconfig eth0 mode Managed<br>            #iwconfig eth0 mode Ad-Hoc<br>  freq/channel錛氳緗棤綰跨綉鍗$殑宸ヤ綔棰戠巼鎴栬呴閬擄紝灝忎簬1000鐨勫弬鏁拌璁や負鏄閬擄紝澶т簬10000鐨勫弬鏁拌璁や負鏄鐜囥傞鐜囧崟浣嶄負Hz錛?br>                鍙互鍦ㄦ暟瀛楀悗闈㈤檮甯, M, G鏉ユ敼鍙樻暟閲忕駭錛屾瘮濡?.4G銆傞閬撲粠1寮濮嬨備嬌鐢╨wlist宸ュ叿鍙互鏌ョ湅鏃犵嚎緗戝崱鏀寔鐨勯鐜?br>                鍜岄閬撱傚弬鏁皁ff/auto鎸囩ず鏃犵嚎緗戠粶鑷姩鎸戦夐鐜囥?br>         娉ㄦ剰錛氬鏋滄槸Managed妯″紡錛孉P浼氭寚紺烘棤綰跨綉鍗$殑宸ヤ綔棰戠巼錛屽洜姝よ璁劇疆鐨勫弬鏁頒細琚拷鐣ャ侫d-hoc妯″紡涓嬪彧浣跨敤璇ヨ瀹氱殑棰戠巼<br>         鍒濆鏃犵嚎緗戠粶錛屽鏋滃姞鍏ュ凡緇忓瓨鍦ㄧ殑Ad-hoc緗戠粶鍒欎細蹇界暐璇ヨ緗殑棰戠巼鍙傛暟銆?br>         紺轟緥錛?br>          #iwconfig eth0 freq 2422000000<br>          #iwconfig eth0 freq 2.422G<br>          #iwconfig eth0 channel 3<br>          #iwconfig eth0 channel auto <p>  ap錛氳繛鎺ュ埌鎸囧畾鐨凙P鎴栬呮棤綰跨綉緇滐紝鍚庨潰鐨勫弬鏁板彲浠ユ槸AP鐨凪AC鍦板潃錛屼篃鍙互鏄痠wlist scan鍑烘潵鐨勬爣璇嗙銆傚鏋滄槸Ad-hoc錛屽垯榪炴帴鍒?br>      涓涓凡緇忓瓨鍦ㄧ殑Ad-hoc緗戠粶銆備嬌鐢╫ff鍙傛暟璁╂棤綰跨綉鍗′笉鏀瑰彉褰撳墠宸茶繛鎺ョ殑AP涓嬭繘鍏ヨ嚜鍔ㄦā寮忋俛ny/auto鍙傛暟錛屾棤綰跨綉鍗¤嚜鍔ㄩ夋嫨<br>      鏈濂界殑AP銆?br>        娉ㄦ剰錛氬鏋滄棤綰夸俊鍙蜂綆鍒頒竴瀹氱▼搴︼紝鏃犵嚎緗戠粶浼氳繘鍏ヨ嚜鍔ㄩ夋嫨AP妯″紡銆?br>        紺轟緥錛?br>          #iwconfig eth0 ap 00:60:1D:01:23:45<br>          #iwconfig eth0 ap any<br>          #iwconfig eth0 ap off <p>  rate/bit錛氬鏋滄棤綰跨綉鍗℃敮鎸佸閫熺巼錛屽垯鍙互閫氳繃璇ュ懡浠よ緗伐浣滅殑閫熺巼銆傚皬浜?000鐨勫弬鏁扮敱鍏蜂綋鐨勬棤綰跨綉鍗¢┍鍔ㄥ畾涔夛紝涓鑸槸浼犺緭閫?br>            鐜囩殑绱㈠紩鍊鹼紝澶т簬1000鐨勪負閫熺巼錛屽崟浣峛ps錛屽彲浠ュ湪鏁板瓧鍚庨潰闄勫甫k, M, G鏉ユ寚瀹氭暟閲忕駭銆俛uto鍙傛暟璁╂棤綰跨綉鍗¤嚜鍔ㄩ夋嫨閫熺巼<br>            fixed鍙傛暟璁╂棤綰跨綉鍗′笉浣跨敤鑷姩閫熺巼妯″紡銆?br>        紺轟緥錛?br>         #iwconfig eth0 rate 11M<br>         #iwconfig eth0 rate auto<br>         #iwconfig eth0 rate 5.5M auto    //鑷姩閫夋嫨5.5M浠ヤ笅鐨勯熺巼<br>  txpower錛氬鏋滄棤綰跨綉鍗℃敮鎸佸鍙戝皠鍔熺巼璁懼畾錛屽垯浣跨敤璇ュ弬鏁拌瀹氬彂灝勶紝鍗曚綅涓篸Bm錛屽鏋滄寚瀹氫負W錛堟鐡︼級錛屽彧杞崲鍏紡涓猴細<br>           dBm=30+log(W)銆傚弬鏁皁n/off鍙互鎵撳紑鍜屽叧闂彂灝勫崟鍏冿紝auto鍜宖ixed鎸囧畾鏃犵嚎鏄惁鑷姩閫夋嫨鍙戝皠鍔熺巼銆?br>        紺轟緥錛?br>         #iwconfig eth0 txpower 15<br>         #iwconfig eth0 txpower 30mW<br>         #iwconfig eth0 txpower auto<br>         #iwconfig eth0 txpower off  <br>  sens錛氳緗帴鏀剁伒鏁忓害鐨勪笅闄愶紝鍦ㄨ涓嬮檺涔嬩笅錛屾棤綰跨綉鍗¤涓鴻鏃犵嚎緗戠粶淇″彿澶樊錛屼笉鍚岀殑緗戝崱浼氶噰鍙栦笉鍚岀殑鎺柦錛屼竴浜涚幇浠g殑鏃犵嚎緗戝崱<br>        浼氳嚜鍔ㄩ夋嫨鏂扮殑AP銆傛鐨勫弬鏁頒負raw data錛岀洿鎺ヤ紶緇欐棤綰跨綉鍗¢┍鍔ㄥ鐞嗭紝涓鑸涓烘槸鐧懼垎姣斻傝礋鍊艱〃紺篸Bm鍊箋?br>        紺轟緥錛?br>          #iwconfig eth0 sens -80<br>          #iwconfig eth0 sens 2<br>  retry錛氳緗棤綰跨綉鍗$殑閲嶄紶鏈哄埗銆俵imit 鈥榲alue鈥?鎸囧畾鏈澶ч噸浼犳鏁幫紱lifetime 鈥榲alue鈥欐寚瀹氭渶闀塊噸璇曟椂闂達紝鍗曚綅涓虹錛屽彲浠ラ檮甯鍜寀鏉?br>         鎸囧畾鍗曚綅涓烘縐掑拰寰銆傚鏋滄棤綰跨綉鍗℃敮鎸佽嚜鍔ㄦā寮忥紝鍒欏湪limit鍜宭ifetime涔嬪墠榪樺彲浠ラ檮鍔爉in鍜宮ax鏉ユ寚瀹氫笂涓嬮檺鍊箋?br>       紺轟緥錛?br>         #iwconfig eth0 retry 16<br>         #iwconfig eth0 retry lifetime 300m<br>         #iwconfig eth0 retry min limit 8<br>  rts錛氭寚瀹歊TS/CTS鎻℃墜鏂瑰紡錛屼嬌鐢≧TS/CTS鎻℃墜浼氬鍔犻澶栧紑閿錛屼絾濡傛灉鏃犵嚎緗戠粶涓湁闅愯棌鏃犵嚎鑺傜偣鎴栬呮湁寰堝鏃犵嚎鑺傜偣鏃跺彲浠ユ彁楂樻ц兘銆?br>       鍚庨潰鐨勫弬鏁版寚瀹氫竴涓嬌鐢ㄨ鏈哄埗鐨勬渶灝忓寘鐨勫ぇ灝忥紝濡傛灉璇ュ肩瓑浜庢渶澶у寘澶у皬錛屽垯鐩稿綋浜庣姝嬌鐢ㄨ鏈哄埗銆傚彲浠ヤ嬌鐢╝uto/off/fixed<br>       鍙傛暟銆?br>       紺轟緥錛?br>         #iwconfig eth0 rts 250<br>         #iwconfig eth0 rts off<br>  frag錛氳緗彂閫佹暟鎹寘鐨勫垎鐗囧ぇ灝忋傝緗垎鐗囦細澧炲姞棰濆寮閿錛屼絾鍦ㄥ櫔澹扮幆澧冧笅鍙互鎻愰珮鏁版嵁鍖呯殑鍒拌揪鐜囥備竴鑸儏鍐典笅璇ュ弬鏁板皬浜庢渶澶у寘<br>       澶у皬錛屾湁浜涙敮鎸丅urst妯″紡鐨勬棤綰跨綉鍗″彲浠ヨ緗ぇ浜庢渶澶у寘澶у皬鐨勫兼潵鍏佽Burst妯″紡銆傝繕鍙互浣跨敤auto/fixed/off鍙傛暟銆?br>       紺轟緥錛?br>         #iwconfig eth0 frag 512<br>         #iwconfig eth0 frag off     <br>  key/enc[ryption]錛氳緗棤綰跨綉鍗′嬌鐢ㄧ殑鍔犲瘑瀵嗛挜錛屾澶勪負璁劇疆WEP妯″紡鐨勫姞瀵唊ey錛屽鏋滆浣跨敤WPA錛岄渶瑕亀pa_supplicant宸ュ叿鍖呫?br>        瀵嗛挜鍙傛暟鍙互鏄?XXXX-XXXX-XXXX-XXXX 鎴栬?XXXXXXXX 鏍煎紡鐨勫崄鍏繘鍒舵暟鍊鹼紝涔熷彲浠ユ槸s:xxxxxx鐨凙SCII瀛楃銆傚鏋滃湪瀵嗛挜鍙傛暟涔嬪墠<br>        鍔犱簡[index]錛屽垯鍙槸璁劇疆璇ョ儲寮曞煎搴旂殑瀵嗛挜錛屽茍涓嶆敼鍙樺綋鍓嶇殑瀵嗛挜銆傜洿鎺ユ寚瀹歔index]鍊煎彲浠ヨ緗綋鍓嶄嬌鐢ㄥ摢涓涓瘑閽ャ傛寚瀹歰n/<br>        off鍙互鎺у埗鏄惁浣跨敤鍔犲瘑妯″紡銆俹pen/restricted鎸囧畾鍔犲瘑妯″紡錛屽彇鍐充簬涓嶅悓鐨勬棤綰跨綉鍗★紝澶у鏁版棤綰跨綉鍗$殑open妯″紡涓嶄嬌鐢ㄥ姞瀵嗕笖<br>        鍏佽鎺ユ敹娌℃湁鍔犲瘑鐨勬暟鎹寘錛宺estricted妯″紡浣跨敤鍔犲瘑銆傚彲浠ヤ嬌鐢ㄥ涓猭ey鍙傛暟錛屼絾鍙湁鏈鍚庝竴涓敓鏁堛?br>            WEP瀵嗛挜鍙互鏄?0bit錛岀敤10涓崄鍏繘鍒舵暟瀛楁垨鑰?涓狝SCII瀛楃琛ㄧず錛屼篃鍙互鏄?28bit錛岀敤26涓崄鍏繘鍒舵暟瀛楁垨鑰?3涓狝SCII瀛楃琛?br>        紺恒? <p>        紺轟緥錛?br>          #iwconfig eth0 key 0123-4567-89<br>          #iwconfig eth0 key [3] 0123-4567-89<br>          #iwconfig eth0 key s:password [2]<br>          #iwconfig eth0 key [2]<br>          #iwconfig eth0 key open<br>          #iwconfig eth0 key off<br>          #iwconfig eth0 key restricted [3] 0123456789<br>          #iwconfig eth0 key 01-23 key 45-67 [4] key [4]<br>  power錛氳緗棤綰跨綉鍗$殑鐢墊簮綆$悊妯″紡銆俻eriod 鈥榲alue鈥?鎸囧畾鍞ら啋鐨勫懆鏈燂紝timeout 鈥榲alue鈥欐寚瀹氳繘鍏ヤ紤鐪犵殑絳夊緟鏃墮棿錛岃繖涓や釜鍙傛暟涔嬪墠鍙互<br>         鍔爉in鍜宮ax淇グ錛岃繖浜涘肩殑鍗曚綅涓虹錛屽彲浠ラ檮鍔爉鍜寀鏉ユ寚瀹氭縐掑拰寰銆俹ff/on鍙傛暟鎸囧畾鏄惁鍏佽鐢墊簮綆$悊錛宎ll/unicast/multicast<br>         鎸囧畾鍏佽鍞ら啋鐨勬暟鎹寘綾誨瀷銆?br>         紺轟緥錛?br>         #iwconfig eth0 power period 2<br>         #iwconfig eth0 power 500m unicast<br>         #iwconfig eth0 power timeout 300u all<br>         #iwconfig eth0 power off<br>         #iwconfig eth0 power min period 2 power max period 4<br>  commit錛氭彁浜ゆ墍鏈夌殑鍙傛暟淇敼緇欐棤綰跨綉鍗¢┍鍔ㄣ傛湁浜涙棤綰跨綉鍗¢┍鍔ㄤ細鍏堢紦瀛樻棤綰跨綉鍗″弬鏁頒慨錛屼嬌鐢ㄨ繖涓懡浠ゆ潵璁╂棤綰跨綉鍗$殑鍙傛暟淇敼鐢熸晥銆備笉榪囦竴<br>          鑸笉闇瑕佷嬌鐢ㄨ鍛戒護錛屽洜涓烘棤綰跨綉鍗¢┍鍔ㄦ渶緇堥兘浼氭槸鍙傛暟鐨勪慨鏀圭敓鏁堬紝涓鑸湪debug鏃朵細鐢ㄥ埌銆?br>2銆佸弬鑰冩枃妗o細<br>iwconfig(8) 宸ュ叿 Man鎵嬪唽銆?</p><img src ="http://m.shnenglu.com/izualzhy/aggbug/175108.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/izualzhy/" target="_blank">izualzhy</a> 2012-05-16 19:55 <a href="http://m.shnenglu.com/izualzhy/archive/2012/05/16/175108.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>RPC: Program not registeredhttp://m.shnenglu.com/izualzhy/archive/2011/11/23/160841.htmlizualzhyizualzhyWed, 23 Nov 2011 15:17:00 GMThttp://m.shnenglu.com/izualzhy/archive/2011/11/23/160841.htmlhttp://m.shnenglu.com/izualzhy/comments/160841.htmlhttp://m.shnenglu.com/izualzhy/archive/2011/11/23/160841.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/160841.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/160841.html鏈夋椂鍦ㄦ満鍣ㄤ笂鎵ц浜唌ount鍛戒護鍚庯紝浼氳繑鍥炩漅PC: Program not registered鈥濊繖鏍風殑閿欒錛岃繖鏄洜涓哄湪璁劇疆浜嗗叡浜枃浠剁殑鏈哄櫒涓婁笂緙哄皯mountd鍜宯fsd 榪欎袱涓畧鎶よ繘紼?daemon)銆俇NIX緋葷粺鍚姩鏃訛紝緋葷粺浼氳嚜鍔ㄦ鏌?etc/dfs/dfstab鏂囦歡錛屽鏋滄枃浠朵腑鏈夎鍏變韓鐨勮祫婧愶紝鍒欏惎鍔ㄨ繖涓や釜瀹堟姢榪涚▼錛屽弽涔嬶紝鍒欎笉鍚姩銆傛墍浠ュ鏋滄垜浠湪/etc/dfs/dfstab涓病鏈夊唴瀹癸紝鍒欑郴緇熶笉鑳藉惎鍔╩ountd鍜宯fsd榪欎袱涓畧鎶よ繘紼嬶紝鐢╯hare鍛戒護鍏變韓鐨勭洰褰曚篃涓嶈兘鐪熸琚埆鐨勭郴緇熷叡浜?

sudo /etc/init.d/nfs-kernel-server restart

灝卞彲浠ヤ簡錛屽鏋滆繕鏄笉琛岋紝鐢╮pc.mountd璇曚竴涓嬨?/p>

izualzhy 2011-11-23 23:17 鍙戣〃璇勮
]]>
UNIX緋葷粺鏂囦歡IOhttp://m.shnenglu.com/izualzhy/archive/2011/11/23/160839.htmlizualzhyizualzhyWed, 23 Nov 2011 15:14:00 GMThttp://m.shnenglu.com/izualzhy/archive/2011/11/23/160839.htmlhttp://m.shnenglu.com/izualzhy/comments/160839.htmlhttp://m.shnenglu.com/izualzhy/archive/2011/11/23/160839.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/160839.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/160839.html鍩烘湰鐭ヨ瘑錛?/b>

瀵逛簬鍐呮牳鑰岃█錛屾墍鏈夋墦寮鐨勬枃浠墮兘閫氳繃鏂囦歡鎻忚堪絎﹀紩鐢ㄣ備緥濡傚浜嶭inux搴旂敤紼嬪簭鍛樻潵璁詫紝闊抽緙栫▼鎺ュ彛瀹為檯涓婂氨鏄竴緇勯煶棰戣澶囨枃浠訛紝閫氳繃瀹冧滑鍙互浠庡0鍗¤鍙栨暟鎹紝鎴栬呭悜澹板崱鍐欏叆鏁版嵁錛屽茍涓旇兘澶熷澹板崱榪涜鎺у埗錛岃緗噰鏍烽鐜囧拰澹伴亾鏁扮洰絳夌瓑銆?

褰撹鎴栧啓涓涓枃浠舵椂錛屼嬌鐢╫pen鎴朿reate榪斿洖鐨勬枃浠舵弿榪扮鏍囪瘑璇ユ枃浠訛紝灝嗗叾浣滀負鍙傛暟浼犻佺粰read鎴杦rite銆?

UNIX緋葷粺shell浣跨敤鏂囦歡鎻忚堪絎?涓庤繘紼嬬殑鏍囧噯杈撳叆鐩稿叧鑱旓紝鏂囦歡鎻忚堪絎?涓庢爣鍑嗚緭鍑虹浉鍏寵仈錛屾枃浠舵弿榪扮2涓庢爣鍑嗗嚭閿欑浉鍏寵仈銆傚湪渚濅粠POSIX鐨勫簲鐢ㄧ▼搴忎腑錛屽夠鏁?錛?錛?搴斿綋鏇挎崲鎴愬父閲?/p>

/* Standard file descriptors. */

#define STDIN_FILENO 0 /* Standard input. */

#define STDOUT_FILENO 1 /* Standard output. */

#define STDERR_FILENO 2 /* Standard error output. */

//defined in /usr/include/unistd.h銆?/span>

1. open, creat - 鐢ㄦ潵 鎵撳紑鍜屽垱寤?涓涓?鏂囦歡鎴栬澶?

鎻忚堪錛?/p>

int open(const char *pathname, int flags);

int open(const char *pathname, int flags, mode_t mode)

int creat(const char *pathname, mode_t mode);

open() 閫氬父 鐢ㄤ簬 灝?璺緞鍚?杞崲涓?涓涓?鏂囦歡鎻忚堪絎?(涓涓?闈炶礋鐨?灝?鏁存暟, 鍦?read , write 絳?I/O鎿嶄綔涓?灝嗕細琚嬌鐢?. 褰?open() 璋冪敤 鎴愬姛, 瀹冧細 榪斿洖 涓涓?鏂扮殑 鏂囦歡鎻忚堪絎?(姘歌繙鍙?鏈敤 鎻忚堪絎︾殑 鏈灝忓?. 榪欎釜璋冪敤 鍒涘緩 涓涓?鏂扮殑 鎵撳紑鏂囦歡, 鍗?鍒嗛厤 涓涓?鏂扮殑 鐙竴鏃?浜岀殑 鏂囦歡鎻忚堪絎? 涓嶄細涓?榪愯涓殑 浠諱綍 鍏朵粬紼嬪簭 鍏變韓 (浣?鍙互 閫氳繃 fork (2) 緋葷粺璋冪敤 瀹炵幇 鍏變韓). 榪欎釜 鏂扮殑 鏂囦歡鎻忚堪絎?鍦ㄥ叾鍚?瀵?鎵撳紑鏂囦歡鎿嶄綔 鐨勫嚱鏁?涓?浣跨敤.(鍙傝?fcntl(2)). 鏂囦歡鐨?璇誨啓 鎸囬拡 琚?緗簬 鏂囦歡澶村弬鏁?flags 鏄氳繃 O_RDONLY, O_WRONLY 鎴?O_RDWR (鎸囨槑 鏂囦歡 鏄互 鍙 , 鍙啓 鎴?璇誨啓 鏂瑰紡 鎵撳紑鐨? 涓?涓嬮潰鐨?闆朵釜

鎴?澶氫釜 鍙夋ā寮?鎸変綅 -or 鎿嶄綔 寰楀埌鐨勶紙妯″紡寰堝錛屽氨涓嶈創浜嗭紝鐩存帴man鐪嬩笅鍗沖彲錛屼互涓婃弿榪頒篃鏄粠man 2 open閲屽鍒剁殑錛夈?

create鍑芥暟絳夋晥浜?open(pathname, O_WRONLY | O_CREAT | O_TRUNC, mode);

涓や釜鍑芥暟鍦?lt;fcntl.h>閮藉彲浠ユ壘鍒板嚱鏁板0鏄庛?

2. close鍑芥暟鐢ㄦ潵鍏抽棴涓涓枃浠?

鎻忚堪錛?/p>

#include <unistd.h>

int close(int fd);

褰撲竴涓繘紼嬬粓姝㈡椂錛屽唴鏍歌嚜鍔ㄥ叧闂畠鎵鏈夋墦寮鐨勬枃浠躲傚緢澶氱▼搴忓埄鐢ㄤ簡榪欎竴鍔熻兘鑰屼笉鏄懼紡鐨勭敤close鍏抽棴鎵撳紑鏂囦歡銆?

3. lseek錛氳緗枃浠跺亸縐婚噺

鎻忚堪錛?

姣忎釜鎵撳紑鐨勬枃浠墮兘鏈変竴涓笌鍏剁浉鍏寵仈鐨勨滃綋鍓嶆枃浠跺亸縐婚噺鈥?current file offset)銆傚畠閫氬父鏄竴涓潪璐熸暣鏁幫紝鐢ㄤ互搴﹂噺浠庢枃浠跺紑濮嬪璁$畻鐨勫瓧鑺傛暟銆傞氬父錛岃銆佸啓鎿嶄綔閮戒粠鏂囦歡鍋忕Щ閲忓寮濮嬶紝鎵撳紑涓涓枃浠舵椂錛岄櫎闈炴寚瀹歄_APPEND錛屽惁鍒欒鍋忕Щ閲忚緗負0.

#include<unistd.h>

off_t lseek(int fileds, off_t offset, int whence);

SEEK_SET

The offset is set to offset bytes.

SEEK_CUR

The offset is set to its current location plus offset bytes.

SEEK_END

The offset is set to the size of the file plus offset bytes.

鍙互鐢ㄤ笅鍒楁柟寮忕‘瀹氭墦寮鏂囦歡鐨勫綋鍓嶅亸縐婚噺錛?

off_t currpos = lseek(fd, 0, SEEK_CUR);

榪欑鏂規硶涔熷彲浠ョ敤鏉ョ‘瀹氭墍娑夊強鐨勬枃浠舵槸鍚﹀彲浠ヨ緗亸縐婚噺銆傚鏋滄枃浠舵弿榪扮寮曠敤鐨勬槸涓涓閬撱丗IFO鎴栫綉緇滃鎺ュ瓧錛屽垯lseek榪斿洖-1錛屽茍灝唀rrno璁劇疆涓篍SPIPE銆?

lseek浠呭皢褰撳墠鐨勬枃浠跺亸縐婚噺璁板綍鍦ㄥ唴鏍鎬腑錛屽畠騫朵笉寮曡搗浠諱綍IO鎿嶄綔銆傜劧鍚庯紝璇ュ亸縐婚噺鐢ㄤ簬涓嬩竴涓鍐欐搷浣溿?

4. read錛氫粠鎵撳紑鏂囦歡涓鏁版嵁

鎻忚堪錛?

ssize_t read(int fd, void *buf, size_t count);

鎴愬姛榪斿洖璇誨埌鐨勫瓧鑺傛暟錛岃嫢宸插埌鏂囦歡緇撳熬鍒欒繑鍥?錛岃嫢鍑洪敊鍒欒繑鍥?1.

5. write錛氬悜鎵撳紑鐨勬枃浠跺啓鍏ユ暟鎹?

ssize_t write(int fd, const void *buf, size_t count);

浠g爜紺轟緥錛?/b>

浠庢爣鍑嗚緭鍏ヨ鍙栵紝鍐欏埌鏍囧噯杈撳嚭錛?/p>

#include <unistd.h> 

#include <stdio.h>

#include <stdlib.h>

const int BUFFSIZE = 4096;

int main()

{

int n;

char buf[BUFFSIZE];

while ((n=read(STDIN_FILENO, buf, BUFFSIZE)) > 0)

if (write(STDOUT_FILENO, buf, n) != n) {

printf("write error\n");

exit(1);

}

if (n < 0) {

printf("read error\n");

exit(1);

}

exit(0);

}



izualzhy 2011-11-23 23:14 鍙戣〃璇勮
]]>
浣跨敤shell鎼滅儲鏂囨湰鐨勫嚑縐嶆柟娉?銆愯漿銆?/title><link>http://m.shnenglu.com/izualzhy/archive/2011/08/21/153991.html</link><dc:creator>izualzhy</dc:creator><author>izualzhy</author><pubDate>Sat, 20 Aug 2011 17:05:00 GMT</pubDate><guid>http://m.shnenglu.com/izualzhy/archive/2011/08/21/153991.html</guid><wfw:comment>http://m.shnenglu.com/izualzhy/comments/153991.html</wfw:comment><comments>http://m.shnenglu.com/izualzhy/archive/2011/08/21/153991.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://m.shnenglu.com/izualzhy/comments/commentRss/153991.html</wfw:commentRss><trackback:ping>http://m.shnenglu.com/izualzhy/services/trackbacks/153991.html</trackback:ping><description><![CDATA[<div id="hvzpftn" class="postTitle"><a id="viewpost1_TitleUrl" class="postTitle2" href="http://m.shnenglu.com/qinqing1984/archive/2011/08/20/153971.html"><font color="#1a8bc8">浣跨敤shell鎼滅儲鏂囨湰鐨勫嚑縐嶆柟娉?/font></a> </div><span>   <strong>絎?縐嶆柟娉曟槸浣跨敤find鍜寈args鍛戒護錛岀ず渚嬪涓?br /></strong></span><span>     find dir | xargs grep str錛宒ir鏄寚鏌愪釜鐩綍<br />     find file | xargs grep str錛宖ile鏄寚鏌愪釜鏂囦歡<br />   娉ㄦ剰錛氳繖縐嶆柟娉曪紝浼氶掑綊鎼滅儲瀛愮洰褰?br /><br />   <strong>絎?縐嶆柟娉曟槸鐩存帴浣跨敤grep鍛戒護錛岀ず渚嬪涓?br /></strong>     grep str dir/*錛宒ir鏄寚鏌愪釜鐩綍錛屼絾涓嶉掑綊鎼滅儲鍏跺瓙鐩綍<br />     grep -r str dir/*錛屼嬌鐢?r閫夐」錛岄掑綊鎼滅儲鍏跺瓙鐩綍<br />     grep str file錛宖ile鏄寚鏌愪釜鏂囦歡<br /><br />   <strong>絎?縐嶆柟娉曟槸緇煎悎浠ヤ笂涓ょ錛屽啓涓涓猻hell鑴氭湰錛屼唬鐮佸涓?/strong>   <br />   #!/bin/bash<br />   #find_str.sh   <br /><br />   if [ $# -lt "2" ]; then<br />      echo "Usage: `basename $0` path name [option]"<br />      exit 1<br />   fi   <br />   #!-r琛ㄧず閫掑綊澶勭悊瀛愮洰褰?-i琛ㄧず蹇界暐澶у皬鍐?br />   path=$1<br />   name=$2  <br />   shift <br />   shift   <br />  <br />   for option in "$@"<br />   do<br />     case $option in<br />     -r) dir_op="-r"<br />     ;;<br />     -i) lu_op="-i"<br />     ;;<br />     *) if [ -n "$option" ]; then<br />           echo "invalid option"<br />           exit 1<br />         fi<br />     ;;<br />    esac<br />   done    <br /><br />   grep_str_of_file()<br />   {<br />        file=$1<br />        str=$2<br />        out=$(grep -n $lu_op "$str" "$file")<br />        if [ -n "$out" -a "$file" != "$0" ]; then<br />           echo "$file: $out"<br />        fi<br />    }    <br /><br />   find_str()<br />   {<br />     if [ -d "$1" ]; then<br />     for file in $1/*<br />         do<br />           if [ "$dir_op" = "-r" -a -d "$file" ]; then<br />               find_str $file $2<br />           elif [ -f "$file" ]; then<br />              grep_str_of_file $file $2<br />           fi<br />        done<br />    elif [ -f "$1" ]; then<br />      grep_str_of_file $1 $2    <br />    fi<br />   }  <br /><br />  find_str $path $name<br />  <br />   榪欐牱涓鏉ワ紝涓嶇$1鍙傛暟鏄洰褰曡繕鏄枃浠訛紝閮借兘澶勭悊錛屼嬌鐢ㄧず渚嬪涓嬶細<br />   ./find_str /usr/include main          涓嶉掑綊鎼滅儲瀛愮洰褰曪紝澶у皬鍐欐晱鎰?br />   ./find_str /usr/include main -i       涓嶉掑綊鎼滅儲瀛愮洰褰曪紝蹇界暐澶у皬鍐?br />   ./find_str /usr/include main -r       閫掑綊鎼滅儲瀛愮洰褰曪紝澶у皬鍐欐晱鎰?br />   ./find_str /usr/include main -r  -i   閫掑綊鎼滅儲瀛愮洰褰曪紝蹇界暐澶у皬鍐?/span> <br />   ./find_str main.cpp main              鍦ㄦ枃浠朵腑鎼滅儲錛屽ぇ灝忓啓鏁忔劅<br />   ./find_str main.cpp main -i           鍦ㄦ枃浠朵腑鎼滅儲錛屽拷鐣ュぇ灝忓啓 <br /><br />   涓婇潰鎵榪扮殑紺轟緥涓紝str涓嶉檺浜庣壒瀹氱殑鏂囨湰錛屽彲浠ユ槸甯︽鍒欒〃杈懼紡鐨勫尮閰嶆ā寮忋?br />   鑰岀3縐嶆柟娉曪紝涔熷彲浠ョ敤sed鏇挎崲grep鏉ユ樉紺烘枃鏈錛屽湪姝ゅ熀紜涓婅兘浣滄洿澶氱殑澶勭悊錛?br />   姣斿鏍煎紡鍖栨樉紺恒佺粺璁″尮閰嶇殑鏂囨湰涓暟銆佹悳绱㈢瓥鐣ョ瓑錛屽湪姝ゅ氨涓嶈絀朵簡 <img src ="http://m.shnenglu.com/izualzhy/aggbug/153991.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://m.shnenglu.com/izualzhy/" target="_blank">izualzhy</a> 2011-08-21 01:05 <a href="http://m.shnenglu.com/izualzhy/archive/2011/08/21/153991.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>vim閲屾彃鍏ュ綋鍓嶆棩鏈熺畫http://m.shnenglu.com/izualzhy/archive/2011/03/22/142511.htmlizualzhyizualzhyTue, 22 Mar 2011 12:29:00 GMThttp://m.shnenglu.com/izualzhy/archive/2011/03/22/142511.htmlhttp://m.shnenglu.com/izualzhy/comments/142511.htmlhttp://m.shnenglu.com/izualzhy/archive/2011/03/22/142511.html#Feedback2http://m.shnenglu.com/izualzhy/comments/commentRss/142511.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/142511.html涓嶈繃date鏄劇ず鐨勬牸寮忎笉鏄緢婊℃剰錛屽氨鎯崇敤date +%Y_%m_%d-%H:%M鐨勬牸寮忔潵鏄劇ず
緇撴灉鐢ㄤ簡寰堝姝ユ墠杈懼埌涓鑸殑鏁堟灉銆傘傘傘?br>1.浜庢槸鍦ㄣ俠ashrc閲屼慨鏀筧lias vdt = ‘date +%Y_%m_%d-%H:%M’錛屼竴鐩存彁紺轟笉瀵廣傜粨鏋滆姳浜嗗緢闀挎椂闂存墠鍙戠幇=涓よ竟涓嶈兘鏈夌┖鏍鹼紝鐪熸槸涓嶄粩緇嗛樋錛屾兂涓嶅埌瑙勫垯瑕佹眰鐨勮繖涔堜弗鏍箋?br>2.涓嶈繃榪欎箞鏀歸氳繃浜嗗悗錛屽彂鐜皏dt杈撳嚭鐨勬椂闂存繪槸涓嶅錛屾病鎯蟲槑鐧戒負浠涔堛?br>浜庢槸鍦?usr/bin涓嬪緩浜嗗悇vdt鏂囦歡錛屽啓鍏ate +%Y_%m_%d-%H:%M
榪欐牱vdt灝辨樉紺哄綋鍓嶆椂闂翠簡銆?br>3.鍦╲im閲岃緭鍏?r! vdt灝變細鎻掑叆褰撳墠鏃墮棿浜?br>4.浣嗚繖涔堣緭鍏ヤ技涔庡お璐瑰姴浜嗭紝浜庢槸鎯沖埌浜唙im鐨勬槧灝勫揩鎹烽敭
淇敼銆倂imrc
map <F3>d :r! vdt
鎸変笅F3 d鍚庯紝灝變細鏈?:r! vdt錛屽啀鎸変笅鍥炶濺灝辨彃鍏ユ椂闂翠簡銆?br>鍐嶇粨鍚堜笅http://m.shnenglu.com/izualzhy/archive/2010/12/29/137694.html榪欑瘒灝卞彲浠ョ渷鐣nter浜唦~

izualzhy 2011-03-22 20:29 鍙戣〃璇勮
]]>
shell瀛︿範絎旇~~http://m.shnenglu.com/izualzhy/archive/2011/03/18/142169.htmlizualzhyizualzhyFri, 18 Mar 2011 13:44:00 GMThttp://m.shnenglu.com/izualzhy/archive/2011/03/18/142169.htmlhttp://m.shnenglu.com/izualzhy/comments/142169.htmlhttp://m.shnenglu.com/izualzhy/archive/2011/03/18/142169.html#Feedback0http://m.shnenglu.com/izualzhy/comments/commentRss/142169.htmlhttp://m.shnenglu.com/izualzhy/services/trackbacks/142169.html鏈夋椂鍊欏湪鏂囦歡澶逛笅鏈変竴鍫哻pp鏂囦歡錛岃櫧鐒舵湁浜涘湴鏂瑰姞浜嗚緭鍑鴻鍙ワ紝浣嗘墦鍗板嚭璇ヨ鍙ユ椂鍗存繪槸蹇樹簡鍏蜂綋鍦ㄥ摢涓枃浠墮噷銆備簬鏄嚜宸卞啓浜嗕釜闈炲父闈炲父綆鍗曠殑sh錛屼笉榪囪繕鏄湁鐢ㄧ殑銆傘傘傜畻鏄棤鑱婄殑鏃墮棿瀛︾偣鍒殑璋冨墏涓嬩簡
鐢ㄦ硶灝辨槸myfind “string”

for i in `ls *.cpp`
do
cat $i 
| grep "$*"  && echo $i
done

 

@desktop:/media/C0FE-F76A/a$ ls
createFile.cpp  doubleherit2.cpp  doubleherit.cpp  myfind.sh  test.os  test.tt  translation濡備綍鍔犱笅鍒掔嚎  鏂版枃浠?br>@desktop:/media/C0FE-F76A/hanvon/a$ myfind void fun_a
  virtual void fun_a() {
  void fun_a() {
doubleherit2.cpp
  void fun_a() {
  void fun_a() {
doubleherit.cpp
@desktop:/media/C0FE-F76A/a$



izualzhy 2011-03-18 21:44 鍙戣〃璇勮
]]>
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              久久成人人人人精品欧| 欧美日韩在线一区二区| 亚洲精品免费看| 欧美精品一区二| 一区二区三区四区五区在线| 欧美一区在线直播| 亚洲黄色视屏| 国产女主播一区二区| 久久久噜噜噜久噜久久 | 久久动漫亚洲| 亚洲国产成人精品女人久久久| 欧美成人中文字幕在线| 亚洲小少妇裸体bbw| 欧美黄色一级视频| 欧美中文在线免费| 一本色道久久综合亚洲91| 国产精品一区视频网站| 欧美国产亚洲精品久久久8v| 午夜久久久久| 亚洲天堂视频在线观看| 亚洲国产成人久久| 欧美亚洲在线观看| 一本一本大道香蕉久在线精品| 国产自产2019最新不卡| 欧美性猛交xxxx乱大交退制版| 久久综合九色综合久99| 亚洲摸下面视频| 亚洲人久久久| 欧美激情一区二区在线| 久久久一区二区三区| 亚洲女同在线| 一本久道综合久久精品| 亚洲精品1区| 在线观看日韩av先锋影音电影院| 国产精品影音先锋| 国产精品揄拍500视频| 欧美午夜一区| 欧美猛交免费看| 欧美freesex8一10精品| 美女在线一区二区| 久久婷婷人人澡人人喊人人爽| 亚洲欧美日韩精品一区二区 | 亚洲欧美一区二区视频| 99视频精品全部免费在线| 亚洲狠狠婷婷| 亚洲激情视频在线观看| 亚洲国产一区二区三区在线播 | 国产精品视频网站| 欧美日韩精品系列| 欧美人在线观看| 欧美日本中文字幕| 欧美国产日产韩国视频| 欧美暴力喷水在线| 欧美日产一区二区三区在线观看| 欧美另类在线播放| 欧美吻胸吃奶大尺度电影| 国产精品久久77777| 国产精品女主播一区二区三区| 国产精品一区在线播放| 国产一区二区三区免费在线观看| 韩日成人在线| 91久久夜色精品国产网站| 99精品视频一区二区三区| 国产精品99久久久久久人| 香蕉乱码成人久久天堂爱免费| 欧美中文字幕视频| 欧美大片免费观看在线观看网站推荐| 欧美成人国产| 99视频一区二区| 亚洲欧美在线一区| 久久久99国产精品免费| 欧美1区2区视频| 欧美性猛交xxxx免费看久久久| 国产无遮挡一区二区三区毛片日本| 精品成人国产| 亚洲美女诱惑| 久久免费精品视频| 亚洲人成毛片在线播放| 亚洲一区二区在线免费观看| 欧美制服第一页| 欧美高清视频一区| 国产精品嫩草影院av蜜臀| 伊大人香蕉综合8在线视| 日韩视频亚洲视频| 久久精品国产成人| 亚洲精品网址在线观看| 久久爱www久久做| 欧美日韩午夜激情| 极品少妇一区二区三区| 亚洲欧美日韩精品久久亚洲区| 米奇777超碰欧美日韩亚洲| 亚洲小说欧美另类社区| 欧美第一黄色网| 尤物九九久久国产精品的分类| 亚洲字幕在线观看| 亚洲黄色尤物视频| 久久久91精品国产| 国产精品一区二区三区成人| 亚洲精品韩国| 久热精品视频在线| 午夜精品久久久久久久99樱桃| 欧美日韩一区二区国产| 91久久久国产精品| 欧美成人午夜免费视在线看片| 亚洲欧美精品在线观看| 亚洲国产一区二区三区青草影视| 久久精品视频在线看| 国产日本欧美一区二区三区在线 | 一本久道综合久久精品| 免费一级欧美片在线观看| 午夜视频在线观看一区二区三区| 欧美网站在线观看| 一区二区三区免费观看| 亚洲欧洲日产国产网站| 欧美二区不卡| 亚洲精选国产| 亚洲经典三级| 欧美精品 国产精品| 91久久精品一区二区别| 欧美黄色一区二区| 欧美xx视频| 一区二区国产日产| 一本一本久久a久久精品牛牛影视| 欧美精品1区| 在线亚洲免费视频| 一区二区三区精密机械公司 | 欧美一区二区三区男人的天堂| 国产精品欧美经典| 久久不射电影网| 久久精品视频一| 亚洲国产婷婷| 亚洲免费av电影| 国产精品嫩草影院一区二区| 久久不射2019中文字幕| 欧美伊人精品成人久久综合97| 在线观看国产精品网站| 欧美高清视频在线观看| 欧美精品在线免费| 亚洲免费婷婷| 欧美一区二区三区视频在线| 黑人极品videos精品欧美裸| 欧美国产欧美亚洲国产日韩mv天天看完整 | 亚洲乱码国产乱码精品精| 亚洲精品在线视频| 国产精品日韩精品| 麻豆9191精品国产| 欧美激情一级片一区二区| 亚洲午夜国产成人av电影男同| 亚洲欧美乱综合| 亚洲国产精品久久91精品| 99精品99| 黄色成人小视频| 日韩香蕉视频| 欧美在线一级视频| 亚洲国产精品第一区二区| a4yy欧美一区二区三区| 国产一区二区三区自拍| 亚洲裸体在线观看| 国内视频一区| 亚洲视频999| 亚洲国产精品成人va在线观看| 亚洲少妇中出一区| 亚洲国产mv| 篠田优中文在线播放第一区| 亚洲伦理自拍| 久久频这里精品99香蕉| 亚洲欧美日韩中文视频| 欧美在线视频a| 亚洲一区不卡| 欧美高清在线视频| 久久久之久亚州精品露出| 欧美日韩免费观看中文| 免费在线一区二区| 国产欧美一二三区| 日韩午夜在线电影| 亚洲精品国产精品国产自| 久久成人免费电影| 午夜在线观看欧美| 欧美三级资源在线| 亚洲国产片色| 亚洲国产精品电影| 久久久久久久999| 欧美在线1区| 国产精品免费一区豆花| 一本久道久久综合婷婷鲸鱼| 亚洲精品美女在线| 久久综合一区| 免费成人av在线| 国产综合精品一区| 欧美一级大片在线观看| 欧美一级久久久| 国产精品丝袜白浆摸在线| 99日韩精品| 亚洲资源av| 欧美色一级片| 亚洲一级黄色| 欧美在线视频在线播放完整版免费观看| 午夜宅男欧美| 欧美专区亚洲专区| 韩国av一区二区|