亚洲AV日韩AⅤ综合手机在线观看,激情婷婷久久综合色,欧美色五月婷婷久久,久久国产精品99久久人人澡

  • <abbr id="uk6uq"><abbr id="uk6uq"></abbr></abbr>
  • <tbody id="uk6uq"></tbody>
  • 軟件開發(fā)人員的6個命令行工具

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

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

      優(yōu)秀的工具對于定位問題出在何處有著無可估量的價值,而且能在一開始就幫助我們阻止問題的出現(xiàn),總的來說能使我們的工作更有效率。命令行工具尤其有用,因為它們非常易于做自動化和腳本處理,能夠以各種不同的方式進行組合和重用。本文介紹了6個非常強大且靈活的工具,熟練使用這些工具能使你的生活變得更輕松一些。

      Curl

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

    1
    2
    3
    .me
     
    93.96.141.93

      Curl的-i(查看header)和-I(只顯示header)選項使得調(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選項也很有用,能讓curl自動跟蹤重定向。Curl支持HTTP基本認證,cookies,手動設(shè)定headers以及更多有用的功能。

      Ngrep

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

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

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

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

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

      Netcat

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

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

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

    1
    –xzf –

      在客戶端運行:

    1
    / | nc server 9090

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

    1
    2
    backpipe
    > backpipe

      現(xiàn)在我們可以通過任意一臺客戶機來訪問服務(wù)器了:linode

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

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

      Sshuttle

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

    1
    /0

      如果你提供了—daemon參數(shù),sshuttle會以守護進程的形式在后臺運行。結(jié)合一些其他的選項,你可以使用別名形式來簡單快速的啟動和停止安全隧道:

    1
    2
    .pid`’

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

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

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

    1
    >`

      Siege

      Siege是一個HTTP基準測試工具。除了負載測試功能外,它還有一個很方便的-g選項,這非常類似于curl的-iL,只是這里Siege也會輸出請求header。這里是針對Google的一個例子(為了簡潔我拿掉了一些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ù)器的負載測試。就像ab(一款A(yù)pache HTTP服務(wù)基準測試工具)一樣,你可以向站點發(fā)送并發(fā)請求,并查看它如何處理流量。用下面的命令,我們會在30秒內(nèi)向Google發(fā)起20個并發(fā)連接,最后會得到一個漂亮的測試報告。

    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最有用的一個特性是它可以把一個記錄URL的文件作為輸入,然后“點擊”這些URL,而不是只處理一個單獨的頁面。這對于負載測試來說很有用,因為你可以對站點重現(xiàn)真實的流量并觀察站點如何處理,而不必一遍又一遍重復(fù)點擊同一個URL。下面是你用Siege來重現(xiàn)Apache對另一臺服務(wù)器的日志記錄,以做負載測試的例子:

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

      Mitmproxy

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

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

    1
    $ mitmproxy --anticache

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

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

    1
    $ mitmdump -w user-signup

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

    1
    "FAIL"

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

    【軟件開發(fā)人員的6個命令行工具】相關(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

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

    命令行的亂碼以及編碼的問題的解決方法08-02

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

    美甲工具10-22