Python 楂樼骇 3

1.缂栬緫鍣╲im

鐩爣

聽 鑳藉璇村嚭vim涓夌宸ヤ綔妯″紡

聽 鑳藉鍐欏嚭vim澶嶅埗銆佸壀鍒囥�佺矘璐淬�侀�変腑澶氳鍛戒护

聽 聽 聽 yy,dd,p,鏁板瓧+V

聽 鑳藉鍐欏嚭鏌ユ壘銆佹浛鎹㈠懡浠�

聽 聽 聽 :/瑕佹煡鎵剧殑鍐呭锛宯涓嬩竴涓紝N涓婁竴涓�

聽 聽 聽 :%s/瑕佹浛鎹㈢殑鍐呭/鏂板唴瀹�/g

聽 聽 聽 :10-20s/瑕佹浛鎹㈢殑鍐呭/鏂板唴瀹�

<1>vim绠�

浠�

vim鏄竴涓被浼间簬Vi鐨勮憲鍚嶇殑鍔熻兘寮哄ぇ銆侀珮搴﹀彲瀹氬埗鐨勬枃鏈紪杈戝櫒

vim鏈変笁绉嶅熀鏈伐浣滄ā寮忥細

聽 鍛戒护妯″紡

聽 缂栬緫妯″紡

聽 鏈妯″紡銆�

<2>鍛戒护琛屾ā寮�

浠讳綍鏃跺�欙紝涓嶇鐢ㄦ埛澶勪簬浣曠妯″紡锛屽彧瑕佹寜涓�涓婨SC閿紝鍗冲彲浣縑i杩涘叆鍛戒护妯″紡锛涙垜浠湪shell鐜(鎻愮ず绗︿负$)涓嬭緭鍏ュ惎鍔╒i鍛戒护锛岃繘鍏ョ紪杈戝櫒鏃讹紝涔熸槸澶勪簬璇ユā寮忎笅銆傚湪璇ユā寮忎笅锛岀敤鎴峰彲浠ヨ緭鍏ュ悇绉嶅悎娉曠殑Vi鍛戒护锛岀敤浜庣鐞嗚嚜宸辩殑鏂囨。銆傛鏃朵粠閿洏涓婅緭鍏ョ殑浠讳綍瀛楃閮借褰撳仛缂栬緫鍛戒护鏉ヨВ閲婏紝鑻ヨ緭鍏ョ殑瀛楃鏄悎娉曠殑Vi鍛戒护锛屽垯Vi鍦ㄦ帴鍙楃敤鎴峰懡浠や箣鍚庡畬鎴愮浉搴旂殑鍔ㄤ綔銆備絾闇�娉ㄦ剰鐨勬槸锛屾墍杈撳叆鐨勫懡浠ゅ苟涓嶅湪灞忓箷涓婃樉绀哄嚭鏉ャ�傝嫢杈撳叆鐨勫瓧绗︿笉鏄疺i鐨勫悎娉曞懡浠わ紝Vi浼氬搷閾冩姤璀︺��

<3>缂栬緫妯″紡

鍦ㄥ懡浠ゆā寮忎笅杈撳叆鎻掑叆鍛戒护i銆侀檮鍔犲懡浠 銆佹墦寮�鍛戒护o銆佷慨鏀瑰懡浠銆佸彇浠e懡浠鎴栨浛鎹㈠懡浠閮藉彲浠ヨ繘鍏ユ枃鏈緭鍏ユā寮忋�傚湪璇ユā寮忎笅锛岀敤鎴疯緭鍏ョ殑浠讳綍瀛楃閮借Vi褰撳仛鏂囦欢鍐呭淇濆瓨璧锋潵锛屽苟灏嗗叾鏄剧ず鍦ㄥ睆骞曚笂銆傚湪鏂囨湰杈撳叆杩囩▼涓紝鑻ユ兂鍥炲埌鍛戒护妯″紡涓嬶紝鎸夐敭ESC鍗冲彲銆�

<4>鏈妯″紡

鍦ㄥ懡浠ゆā寮忎笅锛岀敤鎴锋寜鈥�:鈥濋敭鍗冲彲杩涘叆鏈妯″紡涓嬶紝姝ゆ椂Vi浼氬湪鏄剧ず绐楀彛鐨勬渶鍚庝竴琛�(閫氬父涔熸槸灞忓箷鐨勬渶鍚庝竴琛�)鏄剧ず涓�涓��:鈥濅綔涓烘湯琛屾ā寮忕殑鎻愮ず绗︼紝绛夊緟鐢ㄦ埛杈撳叆鍛戒护銆傚鏁版枃浠剁鐞嗗懡浠ら兘鏄湪姝ゆā寮忎笅鎵ц鐨�(濡傛妸缂栬緫缂撳啿鍖虹殑鍐呭鍐欏埌鏂囦欢涓瓑)銆傛湯琛屽懡浠ゆ墽琛屽畬鍚庯紝Vi鑷姩鍥炲埌鍛戒护妯″紡銆備緥濡傦細

:sp newfile

鍒欏垎鍑轰竴涓獥鍙g紪杈憂ewfile鏂囦欢銆傚鏋滆浠庡懡浠ゆā寮忚浆鎹㈠埌缂栬緫妯″紡锛屽彲浠ラ敭鍏ュ懡浠鎴栬�卛锛涘鏋滈渶瑕佷粠鏂囨湰妯″紡杩斿洖锛屽垯鎸塃sc閿嵆鍙�傚湪鍛戒护妯″紡涓嬭緭鍏モ��:鈥濆嵆鍙垏鎹㈠埌鏈妯″紡锛岀劧鍚庤緭鍏ュ懡浠ゃ��

<5>vim鍩虹鎿嶄綔

vim鏄粠 vi 鍙戝睍鍑烘潵鐨勪竴涓枃鏈紪杈戝櫒 銆備唬鐮佽ˉ瀹屻�佺紪璇戝強閿欒璺宠浆绛夋柟渚跨紪绋嬬殑鍔熻兘鐗瑰埆涓板瘜

杩涘叆鎻掑叆妯″紡:

i: 鎻掑叆鍏夋爣鍓嶄竴涓瓧绗�

I: 鎻掑叆琛岄

a: 鎻掑叆鍏夋爣鍚庝竴涓瓧绗�

A: 鎻掑叆琛屾湭

o: 鍚戜笅鏂板紑涓�琛�,鎻掑叆琛岄

O: 鍚戜笂鏂板紑涓�琛�,鎻掑叆琛岄

杩涘叆鍛戒护妯″紡:

ESC:浠庢彃鍏ユā寮忔垨鏈妯″紡杩涘叆鍛戒护妯″紡

绉诲姩鍏夋爣:

h: 宸︾Щ

j: 涓嬬Щ

k: 涓婄Щ

l: 鍙崇Щ

M: 鍏夋爣绉诲姩鍒颁腑闂磋

L: 鍏夋爣绉诲姩鍒板睆骞曟渶鍚庝竴琛岃棣�

G: 绉诲姩鍒版寚瀹氳,琛屽彿 -G

w: 鍚戝悗涓�娆$Щ鍔ㄤ竴涓瓧

b: 鍚戝墠涓�娆$Щ鍔ㄤ竴涓瓧

Ctr+d: 鍚戜笅缈诲崐灞�

Ctr+u: 鍚戜笂缈诲崐灞�

Ctr+f: 鍚戜笅缈讳竴灞�

Ctr+b: 鍚戜笂缈讳竴灞�

gg: 鍏夋爣绉诲姩鏂囦欢寮�澶�

G: 鍏夋爣绉诲姩鍒版枃浠舵湯灏�

鍒犻櫎鍛戒护:

x: 鍒犻櫎鍏夋爣鍚庝竴涓瓧绗�,鐩稿綋浜� Del

X: 鍒犻櫎鍏夋爣鍓嶄竴涓瓧绗�,鐩稿綋浜� Backspace

dd: 鍒犻櫎鍏夋爣鎵�鍦ㄨ,n dd 鍒犻櫎鎸囧畾鐨勮鏁般�備篃鏄壀鍒囩殑鎰忔�濓紝閰嶅悎p绮樿创浣跨敤锛屽鏋滄病鏈夌矘璐村氨鏄垹闄ゃ��

D: 鍒犻櫎鍏夋爣鍚庢湰琛屾墍鏈夊唴瀹�,鍖呭惈鍏夋爣鎵�鍦ㄥ瓧绗�

d0: 鍒犻櫎鍏夋爣鍓嶆湰琛屾墍鏈夊唴瀹�,涓嶅寘鍚厜鏍囨墍鍦ㄥ瓧绗�

dw: 鍒犻櫎鍏夋爣寮�濮嬩綅缃殑瀛�,鍖呭惈鍏夋爣鎵�鍦ㄥ瓧绗�

鎾ら攢鍛戒护:

u: 涓�姝ヤ竴姝ユ挙閿�

Ctr-r: 鍙嶆挙閿�

閲嶅鍛戒护:

.: 閲嶅涓婁竴娆℃搷浣滅殑鍛戒护

鏂囨湰琛岀Щ鍔�:

>>: 鏂囨湰琛屽彸绉�

<<: 鏂囨湰琛屽乏绉�

澶嶅埗绮樿创:

yy: 澶嶅埗褰撳墠琛�,n yy 澶嶅埗 n 琛�

p: 鍦ㄥ厜鏍囨墍鍦ㄤ綅缃悜涓嬫柊寮�杈熶竴琛�,绮樿创

鍙妯″紡:

v: 鎸夊瓧绗︾Щ鍔�,閫変腑鏂囨湰

V: 鎸夎绉诲姩,閫変腑鏂囨湰鍙妯″紡鍙互閰嶅悎 d, y, >>, << 瀹炵幇瀵规枃鏈潡鐨勫垹闄�,澶嶅埗,宸﹀彸绉诲姩

鏇挎崲鎿嶄綔:

r: 鏇挎崲褰撳墠瀛楃

R: 鏇挎崲褰撳墠琛屽厜鏍囧悗鐨勫瓧绗�

鏌ユ壘鍛戒护:

:/鏌ユ壘鍐呭

n: 涓嬩竴涓�

N: 涓婁竴涓�

鏇挎崲鍛戒护锛�

鎶奱bc鍏ㄩ儴鏇挎崲鎴�123

鏈妯″紡涓嬶紝灏嗗綋鍓嶆枃浠朵腑鐨勬墍鏈塧bc鏇挎崲鎴�123

:%s/abc/123/g

鏈妯″紡涓嬶紝灏嗙涓�琛岃嚦绗�10琛屼箣闂寸殑abc鏇挎崲鎴�123

:1, 10s/abc/123/g

鍥犱负鏄寖鍥村唴鏇挎崲锛屾渶鍚庡彲浠ヤ笉鐢ㄥ姞g

灏忕粨:

聽 %琛ㄧず鏁翠釜鏂囦欢, 1, 10琛ㄧず1鍒�10琛岃寖鍥村唴

聽 s琛ㄧず鏇挎崲

聽 g琛ㄧず鍏ㄥ眬

<6>璁剧疆vim鏄剧ず琛屽彿

聽 1 >涓存椂鏄剧ず琛屽彿

聽 聽 聽 濡傛灉鍙槸涓存椂鏄剧ずvim鐨勮鍙凤紝鍙』鎸塃SC閿��鍑虹紪杈戝唴瀹规ā寮忥紝杈撳叆鈥滐細set number鈥濆悗鎸夊洖杞﹂敭锛屽氨鍙互鏄剧ず琛屽彿浜嗐�傝鍙锋樉绀哄彧鏄殏鏃剁殑锛岄��鍑簐im鍚庡啀娆℃墦寮�vim灏变笉鏄剧ず琛屽彿浜嗐��

聽 2>姘镐箙鏄剧ず琛屽彿

聽 聽 聽 濡傛灉鎯宠vim姘镐箙鏄剧ず琛屽彿锛屽垯闇�瑕佷慨鏀箆im閰嶇疆鏂囦欢vimrc銆傚鏋滄病鏈夋鏂囦欢鍙互鍒涘缓涓�涓�傚湪鍚姩vim鏃讹紝褰撳墠鐢ㄦ埛鏍圭洰褰曚笅鐨剉imrc鏂囦欢浼氳鑷姩璇诲彇锛屽洜姝や竴鑸湪褰撳墠鐢ㄦ埛鐨勬牴鐩綍涓嬪垱寤簐imrc鏂囦欢锛屽嵆浣跨敤涓嬮潰鐨勫懡浠わ細

聽 聽 聽 聽 聽 鈻� vim ~/.vimrc

聽 聽 聽 聽 聽 鈻� 鍦ㄦ墦寮�鐨剉imrc鏂囦欢涓渶鍚庝竴琛岃緭鍏ワ細set number 锛岀劧鍚庝繚瀛橀��鍑恒�傚啀娆$敤vim鎵撳紑鏂囦欢鏃讹紝灏变細鏄剧ず琛屽彿浜嗐��

2.Linux 鍛戒护鎬荤粨

聽 1. 鍚姩缁堢锛� ctr+alt+t

聽 2. 缁堢瀛椾綋鏀惧ぇ锛� ctr+shift+'+',缁堢瀛椾綋缂╁皬: ctr+'-'

聽 3. ls: 鏌ョ湅褰撳墠鐩綍涓嬬殑鏂囦欢淇℃伅

聽 4. pwd: 鏌ョ湅鐩綍鎵�鍦ㄧ殑璺緞

聽 5. touch: 鍒涘缓鏂囦欢

聽 6. mkdir: 鍒涘缓鏂囦欢澶�

聽 7. rmdir: 鍒犻櫎鏂囦欢澶癸紝鎻愮ず锛氬彧鑳芥槸绌烘枃浠跺す

聽 8. rm: 榛樿鍒犻櫎鐨勬槸鏂囦欢锛屽鏋滃垹闄ゆ枃浠跺す闇�瑕佸姞涓�-r閫夐」锛�-r:浠ラ�掑綊鐨勬柟寮忔妸鏂囦欢澶逛笅鐨勬墍鏈夋枃浠朵俊鎭垹闄ゆ帀

聽 9. cd锛氬垏鎹㈢洰褰�

9.1 cd 鐩綍鍚� 锛� 鍒囨崲鍒版寚瀹氱洰褰�

9.2 cd .: 鍒囨崲鍒板綋鍓嶇洰褰�

9.3 cd ..: 鍒囨崲鍒颁笂涓�绾х洰褰�

9.4 cd ~: 鍒囨崲鍒板綋鍓嶇敤鎴风殑鐩綍

9.5 cd: 绛変环涓巆d ~ 鍒囨崲鍒板綋鍓嶇敤鎴风殑鐩綍

9.6 cd -: 鍒囨崲鍒颁笂涓�娆$洰褰�

聽 10. 缁濆璺緞锛� 浠庢牴鐩綍绠楄捣鐨勮矾寰勫彨鍋氱粷瀵硅矾寰勶紝姣斿: /home/python

聽 11. 鐩稿璺緞锛� 浠庡綋鍓嶇洰褰曠畻璧风殑璺緞鍙仛鐩稿璺緞, 姣斿: ./AAA ../BBB

聽 12. 璺緞鐨勪娇鐢ㄦ�荤粨: 濡傛灉绂诲綋鍓嶇洰褰曡繎浣跨敤鐩稿璺緞锛屽鏋滅鏍圭洰褰曡繎浣跨敤缁濆璺緞锛屽鏋滆繘鍏ョ殑鏄腑闂寸洰褰曞缓璁娇鐢ㄧ粷瀵硅矾寰�

聽 13. 鑷姩琛ュ叏: 涓ゆtab閿�

聽 14. cp: 鎷疯礉

14.1 cp 鏂囦欢鍚� 璺緞: 鎶婃枃浠舵嫹璐濆埌鎸囧畾璺緞

14.2 cp 璺緞/鏂囦欢鍚� 璺緞: 鎶婃寚瀹氳矾寰勭殑鏂囦欢鎷疯礉鍒版寚瀹氳矾寰�

14.3 cp 鏂囦欢鍚� 璺緞/鏂扮殑鏂囦欢鍚� 锛� 鍏堟妸鏂囦欢鎷疯礉鍒版寚瀹氱洰褰曠劧鍚庡啀閲嶅懡鍚�

14.4 cp 鏂囦欢澶� 璺緞 -r: 鎷疯礉鏂囦欢澶� -r:浠ラ�掑綊鐨勬柟寮忔妸鏂囦欢澶逛笅鐨勬墍鏈夋枃浠舵嫹璐濊繃鍘�

聽 15. mv: 绉诲姩(鍓垏)

15.1 mv 鏂囦欢鍚� 璺緞: 鎶婃枃浠剁Щ鍔ㄥ埌鎸囧畾璺緞

15.2 mv 璺緞/鏂囦欢鍚� 璺緞: 鎶婃寚瀹氳矾寰勭殑鏂囦欢绉诲姩鍒版寚瀹氳矾寰�

15.3 mv 鏂囦欢鍚� 鏂扮殑鏂囦欢鍚嶏細 閲嶅懡鍚�

15.4 mv 鏂囦欢澶� 璺緞: 鎶婃枃浠跺す绉诲姩鍒版寚瀹氱洰褰曪紝涓嶉渶瑕佸姞涓�-r

聽 16. tree: 浠ョ洰褰曟爲鏂瑰紡鏄剧ず褰撳墠鏂囦欢澶逛俊鎭�

16.1 tree / : 浠ョ洰褰曟爲鏂瑰紡鏄剧ず鎸囧畾璺緞鐨勬枃浠朵俊鎭�

聽 17. 鍛戒护鐨勬牸寮�

17.1 鍛戒护鍚� 閫夐」 鍙傛暟锛� 鎻愮ず锛氭湁浜涘懡浠ら�夐」鍙互鏀惧埌鍙傛暟鐨勫悗闈紝浣嗘槸锛歴cp 閫夐」蹇呴』瑕佹斁鍒板懡浠ゅ悕鐨勫悗闈�

聽 18. ls 閫夐」

18.1 -l: 浠ュ垪琛ㄧ殑鏂瑰紡鍙栨樉绀�

18.2 -a: 鏄剧ず闅愯棌鏂囦欢

18.3 -h: 鏄剧ず鏂囦欢澶у皬鐨勫崟浣�

聽 19. mkdir 閫夐」

19.1 -p: 鎶婁緷璧栨枃浠跺す鎻愬彇鍒涘缓濂斤紝姣斿锛� mkdir 123/456/789 -p

聽 20. rm閫夐」

20.1 -r: 浠ラ�掑綊鐨勬柟寮忓垹闄ゆ枃浠跺す閲岄潰鐨勬墍鏈夊唴瀹�

20.2 -i: 鏄剧ず鍒犻櫎鐨勬椂鍊欐彁閱掍俊鎭�

20.3 -v: 鏄剧ず鍒犻櫎鍚庣殑鎻忚堪淇℃伅

20.4 -d: 鍒犻櫎绌虹洰褰�

20.5 -f: 濡傛灉鏂囦欢鎴栬�呯洰褰曞瓨鍦ㄥ垯鍒犻櫎锛屽惁鍒欏氨涓嶅垹闄や篃涓嶄細鎶ラ敊

聽 21. cp閫夐」

21.1 -i:鎷疯礉鏂囦欢鐨勬椂鍊欏鏋滄寚瀹氱洰褰曟湁璇ユ枃浠堕渶瑕佹樉绀烘彁閱掍俊鎭�

21.2 -v:鏄剧ず鎷疯礉鏂囦欢鐨勮矾寰勬弿杩�

21.3 -r:浠ラ�掑綊鐨勬柟寮忔嫹璐濇枃浠跺す閲岄潰鐨勬墍鏈夊唴瀹�

聽 22. mv閫夐」

22.1 -i:绉诲姩鏂囦欢鏄剧ず鎻愰啋淇℃伅

22.2 -v:鏄剧ず绉诲姩鍚庣殑璺緞鎻忚堪

聽 23. 閲嶅畾鍚�(>,>>): 鍦ㄧ粓绔樉绀虹殑鍐呭淇℃伅閲嶅啓瑙勫畾鏂瑰悜锛屼繚瀛樺埌鎸囧畾鏂囦欢閲岄潰锛屼互鍚庢煡鐪嬫暟鎹槸鏂囦欢鏌ョ湅灏卞彲浠ヤ簡

23.1 > :濡傛灉鏂囦欢涓嶅瓨鍦紝閭d箞鍏堝垱寤猴紝鍚﹀垯浼氬厛鎶婂師鏈夋枃浠剁殑鏁版嵁娓呯┖鐒跺悗鍐嶅啓鍏�

23.2 >> : 鍦ㄥ師鏈夋暟鎹殑鍩虹涓婅繘琛岃拷鍔�

23.3 鎬荤粨: ls锛� cat, tree閮藉彲浠ヤ娇鐢ㄩ噸瀹氬悜

聽 24. gedit锛氭枃鏈紪杈戝伐鍏凤紝鍙鍙紪杈�

聽 25. cat: 鍐呭鍦ㄧ粓绔樉绀猴紝涓嶈兘杩涜缂栬緫锛屾彁绀猴細閫傚悎鏌ョ湅灏忓瀷鏂囦欢锛屽ぇ鍨嬫枃浠朵娇鐢ㄥ垎灞忔柟寮忔樉绀�(more)

聽 26. more锛氬垎灞忔樉绀�

26.1 f锛氳〃绀轰笅涓�椤�

26.2 绌烘牸:琛ㄧず涓嬩竴椤�

26.3 鍥炶溅: 琛ㄧず涓嬩竴琛�

26.4 b:琛ㄧず涓婁竴椤�

26.5 q:閫�鍑�

聽 27. 鏂囦欢鍚堝苟 cat 1.txt 2.txt > 3.txt

聽 28. 绠¢亾: 鍙互鐞嗚В鎴愭槸涓�涓鍣紝瀛樻斁鍦ㄧ粓绔樉绀虹殑鍐呭

28.1 鎬荤粨: ls /bin | more , cat锛� tree, ls閮芥槸鍙互缁撳悎绠¢亾浣跨敤瀹屾垚鍒嗗睆鏄剧ず鐨�

聽 29. 閾炬帴

29.1 杞繛鎺�:鍙互鐞嗚В鎴愬揩鎹锋柟寮忥紝鎶婂師鏂囦欢鍒犻櫎鎺夐�氳繃杞摼鎺ユ棤娉曟墦鏂囦欢鐨勬暟鎹紝 鎻愮ず锛氬垱寤鸿蒋杩炴帴涓嶄細瀵圭‖閾炬帴鏁板姞1

29.2 纭繛鎺�: 鍚屼竴涓暟鎹湁澶氫釜鏂囦欢鍚嶅湪浣跨敤锛屾煇涓枃浠跺垹闄ゆ帀锛岃繕鍙互閫氳繃鍏跺畠鏂囦欢鍚嶈闂繖涓枃浠剁殑鏁版嵁锛� 鎻愮ず锛氬垱寤虹‖閾炬帴纭摼鎺ユ暟浼氬姞1

29.3 鎻愮ず锛氬鏋滃垱寤虹殑杞摼鎺ユ病鏈夊拰鍘熸枃浠跺湪鍚屼竴涓洰褰曢噷闈紝閭d箞闇�瑕佷娇鐢ㄧ粷瀵硅矾寰勫垱寤鸿蒋杩炴帴

聽 30. grep: 鏍规嵁鎸囧畾鐨勫唴瀹瑰湪鏂囦欢涓繘琛屾煡鎵�

30.1 grep "a" 8.txt : 鏍规嵁鎸囧畾鍐呭鍦ㄦ枃浠朵腑杩涜鏌ユ壘

30.2 -n:琛屽彿, -i:蹇界暐澶у皬鍐� -v: 鍙栧弽

30.3 鎬荤粨: ^,$ [], . 鏀寔鐨勬鍒欒〃杈惧紡

聽 31. find:鍦ㄦ寚瀹氱洰褰曟煡鎵惧搴旂殑鏂囦欢

31.1 find . -name ".txt"锛� 鍦ㄥ綋鍓嶇洰褰曟煡鎵惧悗缂�鏄�.txt鐨勬枃浠讹紝 -name鏍规嵁鏂囦欢鍚嶆煡鎵�

31.2 find . -perm 666: 鍦ㄥ綋鍓嶇洰褰曟煡鎵炬枃浠舵潈闄愭槸鍙鍙啓鐨勶紝 -perm鏍规嵁鏉冮檺鏌ユ壘

31.3 鎬荤粨: ? [] 鏀寔鐨勯�氶厤绗�

聽 32. ls:鏀寔鐨勯�氶厤绗�: *,? , [], []:琛ㄧず鍖归厤浠绘剰鍒椾妇涓殑涓�涓瓧绗�

聽 33. 閫氶厤绗�: ? * []锛岃捣鍒颁簡妯$硦鏌ヨ鐨勪綔鐢�

聽 34. tar: 鎵撳寘銆佸帇缂┿�佽В鍖呫�佽В鍘嬬缉

34.1 鎵撳寘 tar -cvf test.tar *.txt, -c: 琛ㄧず瑕佹墦鍖咃紝 -v锛氭樉绀烘枃浠舵墦鍒板寘閲岄潰 -f:琛ㄧず鏂囨。鍚嶇О锛屾彁绀�-f蹇呴』鏀惧埌鎵�鏈夐�夐」鐨勫悗闈�

34.2 瑙e寘 tar -xvf test.tar , -x锛氳〃绀鸿В鍖�

34.3 鎵撳寘鍙婂帇缂╁悎骞剁殑鍛戒护:tar -zcvf test.tar.gz *.txt

34.4 瑙e帇缂╁強瑙e寘鍚堝苟鐨勫懡浠�:tar -zxvf test.tar.gz ->寰楀埌瀵瑰簲鐨勬枃浠�

34.5 鎸囧畾瑙e帇缂╃殑璺緞 tar -zxvf test.tar.gz -C ../BBB, -C:鎸囧畾瑙e帇缂╁悗鐨勮矾寰�

34.6 tar -jcvf test.bz2 *.txt -> test.bz2

34.7 tar -jxvf test.bz2 -> 寰楀埌瀵瑰簲鐨勬枃浠�

34.8 -C: 鎸囧畾瑙e帇缂╃殑璺緞锛� tar -jxvf test.bz2 -C ../BBB

聽 35. zip鐨勫帇缂╁強瑙e帇缂�

35.1 zip test *.txt -> test.zip ,鎻愮ず锛氬帇缂╁寘鐨勫悗缂�涓嶉渶瑕佹寚瀹氶粯璁ゆ槸.zip

35.2 unzip test.zip -> 寰楀埌鏄帇缂╁寘閲岄潰鐨勬枃浠�

35.3 unzip -d ./123 test.zip -> 瑙e帇鍒版寚瀹氳矾寰� 锛� -d:琛ㄧず瑙e帇鐨勮矾寰�

聽 36. chmod:淇敼鏉冮檺

36.1 -r(4):鍙 -w(2):鍙啓 -x(1):鍙墽琛�

36.2 u:褰撳墠鐢ㄦ埛 g: 鍚岀粍鐢ㄦ埛 o: 鍏跺畠鐢ㄦ埛 a:鎵�鏈夌敤鎴�

36.3 +:娣诲姞鏉冮檺, -:鎾ら攢鏉冮檺 锛� = : 璧嬪�兼潈闄�

36.4 chmod 000 1.txt : 鍏ㄩ儴娌℃湁鏉冮檺

36.5 chmod a=- 1.txt chmod a= 1.txt : 鍏ㄩ儴娌℃湁鏉冮檺

36.6 chmod 777 1.txt chmod a=rwx 1.txt : 閮芥潈闄愶紝鍙鍙鍙墽琛�

36.7 chmod 664 1.txt chmod u=rw,g=rw,o=r 1.txt 璁剧疆涓嶅悓鐢ㄦ埛涓嶅悓鏉冮檺

聽 37. cp閫夐」

37.1-a: 淇濈暀鏂囦欢鍘熸湁鏉冮檺锛�-a鍖呭惈-r,涔熷氨鏄娇鐢�-a涔熷彲浠ユ嫹璐濇枃浠跺す

聽 38. which : 鏌ョ湅鍛戒护鐨勮矾寰�

聽 39. sudo -s锛� 鍒囨崲鍒扮鐞嗗憳璐﹀彿

聽 40. passwd:淇敼瀵嗙爜

聽 41. who 锛氬綋鍓嶉偅浜涚敤鎴风櫥闄�

聽 42. whoami:褰撳墠鐢佃剳鐧婚檰鐨勭敤鎴锋槸璋�

聽 43. exit锛氶��鍑�

聽 44. ssh: 杩滅▼鐧婚檰 44.1 ssh : 鍙互杩滅▼鐧婚檰鏈嶅姟绔彲浠ラ�氳繃vim淇敼鏂囦欢

聽 45. scp: 杩滅▼鎷疯礉

45.1 scp 1.txt [email protected]:/home/python/Desktop ,鎶婃湰鍦版枃浠舵嫹璐濆埌鏈嶅姟鍣ㄧ

45.2 scp -r test [email protected]:/home/python/Desktop,鎶婃湰鍦版枃浠跺す鎷疯礉鍒版湇鍔″櫒绔�

45.3 scp [email protected]:/home/python/Desktop/1.txt . 锛� 鎶婃湇鍔$鐨勬枃浠舵嫹璐濈殑鏈湴

45.4 scp -r [email protected]:/home/python/Desktop/test . 锛� 鎶婃湇鍔$鐨勬枃浠跺す鎷疯礉鐨勬湰鍦�

聽 46. apt list 鏀寔鐨勫畨瑁呭寘

聽 47. vim鐨勪娇鐢�

47.1 鍛戒护妯″紡锛� 缂栬緫妯″紡锛� 鏈妯″紡锛� 鍛戒护妯″紡鏄紪杈戞ā寮忓拰鏈妯″紡鐨勪腑杞珯

聽 48. vim甯哥敤鍛戒护

鍛戒护妯″紡涓嬶細

聽 i锛氭彃鍏ユā寮忓厜鏍囦箣鍓嶆彃鍏�

聽 I锛氳棣栨彃鍏�

聽 o锛氬厜鏍囦笅涓�琛屾彃鍏�

聽 O锛氬厜鏍囦笂涓�琛屾彃鍏�

聽 a锛氬厜鏍囦箣鍚庢彃鍏�

聽 A锛氳灏炬彃鍏�

聽 j锛氬悜涓嬬Щ鍔�

聽 k锛氬悜涓婄Щ鍔�

聽 l锛氬悜鍙崇Щ鍔�

聽 h锛氬悜宸︾Щ鍔�

聽 gg锛氳烦鑷抽琛�

聽 G锛氳烦鑷虫湯琛岋紝鏁板瓧+G锛氳烦鑷虫寚瀹氳

聽 L锛氳烦鑷虫湯琛�

聽 yy锛氬鍒讹紝鏁板瓧+yy锛氫粠褰撳墠琛屽鍒舵寚瀹氳鏁�

聽 dd锛氬壀鍒囷紝鏁板瓧+dd锛氫粠褰撳墠琛屽壀鍒囨寚瀹氳鏁� D鍒犻櫎鍏夋爣鍚庢湰琛屾墍鏈夊唴瀹癸紝鍖呭惈鍏夋爣

聽 p锛氱矘璐�

聽 u锛氭挙閿�

聽 M锛氳烦杞嚦灞忓箷涓棿涓�琛�

聽 w锛氬悜鍚庣Щ鍔ㄤ竴涓崟璇�

聽 b锛氬悜鍓嶇Щ鍔ㄤ竴涓崟璇�

聽 Ctrl+d锛氬悜涓嬬炕鍗婂睆

聽 Ctrl+u锛氬悜涓婄炕鍗婂睆

聽 Ctrl+f锛氬悜涓嬬炕涓�灞�

聽 Ctrl+b锛氬悜涓婄炕涓�灞�

聽 Ctrl+r锛氬弽鎾ら攢

聽 r锛氭浛鎹㈠綋鍓嶅瓧绗�

聽 R锛氭浛鎹㈠厜鏍囧悗鐨勫瓧绗�

聽 x锛氬垹闄ゅ厜鏍囧悗涓�涓瓧绗�

聽 X锛氬垹闄ゅ厜鏍囧墠涓�涓瓧绗�

聽 d0锛氬垹闄ゅ厜鏍囧墠鏈鎵�鏈夊唴瀹癸紝涓嶅寘鍚綋鍓嶅厜鏍囨墍鍦ㄤ綅缃�

聽 dw锛氬垹闄ゅ厜鏍囧紑濮嬩綅缃殑鍗曡瘝锛屽寘鍚綋鍓嶅瓧绗�

聽 >>锛氬悜鍙崇缉杩� 鏁板瓧+>>锛氬綋鍓嶈寮�濮嬬殑鎸囧畾琛屾暟鍚戝彸缂╄繘

聽 <<锛氬悜宸︾缉杩� 鏁板瓧+<<锛氬綋鍓嶈寮�濮嬬殑鎸囧畾琛屾暟鍚戝乏缂╄繘

聽 v锛氫粠褰撳墠瀛楃閫夋嫨 閫夋嫨鍚庯細y锛氬鍒� d锛氬壀鍒�

聽 V锛氫粠褰撳墠琛岄�夋嫨聽 閫夋嫨鍚庯細y锛氬鍒� d锛氬壀鍒�

聽 Shift+;锛氳繘鍏ユ湯琛屾ā寮�

鏈妯″紡涓�

聽 聽 q锛氶��鍑�

聽 聽 q!锛氬己鍒堕��鍑猴紝涓嶄繚瀛�

聽 聽 w锛氫繚瀛�

聽 聽 wq锛氫繚瀛樺苟閫�鍑�

聽 聽 x锛氫繚瀛樺苟閫�鍑�

聽 聽 /锛氬瓧绗︿覆鏌ユ壘聽 n锛氫笅涓�涓� N锛氫笂涓�涓�

聽 聽 %s/old/new/g锛氭妸鏂囨湰涓殑old鍏ㄩ儴鏇挎崲涓簄ew

聽 聽 2,10s/old/new/g锛氭妸鏂囨湰涓�2鍒�10琛屼腑鐨刼ld鏇挎崲涓簄ew

聽 聽 !锛氱洿鎺ュ湪vi涓墽琛宻hell鍛戒护

3.涔岀彮鍥炬墽琛宲ython鏂囦欢

./1.py 鐩存帴鎵ц.py鏂囦欢锛岄渶瑕佸厛鍦�.py鏂囦欢鐨勯琛岃緭鍏� #!/usr/bin/python3

#!鍚庨潰璺焢ython3鐨勮矾寰勶紝python3鎵�鍦ㄧ殑璺緞鍙互鐢╳hich python3鏌ヨ

4.缃戠粶

<1>缃戠粶姒傝堪

聽 聽 浠�涔堟槸缃戠粶

缃戠粶灏辨槸鎸囧皢鍏锋湁鐙珛鍔熻兘鐨勫鍙拌绠楁満閫氳繃閫氫俊绾胯矾杩炴帴璧锋潵锛屽湪缃戠粶绠$悊杞欢鍙婄綉缁滈�氫俊鍗忚涓嬶紝瀹炵幇璧勬簮鍏变韩鍜屼俊鎭紶閫掔殑铏氭嫙骞冲彴銆�

閫氫織鐞嗚В缃戠粶灏辨槸鎶婂弻鏂规垨鑰呭鏂硅澶囪繛鎺ヨ捣鏉ョ殑涓�涓伐鍏凤紝鐒跺悗鍙互杩涜鏁版嵁浼犻��

聽 瀛︿範缃戠粶鐨勭洰鐨�

鑳藉缂栧啓鍩轰簬缃戠粶閫氫俊鐨勮蒋浠讹紝閫氳繃缃戠粶鎶婃暟鎹粠涓�鏂逛紶閫掑埌鍙﹀涓�鏂癸紝瀹屾垚鏁版嵁鐨勫叡浜�

閫氫織鏉ヨ灏辨槸鑳藉杩涜缃戠粶缂栫▼锛屽紑鍙戠綉缁滈�氫俊绋嬪簭鎴栬�呰蒋浠躲��

<2>ip鍦板潃

聽 ip鍦板潃鐨勬蹇�

ip鍦板潃鏄爣璇嗙綉缁滀腑鍞竴鐨勪竴鍙拌澶囩殑

聽 ip鍦板潃鐨勪綔鐢�

閫氳繃ip鍦板潃鎵惧埌缃戠粶涓敮涓�涓�鍙拌澶囷紝鐒跺悗鍙互缁欒澶囧彂閫佹暟鎹�

聽 绉佹湁ip

绉佹湁ip灏辨槸灞�鍩熺綉涓娇鐢ㄧ殑ip鍦板潃锛屽浗闄呰瀹氭湁涓�閮ㄥ垎ip鍦板潃鏄湪灞�鍩熺綉涓娇鐢ㄧ殑

绉佹湁ip鐨勮寖鍥达紝涔熷氨鏄笉鍦ㄥ叕缃戜腑浣跨敤鐨刬p鍦板潃鑼冨洿:

聽 10.0.0.0锝�10.255.255.255

聽 172.16.0.0锝�172.31.255.255

聽 192.168.0.0锝�192.168.255.255

聽 鏈満ip鍦板潃

127.0.0.1琛ㄧず鏈満ip鍦板潃; 鏈満鍩熷悕鏄痩ocalhost; 閫氳繃鍩熷悕鍙互瑙f瀽涓�涓猧p鍦板潃锛屽煙鍚嶆柟渚垮ぇ瀹惰蹇嗘煇鍙扮數鑴戠殑涓绘満鍦板潃

<3>Linux鍛戒护(ping, ifconfig)

聽 鏌ョ湅鎴栭厤缃綉鍗′俊鎭細ifconfig

聽 mac鍜孡inux 鐢� ifconfig

聽 Windows 鐢� ipconfig

聽 娴嬭瘯杩滅▼涓绘満杩為�氭�э細ping

聽 聽 聽 閫氬父鐢╬ing鏉ユ娴嬬綉缁滄槸鍚︽甯�

灏忕粨

聽 1.ping 127.0.0.1 妫�鏌ユ湰鍦扮綉鍗℃槸鍚︽甯�

聽 2.ping www.baidu.com 妫�鏌ユ槸鍚﹁兘涓婂叕缃�

聽 3.ping 褰撳墠灞�鍩熺綉鐨刬p鍦板潃 妫�鏌ユ槸鍚﹀湪鍚屼竴涓眬鍩熺綉鍐�

<4>绔彛

聽 浠�涔堟槸绔彛

绔彛鏄紶杈撴暟鎹殑閫氶亾锛屽ソ姣旀暀瀹ょ殑闂紝鏄暟鎹紶杈撳繀缁忎箣璺��

濡傛灉涓�涓▼搴忛渶瑕佹敹鍙戠綉缁滄暟鎹紝閭d箞灏遍渶瑕佹湁杩欐牱鐨勭鍙�

聽 绔彛鍙�

闂:涓�涓數鑴戜笂杩愯鐫�澶氫釜搴旂敤绋嬪簭锛岄兘闇�瑕佹敹鍙戞暟鎹紝濡備綍鍖哄垎缁欓偅涓簲鐢ㄧ▼搴忓憿?

鏃㈢劧鏈夎繖涔堝绔彛锛屾搷浣滅郴缁熶负浜嗙粺涓�绠$悊锛屾墍浠ヨ繘琛屼簡缂栧彿锛岃繖灏辨槸绔彛鍙�

绔彛鍙�:浣跨敤鍞竴涓�涓紪鍙锋潵鏍囪瘑绔彛, 鍏跺疄灏辨槸鏍囪瘑绔彛鐨勪竴涓紪鍙枫��

鍦╨inux绯荤粺涓紝绔彛鍙锋湁65536锛�2鐨�16娆℃柟锛変釜

聽 绔彛鍙峰垝鍒�

绔彛鍙蜂笉鏄殢鎰忎娇鐢ㄧ殑锛岃�屾槸鎸夌収涓�瀹氱殑瑙勫畾杩涜鍒嗛厤銆�

绔彛鍙峰垎涓虹煡鍚嶇鍙e彿鍜屽姩鎬佺鍙e彿

聽 鐭ュ悕绔彛鍙凤紙Well Known Ports锛�

鐭ュ悕绔彛鍙�: 绯荤粺绋嬪簭浣跨敤鐨勭鍙e彿

鐭ュ悕绔彛鍙锋槸浼楁墍鍛ㄧ煡鐨勭鍙e彿锛岃寖鍥翠粠0鍒�1023

80绔彛鍒嗛厤缁橦TTP鏈嶅姟

21绔彛鍒嗛厤缁橣TP鏈嶅姟

涓�鑸儏鍐典笅锛屽鏋滀竴涓▼搴忛渶瑕佷娇鐢ㄧ煡鍚嶇鍙g殑闇�瑕佹湁root鏉冮檺

聽 鍔ㄦ�佺鍙e彿锛圖ynamic Ports锛�

鍔ㄦ�佺鍙e彿: 绋嬪簭鍛樺紑鍙戝簲鐢ㄧ▼搴忎娇鐢ㄧ鍙e彿, 涔嬫墍浠ョО涓哄姩鎬佺鍙o紝鏄洜涓哄畠涓�鑸笉鍥哄畾鍒嗛厤鏌愮鏈嶅姟锛岃�屾槸鍔ㄦ�佸垎閰嶃��

鍔ㄦ�佺鍙g殑鑼冨洿鏄粠1024鍒�65535

聽 娉ㄥ唽绔彛锛氱鍙�1024鍒�49151

聽 鍔ㄦ�佺鍙o細浠�49152鍒�65535

褰撹繖涓▼搴忓叧闂椂锛屽悓鏃朵篃灏遍噴鏀句簡鎵�鍗犵敤鐨勭鍙e彿

聽 鎬庢牱鏌ョ湅绔彛鍙� 锛�

聽 聽 聽 鐢� netstat 锛峚n 鏌ョ湅绋嬪簭鎵�浣跨敤鐨勭鍙e彿

聽 聽 聽 lsof -i [tcp/udp]:2425 鏌ョ湅绔彛鍙峰搴旂殑搴旂敤绋嬪簭

鎻愮ず: 濡傛灉绔彛鍙锋壘涓嶅埌搴旂敤绋嬪簭锛屼娇鐢ㄧ鐞嗗憳鏉冮檺鍔犱笂sudo

鍙互鍏ㄩ儴鐢╯udo lsof -i:绔彛鍙�

鎬荤粨锛�

缃戠粶閫氫俊鐨勬祦绋嬫槸鍏堥�氳繃ip鍦板潃鎵惧埌缃戠粶涓殑璁惧锛屽啀閫氳繃绔彛鍙锋潵鎵惧埌瀵瑰簲鐨勭鍙o紝鐒跺悗閫氳繃绔彛鎶婃暟鎹紶杈撶粰瀵瑰簲鐨勫簲鐢ㄧ▼搴�

5.缃戠粶浼犺緭鏂瑰紡-UDP

<1>UDP姒傚康

UDP:鑻辨枃鍏ㄦ嫾(User Datagram Protocol)绠�绉扮敤鎴锋暟鎹姤鍗忚锛屽畠鏄棤杩炴帴鐨勩�佷笉鍙潬鐨勭綉缁滀紶杈撳崗璁�

<2>UDP鐗圭偣

鍥犱负udp鍙戦�佹暟鎹箣鍓嶄笉闇�瑕佸缓绔嬭繛鎺ユ墍浠ュ叿鏈変互涓嬬壒鐐�

聽 聽 聽 鏃犺繛鎺�

聽 聽 聽 璧勬簮寮�閿�灏�

聽 聽 聽 浼犺緭閫熷害蹇�

聽 聽 聽 udp姣忎釜鏁版嵁鍖呮渶澶ф槸64K

<3>UDP鐨勪紭缂虹偣

浼樼偣:

聽 浼犺緭閫熷害蹇�

聽 涓嶉渶瑕佽繛鎺ワ紝璧勬簮寮�閿�灏�

缂虹偣:

聽 浼犺緭鏁版嵁涓嶅彲闈狅紝瀹规槗涓㈡暟鎹寘

聽 娌℃湁娴侀噺鎺у埗锛屽綋瀵规柟娌℃湁鍙婃椂鎺ユ敹鏁版嵁锛屽彂閫佹柟涓�鐩村彂閫佹暟鎹細瀵艰嚧缂撳啿鍖烘暟鎹弧浜嗭紝鐢佃剳鍑虹幇鍗℃鎯呭喌锛屾墍鏈夋帴鏀舵柟闇�瑕佸強鏃舵帴鏀舵暟鎹��

<4>UDP鐨勪娇鐢ㄥ満鏅�

褰撳缃戠粶閫氳璐ㄩ噺瑕佹眰涓嶉珮鐨勬椂鍊欙紝瑕佹眰缃戠粶閫氳閫熷害鑳藉敖閲忕殑蹇紝杩欐椂灏卞彲浠ヤ娇鐢║DP

聽 qq闊宠棰戜紶杈擄紝寰俊闊宠棰戜紶杈�

聽 涓婅浣跨敤鐨勫叡灞忚蒋浠�

聽 鍙戦�佸箍鎾秷鎭�

灏忕粨:

UDP鏄竴涓畝鍗曠殑闈㈠悜鏁版嵁鎶ョ殑杩愯緭灞傚崗璁�俇DP涓嶆彁渚涘彲闈犳�э紝瀹冨彧鏄妸搴旂敤绋嬪簭浼犵粰IP灞傜殑鏁版嵁鎶ュ彂閫佸嚭鍘伙紝浣嗘槸骞朵笉鑳戒繚璇佸畠浠兘鍒拌揪鐩殑鍦般�傜敱浜嶶DP鍦ㄤ紶杈撴暟鎹姤鍓嶄笉鐢ㄥ湪瀹㈡埛鍜屾湇鍔″櫒涔嬮棿寤虹珛涓�涓繛鎺ワ紝涓旀病鏈夎秴鏃堕噸鍙戠瓑鏈哄埗锛屾晠鑰屼紶杈撻�熷害寰堝揩銆�

6.socket浠嬬粛

<1>涓嶅悓鐢佃剳涓婄殑杩涚▼涔嬮棿濡備綍閫氫俊

棣栧厛閫氳繃ip鍦板潃鎵惧埌缃戠粶涓搴旂殑鐢佃剳锛岀劧鍚庨�氳繃浼犺緭鍗忚鍜岀鍙e彿鏉ョ‘瀹氳繖涓繘绋�(杩愯璧锋潵鐨勮蒋浠�)锛岄偅涔堟暟鎹浣曚紶杈撻渶瑕佷娇鐢╯ocket鏉ュ畬鎴愶紝涔熷氨鏄繘绋嬩箣闂撮�氫俊浣跨敤socket

娉ㄦ剰锛�

鎵�璋撹繘绋嬫寚鐨勬槸锛氳繍琛岀殑绋嬪簭鎴栬�呰蒋浠剁О涔嬩负杩涚▼锛堝湪璁茶В澶氫换鍔$紪绋嬫椂杩涜璇︾粏璁茶В锛�

鎵�璋撹繘绋嬮棿閫氫俊鎸囩殑鏄細杩愯鐨勭▼搴忎箣闂寸殑鏁版嵁鍏变韩

<2>浠�涔堟槸socket

socket(绠�绉� 濂楁帴瀛�) 鏄繘绋嬮棿閫氫俊涓�涓伐鍏凤紝瀹冭兘瀹炵幇鎶婃暟鎹粠涓�鏂逛紶杈撳埌鍙﹀涓�鏂癸紝瀹屾垚涓嶅悓鐢佃剳涓婅繘绋嬩箣闂寸殑閫氫俊锛� 瀹冨ソ姣旀暟鎹殑鎼繍宸ャ��

<3>socket浣跨敤鍦烘櫙

涓嶅じ寮犳潵璇达紝鍙璺熺綉缁滅浉鍏崇殑搴旂敤绋嬪簭鎴栬�呰蒋浠堕兘浣跨敤鍒颁簡socket

灏忕粨:

聽 socket灏辨槸瀹屾垚涓嶅悓鐢佃剳涓婅繘绋嬩箣闂撮�氫俊鐨勪竴涓伐鍏凤紝璐熻矗杩涚▼涔嬮棿鏁版嵁鐨勪紶杈�

7.udp缃戠粶绋嬪簭-鍙戦�併�佹帴鏀舵暟鎹�

<1>udp缃戠粶绋嬪簭娴佺▼

鍒涘缓涓�涓熀浜巙dp鐨勭綉缁滅▼搴忔祦绋嬪緢绠�鍗曪紝鍏蜂綋姝ラ濡備笅锛�

聽 鍒涘缓瀹㈡埛绔鎺ュ瓧

聽 鍙戦��/鎺ユ敹鏁版嵁

聽 鍏抽棴濂楁帴瀛�

鎬荤粨锛� 缃戠粶閫氫俊鐨勬祦绋�

1. 瀵规柟鐨刬p鍦板潃

2. 搴旂敤绋嬪簭鐨勭鍙e彿

3. 鏁版嵁鐨勪紶杈撳崗璁�(udp/tcp)

4. 浣跨敤socket鏀跺彂鏁版嵁

<2>鍒涘缓socket

鍦� Python 涓� 浣跨敤socket 妯″潡鐨勫嚱鏁� socket 灏卞彲浠ュ畬鎴愶細

import socket

socket.socket(AddressFamily, Type)

璇存槑锛�

鍑芥暟 socket.socket 鍒涘缓涓�涓� socket锛岃鍑芥暟甯︽湁涓や釜鍙傛暟锛�

Address Family锛欼P鍦板潃绫诲瀷; AF_INET琛ㄧずipv4绫诲瀷銆丄F_INET6琛ㄧずipv6绫诲瀷; Type锛氬鎺ュ瓧绫诲瀷锛屽彲浠ユ槸 SOCK_STREAM锛堟祦寮忓鎺ュ瓧锛屼富瑕佺敤浜� TCP 鍗忚锛夋垨鑰� SOCK_DGRAM锛堟暟鎹姤濂楁帴瀛楋紝涓昏鐢ㄤ簬 UDP 鍗忚锛�

鍒涘缓涓�涓猽dp socket锛坲dp濂楁帴瀛楋級

import socket

# 鍒涘缓udp鐨勫鎺ュ瓧

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# ...杩欓噷鏄娇鐢ㄥ鎺ュ瓧鐨勫姛鑳斤紙鐪佺暐锛�...

# 涓嶇敤鐨勬椂鍊欙紝鍏抽棴濂楁帴瀛�

s.close()

璇存槑

濂楁帴瀛椾娇鐢ㄦ祦绋� 涓� 鏂囦欢鐨勪娇鐢ㄦ祦绋嬪緢绫讳技 鍒涘缓濂楁帴瀛� 浣跨敤濂楁帴瀛楁敹/鍙戞暟鎹� 鍏抽棴濂楁帴瀛�

<3>鍙戦�佹暟鎹畇endto()

浠g爜濡備笅锛�

import socket

# 1. 鍒涘缓udp濂楁帴瀛�

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 2. 鍑嗗鎺ユ敹鏂圭殑鍦板潃

# '192.168.1.103'琛ㄧず鐩殑ip鍦板潃

# 8080琛ㄧず鐩殑绔彛

dest_addr = ('192.168.1.103', 8080)聽 # 娉ㄦ剰 鏄厓缁勶紝ip鏄瓧绗︿覆锛岀鍙f槸鏁板瓧

# 3. 浠庨敭鐩樿幏鍙栨暟鎹�

send_data = input("璇疯緭鍏ヨ鍙戦�佺殑鏁版嵁:")

# 4. 鍙戦�佹暟鎹埌鎸囧畾鐨勭數鑴戜笂鐨勬寚瀹氱▼搴忎腑

udp_socket.sendto(send_data.encode('utf-8'), dest_addr)

# 5. 鍏抽棴濂楁帴瀛�

udp_socket.close()

<4>鍙戦�併�佹帴鏀舵暟鎹�

import socket

# 1. 鍒涘缓udp濂楁帴瀛�

udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

# 2. 鍑嗗鎺ユ敹鏂圭殑鍦板潃

dest_addr = ('192.168.236.129', 8080)

# 3. 浠庨敭鐩樿幏鍙栨暟鎹�

send_data = input("璇疯緭鍏ヨ鍙戦�佺殑鏁版嵁:")

# 4. 鍙戦�佹暟鎹埌鎸囧畾鐨勭數鑴戜笂

udp_socket.sendto(send_data.encode('utf-8'), dest_addr)

# 5. 绛夊緟鎺ユ敹瀵规柟鍙戦�佺殑鏁版嵁

recv_data = udp_socket.recvfrom(1024)聽 # 1024琛ㄧず鏈鎺ユ敹鐨勬渶澶у瓧鑺傛暟

# 6. 鏄剧ず瀵规柟鍙戦�佺殑鏁版嵁

# 鎺ユ敹鍒扮殑鏁版嵁recv_data鏄竴涓厓缁�

# 绗�1涓厓绱犳槸瀵规柟鍙戦�佺殑鏁版嵁

# 绗�2涓厓绱犳槸瀵规柟鐨刬p鍜岀鍙�

print(recv_data[0].decode('gbk'))

print(recv_data[1])

# 7. 鍏抽棴濂楁帴瀛�

udp_socket.close()

8.鏁版嵁缂栫爜鍜岃В鐮�

聽 缂栫爜鍜岃В鐮佹搷浣�

聽 聽 聽 str->bytes:encode缂栫爜

聽 聽 聽 bytes->str:decode瑙g爜

瀛楃涓查�氳繃缂栫爜鎴愪负瀛楄妭鐮侊紝瀛楄妭鐮侀�氳繃瑙g爜鎴愪负瀛楃涓层��

聽 鍏朵腑decode()涓巈ncode()鏂规硶鍙互鎺ュ彈鍙傛暟锛屽叾澹版槑鍒嗗埆涓�:

聽 bytes.decode(encoding="utf-8", errors="strict")

聽 str.encode(encoding="utf-8", errors="strict")

鍏朵腑鐨別ncoding鏄寚鍦ㄨВ鐮佺紪鐮佽繃绋嬩腑浣跨敤鐨勭紪鐮佹牸寮忥紝errors鏄寚閿欒鐨勫鐞嗘柟妗堛��

娉ㄦ剰:

聽 strict:琛ㄧず涓ユ牸鎸夌収鎸囧畾缂栬В鐮佹柟寮忚繘琛岀紪鐮佸拰瑙g爜锛屽鏋滅紪瑙g爜涓嶆垚鍔熷垯宕╂簝

聽 ignore:琛ㄧず蹇界暐缂栬В鐮佷笉鎴愬姛鐨勫瓧绗︼紝濡傛灉缂栬В鐮佷笉鎴愬姛绋嬪簭涓嶄細宕╂簝

9.udp缁戝畾绔彛鍙�

<1>缁戝畾淇℃伅

涓�鑸儏鍐典笅锛屽湪涓�鍙扮數鑴戜笂杩愯鐨勭綉缁滅▼搴忔湁寰堝锛屼负浜嗕笉涓庡叾浠栫殑缃戠粶绋嬪簭鍗犵敤鍚屼竴涓鍙e彿锛屽線寰�鍦ㄧ紪绋嬩腑锛寀dp鐨勭鍙e彿涓�鑸笉缁戝畾

浣嗗鏋滈渶瑕佸仛鎴愪竴涓湇鍔″櫒绔殑绋嬪簭鐨勮瘽锛屾槸闇�瑕佺粦瀹氱殑

涓�鑸湇鍔℃�х殑绋嬪簭锛屽線寰�闇�瑕佷竴涓浐瀹氱殑绔彛鍙凤紝杩欏氨鏄墍璋撶殑绔彛鍙风粦瀹�

<2>缁戝畾绀轰緥

#coding=utf-8

from socket import *

# 1. 鍒涘缓濂楁帴瀛�

udp_socket = socket(AF_INET, SOCK_DGRAM)

# 2. 缁戝畾鏈湴鐨勭浉鍏充俊鎭紝濡傛灉涓�涓綉缁滅▼搴忎笉缁戝畾锛屽垯绯荤粺浼氶殢鏈哄垎閰�

#聽 ip鍦板潃鍜岀鍙e彿锛宨p涓�鑸笉鐢ㄥ啓锛岃〃绀烘湰鏈虹殑浠讳綍涓�涓猧p

local_addr = ('', 7788)

udp_socket.bind(local_addr)

# 3. 绛夊緟鎺ユ敹瀵规柟鍙戦�佺殑鏁版嵁

recv_data = udp_socket.recvfrom(1024) #聽 1024琛ㄧず鏈鎺ユ敹鐨勬渶澶у瓧鑺傛暟

# 4. 鏄剧ず鎺ユ敹鍒扮殑鏁版嵁

print(recv_data[0].decode('gbk'))

# 5. 鍏抽棴濂楁帴瀛�

udp_socket.close()

鎬荤粨

涓�涓猽dp缃戠粶绋嬪簭锛屼笉缁戝畾绔彛鍙凤紝姝ゆ椂鎿嶄綔绯荤粺浼氶殢鏈哄垎閰嶄竴涓鍙e彿锛屽鏋滅粦瀹氱鍙e彿锛屾瘡娆″惎鍔ㄧ▼搴忕鍙e彿涓嶅彉銆�

10.UDP鍙戦�佸箍鎾秷鎭�

鍙傝�冧唬鐮�

import socket

if __name__ == '__main__':

聽 聽 # 鍒涘缓udpsocket

聽 聽 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

聽 聽 # 璁剧疆socket鐨勯�夐」锛屽厑璁稿彂閫佸箍鎾秷鎭�

聽 聽 udp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, True)

聽 聽 # 鍙戦�佸箍鎾秷鎭�

聽 聽 udp_socket.sendto("澶у濂斤紝鎴戝彨灏忛儹鍚屽锛屽澶氬叧鐓�!".encode("gbk"), ("255.255.255.255", 9090))

聽 聽 # 鍏抽棴socket

聽 聽 udp_socket.close()

鎬荤粨

聽 骞挎挱鍦板潃鏈�甯哥敤鐨勬槸255.255.255.255 閫氱敤鐨勫箍鎾湴鍧�锛屼笉鍖哄垎缃戞

聽 聽 192.168.14.255锛� 灞�鍩熺綉鍐呯殑骞挎挱鍦板潃

11.udp鑱婂ぉ鍣�

鐩爣

聽 聽 聽 鑳藉鍐欏嚭udp鑱婂ぉ鍣ㄥ姛鑳界▼搴�

璇存槑

聽 鍦ㄤ竴涓數鑴戜腑缂栧啓1涓▼搴忥紝鏈�2涓姛鑳�

聽 1.鑾峰彇閿洏鏁版嵁锛屽苟灏嗗叾鍙戦�佺粰瀵规柟

聽 2.鎺ユ敹鏁版嵁骞舵樉绀�

聽 閫夋嫨浠ヤ笂鐨�2涓姛鑳借皟鐢�

鍙傝�冧唬鐮�

import socket

def send_msg(udp_socket):

聽 聽 """鑾峰彇閿洏鏁版嵁锛屽苟灏嗗叾鍙戦�佺粰瀵规柟"""

聽 聽 # 1. 浠庨敭鐩樿緭鍏ユ暟鎹�

聽 聽 msg = input("\n璇疯緭鍏ヨ鍙戦�佺殑鏁版嵁:")

聽 聽 # 2. 杈撳叆瀵规柟鐨刬p鍦板潃

聽 聽 dest_ip = input("\n璇疯緭鍏ュ鏂圭殑ip鍦板潃:")

聽 聽 # 3. 杈撳叆瀵规柟鐨刾ort

聽 聽 dest_port = int(input("\n璇疯緭鍏ュ鏂圭殑port:"))

聽 聽 # 4. 鍙戦�佹暟鎹�

聽 聽 udp_socket.sendto(msg.encode("utf-8"), (dest_ip, dest_port))

def recv_msg(udp_socket):

聽 聽 """鎺ユ敹鏁版嵁骞舵樉绀�"""

聽 聽 # 1. 鎺ユ敹鏁版嵁

聽 聽 recv_msg = udp_socket.recvfrom(1024)

聽 聽 # 2. 瑙g爜

聽 聽 recv_ip = recv_msg[1]

聽 聽 recv_msg = recv_msg[0].decode("utf-8")

聽 聽 # 3. 鏄剧ず鎺ユ敹鍒扮殑鏁版嵁

聽 聽 print(">>>%s:%s" % (str(recv_ip), recv_msg))

def main():

聽 聽 # 1. 鍒涘缓濂楁帴瀛�

聽 聽 udp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

聽 聽 # 2. 缁戝畾鏈湴淇℃伅

聽 聽 udp_socket.bind(("", 7890))

聽 聽 while True:

聽 聽 聽 聽 # 3. 閫夋嫨鍔熻兘

聽 聽 聽 聽 print("="*30)

聽 聽 聽 聽 print("1:鍙戦�佹秷鎭�")

聽 聽 聽 聽 print("2:鎺ユ敹娑堟伅")

聽 聽 聽 聽 print("="*30)

聽 聽 聽 聽 op_num = input("璇疯緭鍏ヨ鎿嶄綔鐨勫姛鑳藉簭鍙�:")

聽 聽 聽 聽 # 4. 鏍规嵁閫夋嫨璋冪敤鐩稿簲鐨勫嚱鏁�

聽 聽 聽 聽 if op_num == "1":

聽 聽 聽 聽 聽 聽 send_msg(udp_socket)

聽 聽 聽 聽 elif op_num == "2":

聽 聽 聽 聽 聽 聽 recv_msg(udp_socket)

聽 聽 聽 聽 else:

聽 聽 聽 聽 聽 聽 print("杈撳叆鏈夎锛岃閲嶆柊杈撳叆...")

if __name__ == "__main__":

聽 聽 main()


你可能感兴趣的:(Python 楂樼骇 3)