中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      軟件開發(fā)人員的6個(gè)命令行工具

      時(shí)間:2024-05-26 15:19:24 ACCP培訓(xùn) 我要投稿
      • 相關(guān)推薦

      軟件開發(fā)人員的6個(gè)實(shí)用命令行工具

        優(yōu)秀的工具對(duì)于定位問(wèn)題出在何處有著無(wú)可估量的價(jià)值,而且能在一開始就幫助我們阻止問(wèn)題的出現(xiàn),總的來(lái)說(shuō)能使我們的工作更有效率。命令行工具尤其有用,因?yàn)樗鼈兎浅R子谧鲎詣?dòng)化和腳本處理,能夠以各種不同的方式進(jìn)行組合和重用。本文介紹了6個(gè)非常強(qiáng)大且靈活的工具,熟練使用這些工具能使你的生活變得更輕松一些。

        Curl

        Curl是一個(gè)網(wǎng)絡(luò)傳輸工具,同wget非常相似。主要的區(qū)別在于wget默認(rèn)是保存到文件,而curl將輸出定向到命令行上。這使得curl能非常方便的查看站點(diǎn)的內(nèi)容。比如,我們可以從ifconfig.me站點(diǎn)得到我們本機(jī)的IP地址:

      1
      2
      3
      .me
       
      93.96.141.93

        Curl的-i(查看header)和-I(只顯示header)選項(xiàng)使得調(diào)試HTTP響應(yīng)以及查看服務(wù)器究竟發(fā)送給你了什么變得非常有用:

      1
      2
      3
      4
      5
      $ curl -I news.ycombinator.com
      .1 200 OK
      ; charset=utf-8
      Cache-Control: private
      Connection: close

        -L選項(xiàng)也很有用,能讓curl自動(dòng)跟蹤重定向。Curl支持HTTP基本認(rèn)證,cookies,手動(dòng)設(shè)定headers以及更多有用的功能。

        Ngrep

        如果要分析網(wǎng)絡(luò)數(shù)據(jù)包,我們有Wireshark,它有著上千種設(shè)定、過(guò)濾器以及配置選項(xiàng)。它還有一個(gè)命令行版本Tshark。如果只是針對(duì)簡(jiǎn)單的任務(wù),我覺得Wireshark就太重量級(jí)了,所以除非我需要更強(qiáng)大的功能,一般情況下就用ngrep來(lái)處理了。Ngrep可以讓你像類似grep處理文件的方式來(lái)處理網(wǎng)絡(luò)封包。

        針對(duì)Web流量,你幾乎總是想要加上-W byline選項(xiàng),這會(huì)保留換行符,而-q選項(xiàng)可以抑制某些非匹配數(shù)據(jù)包而產(chǎn)生的輸出。下面是一個(gè)抓取所有包含有GET或POST請(qǐng)求數(shù)據(jù)包的例子:

      1
      ngrep –q –W byline “^(GET|POST) .*”

        你也可以傳入附加的報(bào)文過(guò)濾選項(xiàng),比如限制匹配的報(bào)文只針對(duì)某個(gè)特定的主機(jī),IP或端口。這里我們把所有流經(jīng)Google的流量做一個(gè)過(guò)濾,只針對(duì)80端口且報(bào)文中包含“search”。

      1
      ngrep –q –W byline “search” host www.google.com and port 80

        Netcat

        Netcat或者叫nc,這是一個(gè)自稱是網(wǎng)絡(luò)中的瑞士軍刀般的工具。它很簡(jiǎn)單但也非常強(qiáng)大和靈活,允許你創(chuàng)建任意的網(wǎng)絡(luò)連接。這里我們來(lái)看看如何把它作為一個(gè)端口掃描器:

      1
      2
      3
      $ nc –z example.com 20-100
      ] succeeded!
      ] succeeded!

        除了能夠創(chuàng)建任意的連接,Netcat還能夠監(jiān)聽傳入的連接。這里我們利用nc的這個(gè)功能再配合tar來(lái)快速有效的在服務(wù)器之間拷貝文件。在服務(wù)器端,運(yùn)行:

      1
      –xzf –

        在客戶端運(yùn)行:

      1
      / | nc server 9090

        我們可以使用Netcat把任何應(yīng)用通過(guò)網(wǎng)絡(luò)暴露出來(lái),這里我們通過(guò)8080端口將shell暴露出來(lái):

      1
      2
      backpipe
      > backpipe

        現(xiàn)在我們可以通過(guò)任意一臺(tái)客戶機(jī)來(lái)訪問(wèn)服務(wù)器了:linode

      1
      2
      3
      $ nc example.com 8080
      –a
      ##1 SMP Tue Jun 21 10:29:24 EDT 2011 i686 GNU/Linux

        盡管后面這兩個(gè)例子有些投機(jī)取巧的成分(現(xiàn)實(shí)中你應(yīng)該使用類似rsync這樣的工具來(lái)拷貝文件,用SSH來(lái)遠(yuǎn)程登錄服務(wù)器),它們還是展示出了Netcat的強(qiáng)大和靈活,通過(guò)結(jié)合netcat和其它的應(yīng)用你可以實(shí)現(xiàn)很多不同的事情。

        Sshuttle

        Sshuttle允許你通過(guò)任意一臺(tái)可SSH訪問(wèn)的服務(wù)器來(lái)為你的流量建立安全的隧道。搭建和使用都非常簡(jiǎn)單,不需要你在服務(wù)器上安裝任何軟件或者修改任何本地代理設(shè)定。當(dāng)你在非安全的公共WiFi或其他不受信任的網(wǎng)絡(luò)中時(shí),通過(guò)SSH讓流量走安全隧道,這樣就可避免類似Firesheep或dsniff這樣的工具的侵?jǐn)_。所有的網(wǎng)絡(luò)通訊,包括DNS請(qǐng)求都會(huì)發(fā)送到你的SSH服務(wù)器:

      1
      /0

        如果你提供了—daemon參數(shù),sshuttle會(huì)以守護(hù)進(jìn)程的形式在后臺(tái)運(yùn)行。結(jié)合一些其他的選項(xiàng),你可以使用別名形式來(lái)簡(jiǎn)單快速的啟動(dòng)和停止安全隧道:

      1
      2
      .pid`’

        你也可以使用sshuttle來(lái)解決一些基于IP的地理定位篩選的問(wèn)題,如今有很多服務(wù)都在使用這種應(yīng)用比如BBC的iPlayer就需要你在英國(guó),還有Turntable,需要你在美國(guó)。要繞過(guò)這種限制,你需要訪問(wèn)到位于該國(guó)的某個(gè)服務(wù)器。Amazon在許多國(guó)家都有免費(fèi)的E2C微實(shí)例,或者你也可以找一個(gè)便宜的vps,幾乎世界上任何國(guó)家都有。

        在這個(gè)例子中,我們不需要讓所有的流量都走隧道,我們只需要針對(duì)目標(biāo)服務(wù)的流量就行了。

        不幸的是sshuttle只接受IP地址作為參數(shù),不支持主機(jī)名,所以我們還得先用dig來(lái)解析出主機(jī)名。

      1
      >`

        Siege

        Siege是一個(gè)HTTP基準(zhǔn)測(cè)試工具。除了負(fù)載測(cè)試功能外,它還有一個(gè)很方便的-g選項(xiàng),這非常類似于curl的-iL,只是這里Siege也會(huì)輸出請(qǐng)求header。這里是針對(duì)Google的一個(gè)例子(為了簡(jiǎn)潔我拿掉了一些header)

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      $ siege -g www.google.com
      .1
      Host: www.google.com
      .00 [en] (X11; I; Siege 2.70)
      Connection: close 
       
      .1 302 Found
      .google.co.uk/
      ; charset=UTF-8
      Server: gws
      Content-Length: 221
      Connection: close 
       
      .1
      Host: www.google.co.uk
      .00 [en] (X11; I; Siege 2.70)
      Connection: close 
       
      .1 200 OK
      ; charset=ISO-8859-1
      X-XSS-Protection: 1; mode=block
      Connection: close

        Siege真正在行的是服務(wù)器的負(fù)載測(cè)試。就像ab(一款A(yù)pache HTTP服務(wù)基準(zhǔn)測(cè)試工具)一樣,你可以向站點(diǎn)發(fā)送并發(fā)請(qǐng)求,并查看它如何處理流量。用下面的命令,我們會(huì)在30秒內(nèi)向Google發(fā)起20個(gè)并發(fā)連接,最后會(huì)得到一個(gè)漂亮的測(cè)試報(bào)告。

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      $ siege -c20 www.google.co.uk -b -t30s
      ...
      .
      Transactions: 1400 hits
      Availability: 100.00 %
      : 29.22 secs
      Data transferred: 13.32 MB
      : 0.41 secs
      /sec
      /sec
      Concurrency: 19.53
      Successful transactions: 1400
      Failed transactions: 0
      Longest transaction: 4.08
      Shortest transaction: 0.08

        Siege最有用的一個(gè)特性是它可以把一個(gè)記錄URL的文件作為輸入,然后“點(diǎn)擊”這些URL,而不是只處理一個(gè)單獨(dú)的頁(yè)面。這對(duì)于負(fù)載測(cè)試來(lái)說(shuō)很有用,因?yàn)槟憧梢詫?duì)站點(diǎn)重現(xiàn)真實(shí)的流量并觀察站點(diǎn)如何處理,而不必一遍又一遍重復(fù)點(diǎn)擊同一個(gè)URL。下面是你用Siege來(lái)重現(xiàn)Apache對(duì)另一臺(tái)服務(wù)器的日志記錄,以做負(fù)載測(cè)試的例子:

      1
      2
      .log > urls.txt
      $ siege -c<concurrency rate> -b -f urls.txt

        Mitmproxy

        Mitmproxy是一個(gè)支持SSL的HTTP中間人代理工具,它允許你檢查HTTP和HTTPS流量并支持直接改寫請(qǐng)求。這個(gè)應(yīng)用曾經(jīng)在一些有關(guān)iOS應(yīng)用的隱私丑聞中都出現(xiàn)過(guò),包括Path的地址簿上傳丑聞。它的直接改寫請(qǐng)求的能力也被用來(lái)針對(duì)iOS平臺(tái),其應(yīng)用包括在GameCenter中偽造一個(gè)虛假的高分?jǐn)?shù)值。

        Mitmproxy可不只是用來(lái)查看移動(dòng)應(yīng)用發(fā)送了些什么內(nèi)容或者是偽造幾個(gè)高分?jǐn)?shù)值那么簡(jiǎn)單。它同樣可以為Web開發(fā)者解決很多問(wèn)題。比如,之前我們需要不停點(diǎn)擊F5鍵或者清除緩存才能保證看到最新的內(nèi)容,現(xiàn)在你可以運(yùn)行:

      1
      $ mitmproxy --anticache

        這樣將自動(dòng)去掉緩存控制相關(guān)的header,并確保你總是獲取到刷新后的內(nèi)容。不幸的是,這并不會(huì)像sshuttle那樣自動(dòng)為你設(shè)定轉(zhuǎn)發(fā)功能,所以啟動(dòng)mitmproxy之后你還需要修改全局或者特定于瀏覽器的代理設(shè)置。

        mitmproxy另一個(gè)非常給力的功能是記錄并重現(xiàn)HTTP的交互過(guò)程。官方文檔給出了一個(gè)關(guān)于無(wú)線網(wǎng)絡(luò)登錄的例子。同樣的技術(shù)也能夠用來(lái)作為基本的Web測(cè)試框架。比如,為了確認(rèn)你的用戶注冊(cè)流程是否正常工作,你可以開啟記錄會(huì)話:

      1
      $ mitmdump -w user-signup

        然后跑一遍用戶注冊(cè)流程,目前為止應(yīng)該能如預(yù)期般的工作。用Ctrl+C來(lái)停止記錄。在任意時(shí)刻我們都能重現(xiàn)剛剛記錄到的交互過(guò)程,并檢查200狀態(tài)碼:

      1
      "FAIL"

        如果注冊(cè)流程中的任意一點(diǎn)出了問(wèn)題,我們將看到FAIL消息而不是OK。你可以創(chuàng)建一整套這類測(cè)試套件,并經(jīng)常執(zhí)行這類測(cè)試以確保當(dāng)站點(diǎn)突然出現(xiàn)故障時(shí)你會(huì)得到提示。

      【軟件開發(fā)人員的6個(gè)命令行工具】相關(guān)文章:

      EDA工具軟件10-24

      軟件開發(fā)工具與軟件開發(fā)環(huán)境分析10-23

      java jar 命令行參數(shù)06-04

      PS軟件后期修圖工具的使用技巧09-07

      java命令行參數(shù)解析201608-12

      Linux常用命令行匯總09-11

      三級(jí)PC常見的系統(tǒng)命令行10-22

      命令行的亂碼以及編碼的問(wèn)題的解決方法08-02

      化妝工具有哪些-化妝工具大全08-20

      美甲工具10-22

      主站蜘蛛池模板: 国产乱子伦农村xxxx| 五华县| 国产成人精品aaaa视频一区| 岚皋县| 人妻无码人妻有码不卡| 成人无码a级毛片免费| 久久亚洲第一视频黄色| 浦北县| 日本在线免费精品视频| 偷拍视频网站一区二区| 金坛市| 叙永县| 国产午夜亚洲精品不卡免下载| 久久亚洲aⅴ精品网站婷婷| 辽宁省| 成人免费观看在线播放视频| 久久综合激激的五月天| 康保县| 亚洲伊人不卡av在线| 欧美性受xxxx狂喷水| 亚洲高清视频在线播放| 农安县| 循化| 精品人妻人妇中文字幕视频| 爱v天堂在线观看| 亚洲福利黄色片深爱网| 久久久久国产精品四虎| 台安县| 兰溪市| 东台市| 柳林县| 荣成市| 新宾| 亚洲精品国产熟女久久| 偷拍网日本一区二区三区| 开心五月婷婷激情综合| 欧美日韩高清一本大道免费| 成人国产精品免费网站| 湘乡市| 普定县| 连江县|