1. 程式人生 > >Linux中的curl命令

Linux中的curl命令

Curl是Linux下一個很強大的http命令列工具,其功能十分強大。

1) 二話不說,先從這裡開始吧!

$ curl http://www.linuxidc.com

回車之後,www.linuxidc.com 的html就稀里嘩啦地顯示在螢幕上了    ~

2) 嗯,要想把讀過來頁面存下來,是不是要這樣呢?

$ curl http://www.linuxidc.com > page.html

當然可以,但不用這麼麻煩的!

用curl的內建option就好,存下http的結果,用這個option: -o

$ curl -o page.html http://www.linuxidc.com

這樣,你就可以看到螢幕上出現一個下載頁面進度指示。等進展到100%,自然就 OK咯

3) 什麼什麼?!訪問不到?肯定是你的proxy沒有設定了。

使用curl的時候,用這個option可以指定http訪問所使用的proxy伺服器及其埠: -x

$ curl -x 123.45.67.89:1080 -o page.html http://www.linuxidc.com

4) 訪問有些網站的時候比較討厭,他使用cookie來記錄session資訊。

像IE/NN這樣的瀏覽器,當然可以輕易處理cookie資訊,但我們的curl呢?.....

我們來學習這個option: -D <— 這個是把http的response裡面的cookie資訊存到一個特別的檔案中去

$ curl -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

這樣,當頁面被存到page.html的同時,cookie資訊也被存到了cookie0001.txt裡面了

5)那麼,下一次訪問的時候,如何繼續使用上次留下的cookie資訊呢?要知道,很多網站都是靠監視你的cookie資訊,來判斷你是不是不按規矩訪問他們的網站的。

這次我們使用這個option來把上次的cookie資訊追加到http request裡面去: -b

$ curl -x 123.45.67.89:1080 -o page1.html -D cookie0002.txt -b cookie0001.txt http://www.linuxidc.com

這樣,我們就可以幾乎模擬所有的IE操作,去訪問網頁了!

6)稍微等等    ~我好像忘記什麼了    ~

對了!是瀏覽器資訊

有些討厭的網站總要我們使用某些特定的瀏覽器去訪問他們,有時候更過分的是,還要使用某些特定的版本     NND,哪裡有時間為了它去找這些怪異的瀏覽器呢!?

好在curl給我們提供了一個有用的option,可以讓我們隨意指定自己這次訪問所宣稱的自己的瀏覽器資訊: -A

$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -o page.html -D cookie0001.txt http://www.linuxidc.com

這樣,伺服器端接到訪問的要求,會認為你是一個執行在Windows 2000上的 IE6.0,嘿嘿嘿,其實也許你用的是蘋果機呢!

而"Mozilla/4.73 [en] (X11; U; Linux 2.2; 15 i686"則可以告訴對方你是一臺 PC上跑著的Linux,用的是Netscape 4.73,呵呵呵

7)另外一個伺服器端常用的限制方法,就是檢查http訪問的referer。比如你先訪問首頁,再訪問裡面所指定的下載頁,這第二次訪問的 referer地址就是第一次訪問成功後的頁面地址。這樣,伺服器端只要發現對下載頁面某次訪問的referer地址不是首頁的地址,就可以斷定那是個盜 連了    ~

討厭討厭 ~我就是要盜連    ~!!

幸好curl給我們提供了設定referer的option: -e

$ curl -A "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)" -x 123.45.67.89:1080 -e "mail.linuxidc.com" -o page.html -D cookie0001.txt http://www.linuxidc.com

這樣,就可以騙對方的伺服器,你是從mail.linuxidc.com點選某個連結過來的了,呵呵呵

8)寫著寫著發現漏掉什麼重要的東西了!——- 利用curl 下載檔案

剛才講過了,下載頁面到一個檔案裡,可以使用 -o ,下載檔案也是一樣。比如,

$ curl -o 1.jpg http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

這裡教大家一個新的option: -O 大寫的O,這麼用:

$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen1.JPG

這樣,就可以按照伺服器上的檔名,自動存在本地了!

再來一個更好用的。

如果screen1.JPG以外還有screen2.JPG、screen3.JPG、....、screen10.JPG需要下載,難不成還要讓我們寫一個script來完成這些操作?

不幹!

在curl裡面,這麼寫就可以了:

$ curl -O http://cgi2.tky.3web.ne.jp/~zzh/screen[1-10].JPG

呵呵呵,厲害吧?! ~

9)再來,我們繼續講解下載!

$ curl -O http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

這樣產生的下載,就是

~zzh/001.JPG

~zzh/002.JPG

...

~zzh/201.JPG

~nick/001.JPG

~nick/002.JPG

...

~nick/201.JPG

夠方便的了吧?哈哈哈

咦?高興得太早了。

由於zzh/nick下的檔名都是001,002...,201,下載下來的檔案重名,後面的把前面的檔案都給覆蓋掉了 ~

沒關係,我們還有更狠的!

$ curl -o #2_#1.jpg http://cgi2.tky.3web.ne.jp/~{zzh,nick}/[001-201].JPG

—這是.....自定義檔名的下載? —對頭,呵呵!

這樣,自定義出來下載下來的檔名,就變成了這樣:原來: ~zzh/001.JPG —-> 下載後: 001-zzh.JPG 原來: ~nick/001.JPG —-> 下載後: 001-nick.JPG

這樣一來,就不怕檔案重名啦,呵呵

相關推薦

Linux 常用命令

ln -s directory 沒有 開始 media 關機命令 範圍 後臺作業 解壓縮 命令基本格式: 命令提示符:[[email protected]/* */ ~]# root 代表當前的登錄用戶(linux當中管理員賬號是root)

Linuxawk命令的簡單用法

.cn inux total com mage 簡單 image 用法 int 一、用例1:   cat /proc/meminfo|grep "MemTotal"|awk ‘{print $2}‘   說明,$2表示第2位,$0表示全部,如需表示$,可用$$轉義。

linuxwc命令用法

字節 統計字符 -- 幫助信息 linux系統 count 沒有 標準 讀取 Linux系統中的wc(Word Count)命令的功能為統計指定文件中的字節數、字數、行數,並將統計結果顯示輸出。 1.命令格式: wc [選項]文件... 2.命令功能: 統計指定文件中的字節

linuxexpect命令詳解

linux運維expect介紹expect 是由Don Libes基於Tcl(Tool Command Language )語言開發的,主要應用於自動化交互式操作的場景,借助Expect處理交互的命令,可以將交互過程如:ssh登錄,ftp登錄等寫在一個腳本上,使之自動化完成。尤其適用於需要對多臺服務器執行相同

linuxtop命令

ont def comm 均值 code virt neutron load 共享 #top top命令的第一行“ top - 19:56:47 up 39 min, 3 users, load average: 0.00, 0.00,

linuxCURL的安裝

官網下載 sta config tps 特性 onf erl nbsp 地址 curl是一款著名的字符界面下的下載工具,支持HTTP、HTTPS、FTP、FTPS、DICT、TELNET、LDAP、FILE,和GOPHER。此外還具有cookies支持、斷點續傳、FTP上傳

Linuxdd命令的用法

dddd命令: convert and copy a file用法:dd?if=/PATH/FROM/SRC?of=/PATH/TO/DEST bs=#:?block?size,?復制單元大小 count=#:復制多少個bs of=file?寫到所命名的文件而不是到標準輸出 if=file?從所命名文件讀取而

linuxgrep命令

出行 red 文本搜索 grep命令 cin spa 組合 方式 小數 grep 是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。 grep常用用法 [root@www ~]# grep [-acinv] [--color=auto] ‘搜尋字

linuxwget命令

tags ogr don pan 還需 web 全部 remote 參數 Linux系統中的wget是一個下載文件的工具,它用在命令行下。對於Linux用戶是必不可少的工具,我們經常要下載一些軟件或從遠程服務器恢復備份到本地服務器。wget支持HTTP,HTTPS和FTP

Linux禁用命令歷史記錄

linux中 命令 -o 禁用 登錄 home hist history class 關閉history記錄功能 set +o history 打開history記錄功能 set -o history 清空記錄 history -c 記錄被清空,重新登錄後恢復。

Linuxsource命令的用法

立即生效 常常 new 重新登錄 核心 linu 用戶 成功 多次 source命令:   source命令也稱為“點命令”,也就是一個點符號(.)。source命令通常用於重新執行剛修改的初始化文件,使之立即生效,而不必註銷並重新登錄。因為lin

LinuxReadlink命令

.net padding order symbol 可執行文件 tro anon spa RM 原文地址:http://blog.csdn.net/liangxiaozhang/article/details/7356829 readlink是Linux系統中一個常用工具,

linux tr 命令的基礎運用

trtr命令可以看作是sed的簡化形式,可以用來替換刪除字符。tr - translate or delete characters常用的命令格式為:tr -c -d -s 字符1 字符2 <文件名 | -c | 用字符2替換字符1中不包含的字符(字符1補集) | -d | 刪除字符串1

linuxat命令詳解

at一次性計劃任務 at詳解 系統命令 at命令: 一:簡介: 計劃任務,在特定的時間執行某項工作,在特定的時間執行一次,需要安裝at服務,apt-get install at 二:時間定義: at允許使用一套相當復雜的指定時間的方法。● 能夠接受在當天的hh:mm(小時:分鐘)式的時間指定。假如

Linuxtouch命令使用(創建文件)

inf access -c -- modify 連續 技術分享 lin 路徑 touch命令有兩個功能: 1.用於把已存在文件的時間標簽更新為系統當前的時間(默認方式),它們的數據將原封不動地保留下來; 2.用來創建新的空文件。 語法 touch(選項)(參數) 選

Linux常用命令pipe

必須 強調 std 而且 ss命令 strong 目錄下的文件 文件 last 大多數linux命令處理數據後都會輸出到標準輸出,但是如果數據要經過系列列的步驟處理後,才是需要的數據個數,這種需求就需要管道來幫助完成。 管道命令使用"|"作為界定符,將界定符前的命令的執行結

linuxtar命令用法

log mco file 並且 unrar 過程 lin 文件名 壓縮歸檔 -c: 建立壓縮檔案-x:解壓-t:查看內容-r:向壓縮歸檔文件末尾追加文件-u:更新原壓縮包中的文件 這五個是獨立的命令,壓縮解壓都要用到其中一個,可以和別的命令連用但只能用其中一個。下面的參數是

Linux命令英文縮寫的含義

ls:list(列出目錄內容) cd:Change Directory(改變目錄) su:switch user 切換使用者 rpm:redhat package manager 紅帽子打包管理器 pwd:print working directory 列印當前目錄,顯示出當前工作目錄的絕對路徑 p

linuxscp命令

scp用於兩臺伺服器之前拷貝檔案、目錄。其原理是基於ssh。 假設兩臺伺服器IP分別為:A.104.238.161.75,B.43.224.34.73。使用者都是root 當前登入伺服器為A 從B拷貝檔案到A scp -P 22 [email protected]:/home

Linux各種命令、名稱的全程稱

rdquo bst Owner mon mta rpo argument rri message pwd:print work directory 打印當前目錄 顯示出當前工作目錄的絕對路徑 ps: process status(進程狀態,類似於windows的任務