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()
聽