1. 程式人生 > 其它 >Linux curl brew命令詳解 Linux curl命令詳解wget命令詳解

Linux curl brew命令詳解 Linux curl命令詳解wget命令詳解

Linux curl命令詳解

 

命令:curl

在Linux中curl是一個利用URL規則在命令列下工作的檔案傳輸工具,可以說是一款很強大的http命令列工具。它支援檔案的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。

語法:# curl [option] [url]

常見引數:

-A/--user-agent <string>              設定使用者代理髮送給伺服器
-b/--cookie <name=string/file>    cookie字串或檔案讀取位置
-c/--cookie-jar <file>                    操作結束後把cookie寫入到這個檔案中
-C/--continue-at <offset>            斷點續轉
-D/--dump-header <file>              把header資訊寫入到該檔案中
-e/--referer                                  來源網址
-f/--fail                                          連線失敗時不顯示http錯誤
-o/--output                                  把輸出寫到該檔案中
-O/--remote-name                      把輸出寫到該檔案中,保留遠端檔案的檔名
-r/--range <range>                      檢索來自HTTP/1.1或FTP伺服器位元組範圍
-s/--silent                                    靜音模式。不輸出任何東西
-T/--upload-file <file>                  上傳檔案
-u/--user <user[:password]>      設定伺服器的使用者和密碼
-w/--write-out [format]                什麼輸出完成後
-x/--proxy <host[:port]>              在給定的埠上使用HTTP代理
-#/--progress-bar                        進度條顯示當前的傳送狀態

例子:
1、基本用法

# curl http://www.linux.com

執行後,www.linux.com 的html就會顯示在螢幕上了
Ps:由於安裝linux的時候很多時候是沒有安裝桌面的,也意味著沒有瀏覽器,因此這個方法也經常用於測試一臺伺服器是否可以到達一個網站

2、儲存訪問的網頁
2.1:使用linux的重定向功能儲存

# curl http://www.linux.com >> linux.html

2.2:可以使用curl的內建option:-o(小寫)儲存網頁

$ curl -o linux.html http://www.linux.com

執行完成後會顯示如下介面,顯示100%則表示儲存成功

% Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 79684    0 79684    0    0  3437k      0 --:--:-- --:--:-- --:--:-- 7781k

2.3:可以使用curl的內建option:-O(大寫)儲存網頁中的檔案
要注意這裡後面的url要具體到某個檔案,不然抓不下來

# curl -O http://www.linux.com/hello.sh

3、測試網頁返回值

# curl -o /dev/null -s -w %{http_code} www.linux.com

Ps:在指令碼中,這是很常見的測試網站是否正常的用法

4、指定proxy伺服器以及其埠
很多時候上網需要用到代理伺服器(比如是使用代理伺服器上網或者因為使用curl別人網站而被別人遮蔽IP地址的時候),幸運的是curl通過使用內建option:-x來支援設定代理

# curl -x 192.168.100.100:1080 http://www.linux.com

5、cookie
有些網站是使用cookie來記錄session資訊。對於chrome這樣的瀏覽器,可以輕易處理cookie資訊,但在curl中只要增加相關引數也是可以很容易的處理cookie
5.1:儲存http的response裡面的cookie資訊。內建option:-c(小寫)

# curl -c cookiec.txt  http://www.linux.com

執行後cookie資訊就被存到了cookiec.txt裡面了

5.2:儲存http的response裡面的header資訊。內建option: -D

# curl -D cookied.txt http://www.linux.com

執行後cookie資訊就被存到了cookied.txt裡面了

注意:-c(小寫)產生的cookie和-D裡面的cookie是不一樣的。


5.3:使用cookie
很多網站都是通過監視你的cookie資訊來判斷你是否按規矩訪問他們的網站的,因此我們需要使用儲存的cookie資訊。內建option: -b

# curl -b cookiec.txt http://www.linux.com

6、模仿瀏覽器
有些網站需要使用特定的瀏覽器去訪問他們,有些還需要使用某些特定的版本。curl內建option:-A可以讓我們指定瀏覽器去訪問網站

# curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com

這樣伺服器端就會認為是使用IE8.0去訪問的

7、偽造referer(盜鏈)
很多伺服器會檢查http訪問的referer從而來控制訪問。比如:你是先訪問首頁,然後再訪問首頁中的郵箱頁面,這裡訪問郵箱的referer地址就是訪問首頁成功後的頁面地址,如果伺服器發現對郵箱頁面訪問的referer地址不是首頁的地址,就斷定那是個盜連了
curl中內建option:-e可以讓我們設定referer

# curl -e "www.linux.com" http://mail.linux.com

這樣就會讓伺服器其以為你是從www.linux.com點選某個連結過來的

8、下載檔案
8.1:利用curl下載檔案。
#使用內建option:-o(小寫)

# curl -o dodo1.jpg http:www.linux.com/dodo1.JPG

#使用內建option:-O(大寫)

# curl -O http://www.linux.com/dodo1.JPG

這樣就會以伺服器上的名稱儲存檔案到本地

8.2:迴圈下載
有時候下載圖片可以能是前面的部分名稱是一樣的,就最後的尾椎名不一樣

# curl -O http://www.linux.com/dodo[1-5].JPG

這樣就會把dodo1,dodo2,dodo3,dodo4,dodo5全部儲存下來

8.3:下載重新命名

# curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

由於下載的hello與bb中的檔名都是dodo1,dodo2,dodo3,dodo4,dodo5。因此第二次下載的會把第一次下載的覆蓋,這樣就需要對檔案進行重新命名。

# curl -o #1_#2.JPG http://www.linux.com/{hello,bb}/dodo[1-5].JPG

這樣在hello/dodo1.JPG的檔案下載下來就會變成hello_dodo1.JPG,其他檔案依此類推,從而有效的避免了檔案被覆蓋

8.4:分塊下載
有時候下載的東西會比較大,這個時候我們可以分段下載。使用內建option:-r

# curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
# curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG
# curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG
# cat dodo1_part* > dodo1.JPG

這樣就可以檢視dodo1.JPG的內容了

8.5:通過ftp下載檔案
curl可以通過ftp下載檔案,curl提供兩種從ftp中下載的語法

# curl -O -u 使用者名稱:密碼 ftp://www.linux.com/dodo1.JPG
# curl -O ftp://使用者名稱:密碼@www.linux.com/dodo1.JPG

8.6:顯示下載進度條

# curl -# -O http://www.linux.com/dodo1.JPG

8.7:不會顯示下載進度資訊

# curl -s -O http://www.linux.com/dodo1.JPG

9、斷點續傳
在windows中,我們可以使用迅雷這樣的軟體進行斷點續傳。curl可以通過內建option:-C同樣可以達到相同的效果
如果在下載dodo1.JPG的過程中突然掉線了,可以使用以下的方式續傳

# curl -C -O http://www.linux.com/dodo1.JPG

10、上傳檔案
curl不僅僅可以下載檔案,還可以上傳檔案。通過內建option:-T來實現

# curl -T dodo1.JPG -u 使用者名稱:密碼 ftp://www.linux.com/img/

這樣就向ftp伺服器上傳了檔案dodo1.JPG

11、顯示抓取錯誤

# curl -f http://www.linux.com/error

其他引數(此處翻譯為轉載):

-a/--append                        上傳檔案時,附加到目標檔案
--anyauth                            可以使用“任何”身份驗證方法
--basic                                使用HTTP基本驗證
-B/--use-ascii                      使用ASCII文字傳輸
-d/--data <data>                  HTTP POST方式傳送資料
--data-ascii <data>            以ascii的方式post資料
--data-binary <data>          以二進位制的方式post資料
--negotiate                          使用HTTP身份驗證
--digest                        使用數字身份驗證
--disable-eprt                  禁止使用EPRT或LPRT
--disable-epsv                  禁止使用EPSV
--egd-file <file>              為隨機資料(SSL)設定EGD socket路徑
--tcp-nodelay                  使用TCP_NODELAY選項
-E/--cert <cert[:passwd]>      客戶端證書檔案和密碼 (SSL)
--cert-type <type>              證書檔案型別 (DER/PEM/ENG) (SSL)
--key <key>                    私鑰檔名 (SSL)
--key-type <type>              私鑰檔案型別 (DER/PEM/ENG) (SSL)
--pass  <pass>                  私鑰密碼 (SSL)
--engine <eng>                  加密引擎使用 (SSL). "--engine list" for list
--cacert <file>                CA證書 (SSL)
--capath <directory>            CA目   (made using c_rehash) to verify peer against (SSL)
--ciphers <list>                SSL密碼
--compressed                    要求返回是壓縮的形勢 (using deflate or gzip)
--connect-timeout <seconds>    設定最大請求時間
--create-dirs                  建立本地目錄的目錄層次結構
--crlf                          上傳是把LF轉變成CRLF
--ftp-create-dirs              如果遠端目錄不存在,建立遠端目錄
--ftp-method [multicwd/nocwd/singlecwd]    控制CWD的使用
--ftp-pasv                      使用 PASV/EPSV 代替埠
--ftp-skip-pasv-ip              使用PASV的時候,忽略該IP地址
--ftp-ssl                      嘗試用 SSL/TLS 來進行ftp資料傳輸
--ftp-ssl-reqd                  要求用 SSL/TLS 來進行ftp資料傳輸
-F/--form <name=content>        模擬http表單提交資料
-form-string <name=string>      模擬http表單提交資料
-g/--globoff                    禁用網址序列和範圍使用{}和[]
-G/--get                        以get的方式來發送資料
-h/--help                      幫助
-H/--header <line>              自定義頭資訊傳遞給伺服器
--ignore-content-length        忽略的HTTP頭資訊的長度
-i/--include                    輸出時包括protocol頭資訊
-I/--head                      只顯示文件資訊
-j/--junk-session-cookies      讀取檔案時忽略session cookie
--interface <interface>        使用指定網路介面/地址
--krb4 <level>                  使用指定安全級別的krb4
-k/--insecure                  允許不使用證書到SSL站點
-K/--config                    指定的配置檔案讀取
-l/--list-only                  列出ftp目錄下的檔名稱
--limit-rate <rate>            設定傳輸速度
--local-port<NUM>              強制使用本地埠號
-m/--max-time <seconds>        設定最大傳輸時間
--max-redirs <num>              設定最大讀取的目錄數
--max-filesize <bytes>          設定最大下載的檔案總量
-M/--manual                    顯示全手動
-n/--netrc                      從netrc檔案中讀取使用者名稱和密碼
--netrc-optional                使用 .netrc 或者 URL來覆蓋-n
--ntlm                          使用 HTTP NTLM 身份驗證
-N/--no-buffer                  禁用緩衝輸出
-p/--proxytunnel                使用HTTP代理
--proxy-anyauth                選擇任一代理身份驗證方法
--proxy-basic                  在代理上使用基本身份驗證
--proxy-digest                  在代理上使用數字身份驗證
--proxy-ntlm                    在代理上使用ntlm身份驗證
-P/--ftp-port <address>        使用埠地址,而不是使用PASV
-Q/--quote <cmd>                檔案傳輸前,傳送命令到伺服器
--range-file                    讀取(SSL)的隨機檔案
-R/--remote-time                在本地生成檔案時,保留遠端檔案時間
--retry <num>                  傳輸出現問題時,重試的次數
--retry-delay <seconds>        傳輸出現問題時,設定重試間隔時間
--retry-max-time <seconds>      傳輸出現問題時,設定最大重試時間
-S/--show-error                顯示錯誤
--socks4 <host[:port]>          用socks4代理給定主機和埠
--socks5 <host[:port]>          用socks5代理給定主機和埠
-t/--telnet-option <OPT=val>    Telnet選項設定
--trace <file>                  對指定檔案進行debug
--trace-ascii <file>            Like --跟蹤但沒有hex輸出
--trace-time                    跟蹤/詳細輸出時,新增時間戳
--url <URL>                    Spet URL to work with
-U/--proxy-user <user[:password]>  設定代理使用者名稱和密碼
-V/--version                    顯示版本資訊
-X/--request <command>          指定什麼命令
-y/--speed-time                放棄限速所要的時間。預設為30
-Y/--speed-limit                停止傳輸速度的限制,速度時間'秒
-z/--time-cond                  傳送時間設定
-0/--http1.0                    使用HTTP 1.0
-1/--tlsv1                      使用TLSv1(SSL)
-2/--sslv2                      使用SSLv2的(SSL)
-3/--sslv3                      使用的SSLv3(SSL)
--3p-quote                      like -Q for the source URL for 3rd party transfer
--3p-url                        使用url,進行第三方傳送
--3p-user                      使用使用者名稱和密碼,進行第三方傳送
-4/--ipv4                      使用IP4
-6/--ipv6                      使用IP6

 

brew常用命令總結

1、brew的安裝
https://brew.sh/

2、常用命令
//檢視brew的版本
brew -v

//更新homebrew自己,把所有的Formula目錄更新,並且會對本機已經安裝並有更新的軟體用*標明
brew update

//檢視命令幫助:
brew -help

//檢視那些已安裝的程式需要更新
brew outdated

//更新單個軟體:
brew upgrade [包名]
例:brew upgrade git

//更新所有軟體:
brew upgrade

//安裝軟體
brew install [包名]@版本
例:brew install git

//解除安裝
brew uninstall [包名]
例:brew uninstall git

//清理所有包的舊版本 (安裝包快取)
brew cleanup
例:brew cleanup -n //顯示要刪除的內容,但不要實際刪除任何內容
例:brew cleanup -s //清理快取,包括下載即使是最新的版本
例:brew cleanup --prune=1 //刪除所有早於指定時間的快取檔案(天)

//清理單個軟體舊版本
brew cleanup [包名]
例:brew cleanup git

//檢視需要更新的包
brew outdated

//檢視可清理的舊版本包,不執行實際操作
brew cleanup -n

//鎖定某個包
brew pin $FORMULA

//取消鎖定
brew unpin $FORMULA

//檢視包資訊
brew info [包名]
例:brew info git

//檢視安裝列表
brew list

//查詢可用包
brew search [包名]
例:brew search git

//顯示包依賴
brew deps [包名]
例: brew deps git

3.注意事項
在Mac OS X 10.11系統以後,/usr/local/等系統目錄下的檔案讀寫是需要系統root許可權的,以往的Homebrew安裝如果沒有指定安裝路徑,會預設安裝在這些需要系統root使用者讀寫許可權的目錄下,導致有些指令需要新增sudo字首來執行,比如升級Homebrew需要:

$ sudo brew update
1
如果你不想每次都使用sudo指令,你有兩種方法可以選擇:

//1.對/usr/local 目錄下的檔案讀寫進行root使用者授權
$ sudo chown -R $USER /usr/local
例:$ sudo chown -R lean /usr/local

//2.(推薦)安裝Homebrew時對安裝路徑進行指定,直接安裝在不需要系統root使用者授權就可以自由讀寫的目錄下
<install path> -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

wget命令詳解

 

導讀: wget是Linux中的一個下載檔案的工具,wget是在Linux下開發的開放原始碼的軟體,作者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平臺上。

它用在命令列下。對於Linux使用者是必不可少的工具,尤其對於網路管理員,經常要下載一些軟體或從遠端伺服器恢復備份到本地伺服器。如果我們使用虛擬主機,處理這樣的事務我們只能先從遠端伺服器下載到我們電腦磁碟,然後再用ftp工具上傳到伺服器。這樣既浪費時間又浪費精力,那不沒辦法的事。而到了Linux VPS,它則可以直接下載到伺服器而不用經過上傳這一步。wget工具體積小但功能完善,它支援斷點下載功能,同時支援FTP和HTTP下載方式,支援代理伺服器和設定起來方便簡單。下面我們以例項的形式說明怎麼使用wget。 

 

首先安裝wget

1 [root@network test]# yum install -y wget

檢視幫助手冊

1 [root@network test]# wget --help
  1 GNU Wget 1.14,非互動式的網路檔案下載工具。
  2 用法: wget [選項]... [URL]...
  3 
  4 長選項所必須的引數在使用短選項時也是必須的。
  5 
  6 啟動:
  7   -V,  --version           顯示 Wget 的版本資訊並退出。
  8   -h,  --help              列印此幫助。
  9   -b,  --background        啟動後轉入後臺。
 10   -e,  --execute=COMMAND   執行一個“.wgetrc”風格的命令。
 11 
 12 日誌和輸入檔案:
 13   -o,  --output-file=FILE    將日誌資訊寫入 FILE。
 14   -a,  --append-output=FILE  將資訊新增至 FILE。
 15   -d,  --debug               列印大量除錯資訊。
 16   -q,  --quiet               安靜模式 (無資訊輸出)。
 17   -v,  --verbose             詳盡的輸出 (此為預設值)。
 18   -nv, --no-verbose          關閉詳盡輸出,但不進入安靜模式。
 19        --report-speed=TYPE   Output bandwidth as TYPE.  TYPE can be bits.
 20   -i,  --input-file=FILE     下載本地或外部 FILE 中的 URLs。
 21   -F,  --force-html          把輸入檔案當成 HTML 檔案。
 22   -B,  --base=URL            解析與 URL 相關的
 23                              HTML 輸入檔案 (由 -i -F 選項指定)。
 24        --config=FILE         Specify config file to use.
 25 
 26 下載:
 27   -t,  --tries=NUMBER            設定重試次數為 NUMBER (0 代表無限制)。
 28        --retry-connrefused       即使拒絕連線也是重試。
 29   -O,  --output-document=FILE    將文件寫入 FILE。
 30   -nc, --no-clobber              skip downloads that would download to
 31                                  existing files (overwriting them).
 32   -c,  --continue                斷點續傳下載檔案。
 33        --progress=TYPE           選擇進度條型別。
 34   -N,  --timestamping            只獲取比本地檔案新的檔案。
 35   --no-use-server-timestamps     不用伺服器上的時間戳來設定本地檔案。
 36   -S,  --server-response         列印伺服器響應。
 37        --spider                  不下載任何檔案。
 38   -T,  --timeout=SECONDS         將所有超時設為 SECONDS 秒。
 39        --dns-timeout=SECS        設定 DNS 查尋超時為 SECS 秒。
 40        --connect-timeout=SECS    設定連線超時為 SECS 秒。
 41        --read-timeout=SECS       設定讀取超時為 SECS 秒。
 42   -w,  --wait=SECONDS            等待間隔為 SECONDS 秒。
 43        --waitretry=SECONDS       在獲取檔案的重試期間等待 1..SECONDS 秒。
 44        --random-wait             獲取多個檔案時,每次隨機等待間隔
 45                                  0.5*WAIT...1.5*WAIT 秒。
 46        --no-proxy                禁止使用代理。
 47   -Q,  --quota=NUMBER            設定獲取配額為 NUMBER 位元組。
 48        --bind-address=ADDRESS    繫結至本地主機上的 ADDRESS (主機名或是 IP)。
 49        --limit-rate=RATE         限制下載速率為 RATE。
 50        --no-dns-cache            關閉 DNS 查尋快取。
 51        --restrict-file-names=OS  限定檔名中的字元為 OS 允許的字元。
 52        --ignore-case             匹配檔案/目錄時忽略大小寫。
 53   -4,  --inet4-only              僅連線至 IPv4 地址。
 54   -6,  --inet6-only              僅連線至 IPv6 地址。
 55        --prefer-family=FAMILY    首先連線至指定協議的地址
 56                                  FAMILY 為 IPv6,IPv4 或是 none。
 57        --user=USER               將 ftp 和 http 的使用者名稱均設定為 USER。
 58        --password=PASS           將 ftp 和 http 的密碼均設定為 PASS。
 59        --ask-password            提示輸入密碼。
 60        --no-iri                  關閉 IRI 支援。
 61        --local-encoding=ENC      IRI (國際化資源識別符號) 使用 ENC 作為本地編碼。
 62        --remote-encoding=ENC     使用 ENC 作為預設遠端編碼。
 63        --unlink                  remove file before clobber.
 64 
 65 目錄:
 66   -nd, --no-directories           不建立目錄。
 67   -x,  --force-directories        強制建立目錄。
 68   -nH, --no-host-directories      不要建立主目錄。
 69        --protocol-directories     在目錄中使用協議名稱。
 70   -P,  --directory-prefix=PREFIX  以 PREFIX/... 儲存檔案
 71        --cut-dirs=NUMBER          忽略遠端目錄中 NUMBER 個目錄層。
 72 
 73 HTTP 選項:
 74        --http-user=USER        設定 http 使用者名稱為 USER。
 75        --http-password=PASS    設定 http 密碼為 PASS。
 76        --no-cache              不在伺服器上快取資料。
 77        --default-page=NAME     改變預設頁
 78                                (預設頁通常是“index.html”)。
 79   -E,  --adjust-extension      以合適的副檔名儲存 HTML/CSS 文件。
 80        --ignore-length         忽略頭部的‘Content-Length’區域。
 81        --header=STRING         在頭部插入 STRING。
 82        --max-redirect          每頁所允許的最大重定向。
 83        --proxy-user=USER       使用 USER 作為代理使用者名稱。
 84        --proxy-password=PASS   使用 PASS 作為代理密碼。
 85        --referer=URL           在 HTTP 請求頭包含‘Referer: URL’。
 86        --save-headers          將 HTTP 頭儲存至檔案。
 87   -U,  --user-agent=AGENT      標識為 AGENT 而不是 Wget/VERSION。
 88        --no-http-keep-alive    禁用 HTTP keep-alive (永久連線)。
 89        --no-cookies            不使用 cookies。
 90        --load-cookies=FILE     會話開始前從 FILE 中載入 cookies。
 91        --save-cookies=FILE     會話結束後儲存 cookies 至 FILE。
 92        --keep-session-cookies  載入並儲存會話 (非永久) cookies。
 93        --post-data=STRING      使用 POST 方式;把 STRING 作為資料傳送。
 94        --post-file=FILE        使用 POST 方式;傳送 FILE 內容。
 95        --content-disposition   當選中本地檔名時
 96                                允許 Content-Disposition 頭部 (尚在實驗)。
 97        --content-on-error      output the received content on server errors.
 98        --auth-no-challenge     傳送不含伺服器詢問的首次等待
 99                                的基本 HTTP 驗證資訊。
100 
101 HTTPS (SSL/TLS) 選項:
102        --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,
103                                 SSLv3, TLSv1, TLSv1_1 and TLSv1_2.
104        --no-check-certificate   不要驗證伺服器的證書。
105        --certificate=FILE       客戶端證書檔案。
106        --certificate-type=TYPE  客戶端證書型別,PEM 或 DER。
107        --private-key=FILE       私鑰檔案。
108        --private-key-type=TYPE  私鑰檔案型別,PEM 或 DER。
109        --ca-certificate=FILE    帶有一組 CA 認證的檔案。
110        --ca-directory=DIR       儲存 CA 認證的雜湊列表的目錄。
111        --random-file=FILE       帶有生成 SSL PRNG 的隨機資料的檔案。
112        --egd-file=FILE          用於命名帶有隨機資料的 EGD 套接字的檔案。
113 
114 FTP 選項:
115        --ftp-user=USER         設定 ftp 使用者名稱為 USER。
116        --ftp-password=PASS     設定 ftp 密碼為 PASS。
117        --no-remove-listing     不要刪除‘.listing’檔案。
118        --no-glob               不在 FTP 檔名中使用萬用字元展開。
119        --no-passive-ftp        禁用“passive”傳輸模式。
120        --preserve-permissions  保留遠端檔案的許可權。
121        --retr-symlinks         遞迴目錄時,獲取連結的檔案 (而非目錄)。
122 
123 WARC options:
124        --warc-file=FILENAME      save request/response data to a .warc.gz file.
125        --warc-header=STRING      insert STRING into the warcinfo record.
126        --warc-max-size=NUMBER    set maximum size of WARC files to NUMBER.
127        --warc-cdx                write CDX index files.
128        --warc-dedup=FILENAME     do not store records listed in this CDX file.
129        --no-warc-compression     do not compress WARC files with GZIP.
130        --no-warc-digests         do not calculate SHA1 digests.
131        --no-warc-keep-log        do not store the log file in a WARC record.
132        --warc-tempdir=DIRECTORY  location for temporary files created by the
133                                  WARC writer.
134 
135 遞迴下載:
136   -r,  --recursive          指定遞迴下載。
137   -l,  --level=NUMBER       最大遞迴深度 (inf 或 0 代表無限制,即全部下載)。
138        --delete-after       下載完成後刪除本地檔案。
139   -k,  --convert-links      讓下載得到的 HTML 或 CSS 中的連結指向本地檔案。
140   --backups=N   before writing file X, rotate up to N backup files.
141   -K,  --backup-converted   在轉換檔案 X 前先將它備份為 X.orig。
142   -m,  --mirror             -N -r -l inf --no-remove-listing 的縮寫形式。
143   -p,  --page-requisites    下載所有用於顯示 HTML 頁面的圖片之類的元素。
144        --strict-comments    用嚴格方式 (SGML) 處理 HTML 註釋。
145 
146 遞迴接受/拒絕:
147   -A,  --accept=LIST               逗號分隔的可接受的副檔名列表。
148   -R,  --reject=LIST               逗號分隔的要拒絕的副檔名列表。
149        --accept-regex=REGEX        regex matching accepted URLs.
150        --reject-regex=REGEX        regex matching rejected URLs.
151        --regex-type=TYPE           regex type (posix|pcre).
152   -D,  --domains=LIST              逗號分隔的可接受的域列表。
153        --exclude-domains=LIST      逗號分隔的要拒絕的域列表。
154        --follow-ftp                跟蹤 HTML 文件中的 FTP 連結。
155        --follow-tags=LIST          逗號分隔的跟蹤的 HTML 標識列表。
156        --ignore-tags=LIST          逗號分隔的忽略的 HTML 標識列表。
157   -H,  --span-hosts                遞迴時轉向外部主機。
158   -L,  --relative                  只跟蹤有關係的連結。
159   -I,  --include-directories=LIST  允許目錄的列表。
160   --trust-server-names             use the name specified by the redirection
161                                    url last component.
162   -X,  --exclude-directories=LIST  排除目錄的列表。
163   -np, --no-parent                 不追溯至父目錄。

 

1、使用 wget 下載單個檔案 

以下的例子是從網路下載一個檔案並儲存在當前目錄

在下載的過程中會顯示進度條,包含(下載完成百分比,已經下載的位元組,當前下載速度,剩餘下載時間)。

1 wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

2、使用 wget -O 下載並以不同的檔名儲存 

1 [root@network test]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 [root@network test]# ls
3 wordpress-4.9.4-zh_CN.tar.gz

我們可以使用引數-O來指定一個檔名:

1 wget -O wordpress.tar.gz  http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 wordpress.tar.gz

3、使用 wget -c 斷點續傳 

使用wget -c重新啟動下載中斷的檔案:

對於我們下載大檔案時突然由於網路等原因中斷非常有幫助,我們可以繼續接著下載而不是重新下載一個檔案

 

1  wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

4、使用 wget -b 後臺下載

對於下載非常大的檔案的時候,我們可以使用引數-b進行後臺下載

1 [root@network test]# wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 繼續在後臺執行,pid 為 1463。
3 將把輸出寫入至 “wget-log”。

你可以使用以下命令來察看下載進度

 1 [root@network test]# tail -f wget-log
 2   8550K .......... .......... .......... .......... .......... 96%  814K 0s
 3   8600K .......... .......... .......... .......... .......... 97% 9.53M 0s
 4   8650K .......... .......... .......... .......... .......... 98% 86.8M 0s
 5   8700K .......... .......... .......... .......... .......... 98%  145M 0s
 6   8750K .......... .......... .......... .......... .......... 99% 67.4M 0s
 7   8800K .......... .......... .......... .......... .......... 99%  107M 0s
 8   8850K .......... .........                                  100% 1.95M=16s
 9 
10 2018-11-10 15:39:07 (564 KB/s) - 已儲存 “wordpress-4.9.4-zh_CN.tar.gz.2” [9082696/9082696])

5、偽裝代理名稱下載 

有些網站能通過根據判斷代理名稱不是瀏覽器而拒絕你的下載請求。不過你可以通過–user-agent引數偽裝。

6、使用 wget –spider 測試下載連結

當你打算進行定時下載,你應該在預定時間測試下載連結是否有效。我們可以增加–spider引數進行檢查。

 1 wget –spider URL 
 2 如果下載連結正確,將會顯示 
 3  
 4 wget –spider URL 
 5 Spider mode enabled. Check if remote file exists. 
 6 HTTP request sent, awaiting response… 200 OK 
 7 Length: unspecified [text/html] 
 8 Remote file exists and could contain further links, 
 9 but recursion is disabled — not retrieving. 
10 這保證了下載能在預定的時間進行,但當你給錯了一個連結,將會顯示如下錯誤 
11  
12 wget –spider url 
13 Spider mode enabled. Check if remote file exists. 
14 HTTP request sent, awaiting response… 404 Not Found 
15 Remote file does not exist — broken link!!! 


你可以在以下幾種情況下使用spider引數:

1 定時下載之前進行檢查
2 間隔檢測網站是否可用
3 檢查網站頁面的死連結

7、使用 wget –tries 增加重試次數 

如果網路有問題或下載一個大檔案也有可能失敗。wget預設重試20次連線下載檔案。如果需要,你可以使用–tries增加重試次數。

1 wget –tries=40 URL 

8、使用 wget -i 下載多個檔案 

 1 首先,儲存一份下載連結檔案 
 2  
 3 cat > filelist.txt 
 4 url1 
 5 url2 
 6 url3 
 7 url4 
 8 接著使用這個檔案和引數-i下載 
 9  
10 wget -i filelist.txt

9、使用 wget –mirror 映象網站 

 

10、使用 wget –reject 過濾指定格式下載 

你想下載一個網站,但你不希望下載圖片,你可以使用以下命令。

1 wget –reject=gif url 

11、使用 wget -o 把下載資訊存入日誌檔案 

你不希望下載資訊直接顯示在終端而是在一個日誌檔案,可以使用以下命令:

1 wget -o download.log URL

 

使用wget -O下載並以不同的檔名儲存(-O:下載檔案到對應目錄,並且修改檔名稱)

1 wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

 

命令:curl

在Linux中curl是一個利用URL規則在命令列下工作的檔案傳輸工具,可以說是一款很強大的http命令列工具。它支援檔案的上傳和下載,是綜合傳輸工具,但按傳統,習慣稱url為下載工具。

語法:# curl [option] [url]

常見引數:

-A/--user-agent <string>              設定使用者代理髮送給伺服器
-b/--cookie <name=string/file>    cookie字串或檔案讀取位置
-c/--cookie-jar <file>                    操作結束後把cookie寫入到這個檔案中
-C/--continue-at <offset>            斷點續轉
-D/--dump-header <file>              把header資訊寫入到該檔案中
-e/--referer                                  來源網址
-f/--fail                                          連線失敗時不顯示http錯誤
-o/--output                                  把輸出寫到該檔案中
-O/--remote-name                      把輸出寫到該檔案中,保留遠端檔案的檔名
-r/--range <range>                      檢索來自HTTP/1.1或FTP伺服器位元組範圍
-s/--silent                                    靜音模式。不輸出任何東西
-T/--upload-file <file>                  上傳檔案
-u/--user <user[:password]>      設定伺服器的使用者和密碼
-w/--write-out [format]                什麼輸出完成後
-x/--proxy <host[:port]>              在給定的埠上使用HTTP代理
-#/--progress-bar                        進度條顯示當前的傳送狀態

例子:
1、基本用法

# curl http://www.linux.com

執行後,www.linux.com 的html就會顯示在螢幕上了
Ps:由於安裝linux的時候很多時候是沒有安裝桌面的,也意味著沒有瀏覽器,因此這個方法也經常用於測試一臺伺服器是否可以到達一個網站

2、儲存訪問的網頁
2.1:使用linux的重定向功能儲存

# curl http://www.linux.com >> linux.html

2.2:可以使用curl的內建option:-o(小寫)儲存網頁

$ curl -o linux.html http://www.linux.com

執行完成後會顯示如下介面,顯示100%則表示儲存成功

% Total    % Received % Xferd  Average Speed  Time    Time    Time  Current
                                Dload  Upload  Total  Spent    Left  Speed
100 79684    0 79684    0    0  3437k      0 --:--:-- --:--:-- --:--:-- 7781k

2.3:可以使用curl的內建option:-O(大寫)儲存網頁中的檔案
要注意這裡後面的url要具體到某個檔案,不然抓不下來

# curl -O http://www.linux.com/hello.sh

3、測試網頁返回值

# curl -o /dev/null -s -w %{http_code} www.linux.com

Ps:在指令碼中,這是很常見的測試網站是否正常的用法

4、指定proxy伺服器以及其埠
很多時候上網需要用到代理伺服器(比如是使用代理伺服器上網或者因為使用curl別人網站而被別人遮蔽IP地址的時候),幸運的是curl通過使用內建option:-x來支援設定代理

# curl -x 192.168.100.100:1080 http://www.linux.com

5、cookie
有些網站是使用cookie來記錄session資訊。對於chrome這樣的瀏覽器,可以輕易處理cookie資訊,但在curl中只要增加相關引數也是可以很容易的處理cookie
5.1:儲存http的response裡面的cookie資訊。內建option:-c(小寫)

# curl -c cookiec.txt  http://www.linux.com

執行後cookie資訊就被存到了cookiec.txt裡面了

5.2:儲存http的response裡面的header資訊。內建option: -D

# curl -D cookied.txt http://www.linux.com

執行後cookie資訊就被存到了cookied.txt裡面了

注意:-c(小寫)產生的cookie和-D裡面的cookie是不一樣的。


5.3:使用cookie
很多網站都是通過監視你的cookie資訊來判斷你是否按規矩訪問他們的網站的,因此我們需要使用儲存的cookie資訊。內建option: -b

# curl -b cookiec.txt http://www.linux.com

6、模仿瀏覽器
有些網站需要使用特定的瀏覽器去訪問他們,有些還需要使用某些特定的版本。curl內建option:-A可以讓我們指定瀏覽器去訪問網站

# curl -A "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.0)" http://www.linux.com

這樣伺服器端就會認為是使用IE8.0去訪問的

7、偽造referer(盜鏈)
很多伺服器會檢查http訪問的referer從而來控制訪問。比如:你是先訪問首頁,然後再訪問首頁中的郵箱頁面,這裡訪問郵箱的referer地址就是訪問首頁成功後的頁面地址,如果伺服器發現對郵箱頁面訪問的referer地址不是首頁的地址,就斷定那是個盜連了
curl中內建option:-e可以讓我們設定referer

# curl -e "www.linux.com" http://mail.linux.com

這樣就會讓伺服器其以為你是從www.linux.com點選某個連結過來的

8、下載檔案
8.1:利用curl下載檔案。
#使用內建option:-o(小寫)

# curl -o dodo1.jpg http:www.linux.com/dodo1.JPG

#使用內建option:-O(大寫)

# curl -O http://www.linux.com/dodo1.JPG

這樣就會以伺服器上的名稱儲存檔案到本地

8.2:迴圈下載
有時候下載圖片可以能是前面的部分名稱是一樣的,就最後的尾椎名不一樣

# curl -O http://www.linux.com/dodo[1-5].JPG

這樣就會把dodo1,dodo2,dodo3,dodo4,dodo5全部儲存下來

8.3:下載重新命名

# curl -O http://www.linux.com/{hello,bb}/dodo[1-5].JPG

由於下載的hello與bb中的檔名都是dodo1,dodo2,dodo3,dodo4,dodo5。因此第二次下載的會把第一次下載的覆蓋,這樣就需要對檔案進行重新命名。

# curl -o #1_#2.JPG http://www.linux.com/{hello,bb}/dodo[1-5].JPG

這樣在hello/dodo1.JPG的檔案下載下來就會變成hello_dodo1.JPG,其他檔案依此類推,從而有效的避免了檔案被覆蓋

8.4:分塊下載
有時候下載的東西會比較大,這個時候我們可以分段下載。使用內建option:-r

# curl -r 0-100 -o dodo1_part1.JPG http://www.linux.com/dodo1.JPG
# curl -r 100-200 -o dodo1_part2.JPG http://www.linux.com/dodo1.JPG
# curl -r 200- -o dodo1_part3.JPG http://www.linux.com/dodo1.JPG
# cat dodo1_part* > dodo1.JPG

這樣就可以檢視dodo1.JPG的內容了

8.5:通過ftp下載檔案
curl可以通過ftp下載檔案,curl提供兩種從ftp中下載的語法

# curl -O -u 使用者名稱:密碼 ftp://www.linux.com/dodo1.JPG
# curl -O ftp://使用者名稱:密碼@www.linux.com/dodo1.JPG

8.6:顯示下載進度條

# curl -# -O http://www.linux.com/dodo1.JPG

8.7:不會顯示下載進度資訊

# curl -s -O http://www.linux.com/dodo1.JPG

9、斷點續傳
在windows中,我們可以使用迅雷這樣的軟體進行斷點續傳。curl可以通過內建option:-C同樣可以達到相同的效果
如果在下載dodo1.JPG的過程中突然掉線了,可以使用以下的方式續傳

# curl -C -O http://www.linux.com/dodo1.JPG

10、上傳檔案
curl不僅僅可以下載檔案,還可以上傳檔案。通過內建option:-T來實現

# curl -T dodo1.JPG -u 使用者名稱:密碼 ftp://www.linux.com/img/

這樣就向ftp伺服器上傳了檔案dodo1.JPG

11、顯示抓取錯誤

# curl -f http://www.linux.com/error

其他引數(此處翻譯為轉載):

-a/--append                        上傳檔案時,附加到目標檔案
--anyauth                            可以使用“任何”身份驗證方法
--basic                                使用HTTP基本驗證
-B/--use-ascii                      使用ASCII文字傳輸
-d/--data <data>                  HTTP POST方式傳送資料
--data-ascii <data>            以ascii的方式post資料
--data-binary <data>          以二進位制的方式post資料
--negotiate                          使用HTTP身份驗證
--digest                        使用數字身份驗證
--disable-eprt                  禁止使用EPRT或LPRT
--disable-epsv                  禁止使用EPSV
--egd-file <file>              為隨機資料(SSL)設定EGD socket路徑
--tcp-nodelay                  使用TCP_NODELAY選項
-E/--cert <cert[:passwd]>      客戶端證書檔案和密碼 (SSL)
--cert-type <type>              證書檔案型別 (DER/PEM/ENG) (SSL)
--key <key>                    私鑰檔名 (SSL)
--key-type <type>              私鑰檔案型別 (DER/PEM/ENG) (SSL)
--pass  <pass>                  私鑰密碼 (SSL)
--engine <eng>                  加密引擎使用 (SSL). "--engine list" for list
--cacert <file>                CA證書 (SSL)
--capath <directory>            CA目   (made using c_rehash) to verify peer against (SSL)
--ciphers <list>                SSL密碼
--compressed                    要求返回是壓縮的形勢 (using deflate or gzip)
--connect-timeout <seconds>    設定最大請求時間
--create-dirs                  建立本地目錄的目錄層次結構
--crlf                          上傳是把LF轉變成CRLF
--ftp-create-dirs              如果遠端目錄不存在,建立遠端目錄
--ftp-method [multicwd/nocwd/singlecwd]    控制CWD的使用
--ftp-pasv                      使用 PASV/EPSV 代替埠
--ftp-skip-pasv-ip              使用PASV的時候,忽略該IP地址
--ftp-ssl                      嘗試用 SSL/TLS 來進行ftp資料傳輸
--ftp-ssl-reqd                  要求用 SSL/TLS 來進行ftp資料傳輸
-F/--form <name=content>        模擬http表單提交資料
-form-string <name=string>      模擬http表單提交資料
-g/--globoff                    禁用網址序列和範圍使用{}和[]
-G/--get                        以get的方式來發送資料
-h/--help                      幫助
-H/--header <line>              自定義頭資訊傳遞給伺服器
--ignore-content-length        忽略的HTTP頭資訊的長度
-i/--include                    輸出時包括protocol頭資訊
-I/--head                      只顯示文件資訊
-j/--junk-session-cookies      讀取檔案時忽略session cookie
--interface <interface>        使用指定網路介面/地址
--krb4 <level>                  使用指定安全級別的krb4
-k/--insecure                  允許不使用證書到SSL站點
-K/--config                    指定的配置檔案讀取
-l/--list-only                  列出ftp目錄下的檔名稱
--limit-rate <rate>            設定傳輸速度
--local-port<NUM>              強制使用本地埠號
-m/--max-time <seconds>        設定最大傳輸時間
--max-redirs <num>              設定最大讀取的目錄數
--max-filesize <bytes>          設定最大下載的檔案總量
-M/--manual                    顯示全手動
-n/--netrc                      從netrc檔案中讀取使用者名稱和密碼
--netrc-optional                使用 .netrc 或者 URL來覆蓋-n
--ntlm                          使用 HTTP NTLM 身份驗證
-N/--no-buffer                  禁用緩衝輸出
-p/--proxytunnel                使用HTTP代理
--proxy-anyauth                選擇任一代理身份驗證方法
--proxy-basic                  在代理上使用基本身份驗證
--proxy-digest                  在代理上使用數字身份驗證
--proxy-ntlm                    在代理上使用ntlm身份驗證
-P/--ftp-port <address>        使用埠地址,而不是使用PASV
-Q/--quote <cmd>                檔案傳輸前,傳送命令到伺服器
--range-file                    讀取(SSL)的隨機檔案
-R/--remote-time                在本地生成檔案時,保留遠端檔案時間
--retry <num>                  傳輸出現問題時,重試的次數
--retry-delay <seconds>        傳輸出現問題時,設定重試間隔時間
--retry-max-time <seconds>      傳輸出現問題時,設定最大重試時間
-S/--show-error                顯示錯誤
--socks4 <host[:port]>          用socks4代理給定主機和埠
--socks5 <host[:port]>          用socks5代理給定主機和埠
-t/--telnet-option <OPT=val>    Telnet選項設定
--trace <file>                  對指定檔案進行debug
--trace-ascii <file>            Like --跟蹤但沒有hex輸出
--trace-time                    跟蹤/詳細輸出時,新增時間戳
--url <URL>                    Spet URL to work with
-U/--proxy-user <user[:password]>  設定代理使用者名稱和密碼
-V/--version                    顯示版本資訊
-X/--request <command>          指定什麼命令
-y/--speed-time                放棄限速所要的時間。預設為30
-Y/--speed-limit                停止傳輸速度的限制,速度時間'秒
-z/--time-cond                  傳送時間設定
-0/--http1.0                    使用HTTP 1.0
-1/--tlsv1                      使用TLSv1(SSL)
-2/--sslv2                      使用SSLv2的(SSL)
-3/--sslv3                      使用的SSLv3(SSL)
--3p-quote                      like -Q for the source URL for 3rd party transfer
--3p-url                        使用url,進行第三方傳送
--3p-user                      使用使用者名稱和密碼,進行第三方傳送
-4/--ipv4                      使用IP4
-6/--ipv6                      使用IP6

 

brew常用命令總結

1、brew的安裝
https://brew.sh/

2、常用命令
//檢視brew的版本
brew -v

//更新homebrew自己,把所有的Formula目錄更新,並且會對本機已經安裝並有更新的軟體用*標明
brew update

//檢視命令幫助:
brew -help

//檢視那些已安裝的程式需要更新
brew outdated

//更新單個軟體:
brew upgrade [包名]
例:brew upgrade git

//更新所有軟體:
brew upgrade

//安裝軟體
brew install [包名]@版本
例:brew install git

//解除安裝
brew uninstall [包名]
例:brew uninstall git

//清理所有包的舊版本 (安裝包快取)
brew cleanup
例:brew cleanup -n //顯示要刪除的內容,但不要實際刪除任何內容
例:brew cleanup -s //清理快取,包括下載即使是最新的版本
例:brew cleanup --prune=1 //刪除所有早於指定時間的快取檔案(天)

//清理單個軟體舊版本
brew cleanup [包名]
例:brew cleanup git

//檢視需要更新的包
brew outdated

//檢視可清理的舊版本包,不執行實際操作
brew cleanup -n

//鎖定某個包
brew pin $FORMULA

//取消鎖定
brew unpin $FORMULA

//檢視包資訊
brew info [包名]
例:brew info git

//檢視安裝列表
brew list

//查詢可用包
brew search [包名]
例:brew search git

//顯示包依賴
brew deps [包名]
例: brew deps git

3.注意事項
在Mac OS X 10.11系統以後,/usr/local/等系統目錄下的檔案讀寫是需要系統root許可權的,以往的Homebrew安裝如果沒有指定安裝路徑,會預設安裝在這些需要系統root使用者讀寫許可權的目錄下,導致有些指令需要新增sudo字首來執行,比如升級Homebrew需要:

$ sudo brew update
1
如果你不想每次都使用sudo指令,你有兩種方法可以選擇:

//1.對/usr/local 目錄下的檔案讀寫進行root使用者授權
$ sudo chown -R $USER /usr/local
例:$ sudo chown -R lean /usr/local

//2.(推薦)安裝Homebrew時對安裝路徑進行指定,直接安裝在不需要系統root使用者授權就可以自由讀寫的目錄下
<install path> -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

wget命令詳解

 

導讀: wget是Linux中的一個下載檔案的工具,wget是在Linux下開發的開放原始碼的軟體,作者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平臺上。

它用在命令列下。對於Linux使用者是必不可少的工具,尤其對於網路管理員,經常要下載一些軟體或從遠端伺服器恢復備份到本地伺服器。如果我們使用虛擬主機,處理這樣的事務我們只能先從遠端伺服器下載到我們電腦磁碟,然後再用ftp工具上傳到伺服器。這樣既浪費時間又浪費精力,那不沒辦法的事。而到了Linux VPS,它則可以直接下載到伺服器而不用經過上傳這一步。wget工具體積小但功能完善,它支援斷點下載功能,同時支援FTP和HTTP下載方式,支援代理伺服器和設定起來方便簡單。下面我們以例項的形式說明怎麼使用wget。 

 

首先安裝wget

1 [root@network test]# yum install -y wget

檢視幫助手冊

1 [root@network test]# wget --help
  1 GNU Wget 1.14,非互動式的網路檔案下載工具。
  2 用法: wget [選項]... [URL]...
  3 
  4 長選項所必須的引數在使用短選項時也是必須的。
  5 
  6 啟動:
  7   -V,  --version           顯示 Wget 的版本資訊並退出。
  8   -h,  --help              列印此幫助。
  9   -b,  --background        啟動後轉入後臺。
 10   -e,  --execute=COMMAND   執行一個“.wgetrc”風格的命令。
 11 
 12 日誌和輸入檔案:
 13   -o,  --output-file=FILE    將日誌資訊寫入 FILE。
 14   -a,  --append-output=FILE  將資訊新增至 FILE。
 15   -d,  --debug               列印大量除錯資訊。
 16   -q,  --quiet               安靜模式 (無資訊輸出)。
 17   -v,  --verbose             詳盡的輸出 (此為預設值)。
 18   -nv, --no-verbose          關閉詳盡輸出,但不進入安靜模式。
 19        --report-speed=TYPE   Output bandwidth as TYPE.  TYPE can be bits.
 20   -i,  --input-file=FILE     下載本地或外部 FILE 中的 URLs。
 21   -F,  --force-html          把輸入檔案當成 HTML 檔案。
 22   -B,  --base=URL            解析與 URL 相關的
 23                              HTML 輸入檔案 (由 -i -F 選項指定)。
 24        --config=FILE         Specify config file to use.
 25 
 26 下載:
 27   -t,  --tries=NUMBER            設定重試次數為 NUMBER (0 代表無限制)。
 28        --retry-connrefused       即使拒絕連線也是重試。
 29   -O,  --output-document=FILE    將文件寫入 FILE。
 30   -nc, --no-clobber              skip downloads that would download to
 31                                  existing files (overwriting them).
 32   -c,  --continue                斷點續傳下載檔案。
 33        --progress=TYPE           選擇進度條型別。
 34   -N,  --timestamping            只獲取比本地檔案新的檔案。
 35   --no-use-server-timestamps     不用伺服器上的時間戳來設定本地檔案。
 36   -S,  --server-response         列印伺服器響應。
 37        --spider                  不下載任何檔案。
 38   -T,  --timeout=SECONDS         將所有超時設為 SECONDS 秒。
 39        --dns-timeout=SECS        設定 DNS 查尋超時為 SECS 秒。
 40        --connect-timeout=SECS    設定連線超時為 SECS 秒。
 41        --read-timeout=SECS       設定讀取超時為 SECS 秒。
 42   -w,  --wait=SECONDS            等待間隔為 SECONDS 秒。
 43        --waitretry=SECONDS       在獲取檔案的重試期間等待 1..SECONDS 秒。
 44        --random-wait             獲取多個檔案時,每次隨機等待間隔
 45                                  0.5*WAIT...1.5*WAIT 秒。
 46        --no-proxy                禁止使用代理。
 47   -Q,  --quota=NUMBER            設定獲取配額為 NUMBER 位元組。
 48        --bind-address=ADDRESS    繫結至本地主機上的 ADDRESS (主機名或是 IP)。
 49        --limit-rate=RATE         限制下載速率為 RATE。
 50        --no-dns-cache            關閉 DNS 查尋快取。
 51        --restrict-file-names=OS  限定檔名中的字元為 OS 允許的字元。
 52        --ignore-case             匹配檔案/目錄時忽略大小寫。
 53   -4,  --inet4-only              僅連線至 IPv4 地址。
 54   -6,  --inet6-only              僅連線至 IPv6 地址。
 55        --prefer-family=FAMILY    首先連線至指定協議的地址
 56                                  FAMILY 為 IPv6,IPv4 或是 none。
 57        --user=USER               將 ftp 和 http 的使用者名稱均設定為 USER。
 58        --password=PASS           將 ftp 和 http 的密碼均設定為 PASS。
 59        --ask-password            提示輸入密碼。
 60        --no-iri                  關閉 IRI 支援。
 61        --local-encoding=ENC      IRI (國際化資源識別符號) 使用 ENC 作為本地編碼。
 62        --remote-encoding=ENC     使用 ENC 作為預設遠端編碼。
 63        --unlink                  remove file before clobber.
 64 
 65 目錄:
 66   -nd, --no-directories           不建立目錄。
 67   -x,  --force-directories        強制建立目錄。
 68   -nH, --no-host-directories      不要建立主目錄。
 69        --protocol-directories     在目錄中使用協議名稱。
 70   -P,  --directory-prefix=PREFIX  以 PREFIX/... 儲存檔案
 71        --cut-dirs=NUMBER          忽略遠端目錄中 NUMBER 個目錄層。
 72 
 73 HTTP 選項:
 74        --http-user=USER        設定 http 使用者名稱為 USER。
 75        --http-password=PASS    設定 http 密碼為 PASS。
 76        --no-cache              不在伺服器上快取資料。
 77        --default-page=NAME     改變預設頁
 78                                (預設頁通常是“index.html”)。
 79   -E,  --adjust-extension      以合適的副檔名儲存 HTML/CSS 文件。
 80        --ignore-length         忽略頭部的‘Content-Length’區域。
 81        --header=STRING         在頭部插入 STRING。
 82        --max-redirect          每頁所允許的最大重定向。
 83        --proxy-user=USER       使用 USER 作為代理使用者名稱。
 84        --proxy-password=PASS   使用 PASS 作為代理密碼。
 85        --referer=URL           在 HTTP 請求頭包含‘Referer: URL’。
 86        --save-headers          將 HTTP 頭儲存至檔案。
 87   -U,  --user-agent=AGENT      標識為 AGENT 而不是 Wget/VERSION。
 88        --no-http-keep-alive    禁用 HTTP keep-alive (永久連線)。
 89        --no-cookies            不使用 cookies。
 90        --load-cookies=FILE     會話開始前從 FILE 中載入 cookies。
 91        --save-cookies=FILE     會話結束後儲存 cookies 至 FILE。
 92        --keep-session-cookies  載入並儲存會話 (非永久) cookies。
 93        --post-data=STRING      使用 POST 方式;把 STRING 作為資料傳送。
 94        --post-file=FILE        使用 POST 方式;傳送 FILE 內容。
 95        --content-disposition   當選中本地檔名時
 96                                允許 Content-Disposition 頭部 (尚在實驗)。
 97        --content-on-error      output the received content on server errors.
 98        --auth-no-challenge     傳送不含伺服器詢問的首次等待
 99                                的基本 HTTP 驗證資訊。
100 
101 HTTPS (SSL/TLS) 選項:
102        --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,
103                                 SSLv3, TLSv1, TLSv1_1 and TLSv1_2.
104        --no-check-certificate   不要驗證伺服器的證書。
105        --certificate=FILE       客戶端證書檔案。
106        --certificate-type=TYPE  客戶端證書型別,PEM 或 DER。
107        --private-key=FILE       私鑰檔案。
108        --private-key-type=TYPE  私鑰檔案型別,PEM 或 DER。
109        --ca-certificate=FILE    帶有一組 CA 認證的檔案。
110        --ca-directory=DIR       儲存 CA 認證的雜湊列表的目錄。
111        --random-file=FILE       帶有生成 SSL PRNG 的隨機資料的檔案。
112        --egd-file=FILE          用於命名帶有隨機資料的 EGD 套接字的檔案。
113 
114 FTP 選項:
115        --ftp-user=USER         設定 ftp 使用者名稱為 USER。
116        --ftp-password=PASS     設定 ftp 密碼為 PASS。
117        --no-remove-listing     不要刪除‘.listing’檔案。
118        --no-glob               不在 FTP 檔名中使用萬用字元展開。
119        --no-passive-ftp        禁用“passive”傳輸模式。
120        --preserve-permissions  保留遠端檔案的許可權。
121        --retr-symlinks         遞迴目錄時,獲取連結的檔案 (而非目錄)。
122 
123 WARC options:
124        --warc-file=FILENAME      save request/response data to a .warc.gz file.
125        --warc-header=STRING      insert STRING into the warcinfo record.
126        --warc-max-size=NUMBER    set maximum size of WARC files to NUMBER.
127        --warc-cdx                write CDX index files.
128        --warc-dedup=FILENAME     do not store records listed in this CDX file.
129        --no-warc-compression     do not compress WARC files with GZIP.
130        --no-warc-digests         do not calculate SHA1 digests.
131        --no-warc-keep-log        do not store the log file in a WARC record.
132        --warc-tempdir=DIRECTORY  location for temporary files created by the
133                                  WARC writer.
134 
135 遞迴下載:
136   -r,  --recursive          指定遞迴下載。
137   -l,  --level=NUMBER       最大遞迴深度 (inf 或 0 代表無限制,即全部下載)。
138        --delete-after       下載完成後刪除本地檔案。
139   -k,  --convert-links      讓下載得到的 HTML 或 CSS 中的連結指向本地檔案。
140   --backups=N   before writing file X, rotate up to N backup files.
141   -K,  --backup-converted   在轉換檔案 X 前先將它備份為 X.orig。
142   -m,  --mirror             -N -r -l inf --no-remove-listing 的縮寫形式。
143   -p,  --page-requisites    下載所有用於顯示 HTML 頁面的圖片之類的元素。
144        --strict-comments    用嚴格方式 (SGML) 處理 HTML 註釋。
145 
146 遞迴接受/拒絕:
147   -A,  --accept=LIST               逗號分隔的可接受的副檔名列表。
148   -R,  --reject=LIST               逗號分隔的要拒絕的副檔名列表。
149        --accept-regex=REGEX        regex matching accepted URLs.
150        --reject-regex=REGEX        regex matching rejected URLs.
151        --regex-type=TYPE           regex type (posix|pcre).
152   -D,  --domains=LIST              逗號分隔的可接受的域列表。
153        --exclude-domains=LIST      逗號分隔的要拒絕的域列表。
154        --follow-ftp                跟蹤 HTML 文件中的 FTP 連結。
155        --follow-tags=LIST          逗號分隔的跟蹤的 HTML 標識列表。
156        --ignore-tags=LIST          逗號分隔的忽略的 HTML 標識列表。
157   -H,  --span-hosts                遞迴時轉向外部主機。
158   -L,  --relative                  只跟蹤有關係的連結。
159   -I,  --include-directories=LIST  允許目錄的列表。
160   --trust-server-names             use the name specified by the redirection
161                                    url last component.
162   -X,  --exclude-directories=LIST  排除目錄的列表。
163   -np, --no-parent                 不追溯至父目錄。

 

1、使用 wget 下載單個檔案 

以下的例子是從網路下載一個檔案並儲存在當前目錄

在下載的過程中會顯示進度條,包含(下載完成百分比,已經下載的位元組,當前下載速度,剩餘下載時間)。

1 wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

2、使用 wget -O 下載並以不同的檔名儲存 

1 [root@network test]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 [root@network test]# ls
3 wordpress-4.9.4-zh_CN.tar.gz

我們可以使用引數-O來指定一個檔名:

1 wget -O wordpress.tar.gz  http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 wordpress.tar.gz

3、使用 wget -c 斷點續傳 

使用wget -c重新啟動下載中斷的檔案:

對於我們下載大檔案時突然由於網路等原因中斷非常有幫助,我們可以繼續接著下載而不是重新下載一個檔案

 

1  wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

4、使用 wget -b 後臺下載

對於下載非常大的檔案的時候,我們可以使用引數-b進行後臺下載

1 [root@network test]# wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 繼續在後臺執行,pid 為 1463。
3 將把輸出寫入至 “wget-log”。

你可以使用以下命令來察看下載進度

 1 [root@network test]# tail -f wget-log
 2   8550K .......... .......... .......... .......... .......... 96%  814K 0s
 3   8600K .......... .......... .......... .......... .......... 97% 9.53M 0s
 4   8650K .......... .......... .......... .......... .......... 98% 86.8M 0s
 5   8700K .......... .......... .......... .......... .......... 98%  145M 0s
 6   8750K .......... .......... .......... .......... .......... 99% 67.4M 0s
 7   8800K .......... .......... .......... .......... .......... 99%  107M 0s
 8   8850K .......... .........                                  100% 1.95M=16s
 9 
10 2018-11-10 15:39:07 (564 KB/s) - 已儲存 “wordpress-4.9.4-zh_CN.tar.gz.2” [9082696/9082696])

5、偽裝代理名稱下載 

有些網站能通過根據判斷代理名稱不是瀏覽器而拒絕你的下載請求。不過你可以通過–user-agent引數偽裝。

6、使用 wget –spider 測試下載連結

當你打算進行定時下載,你應該在預定時間測試下載連結是否有效。我們可以增加–spider引數進行檢查。

 1 wget –spider URL 
 2 如果下載連結正確,將會顯示 
 3  
 4 wget –spider URL 
 5 Spider mode enabled. Check if remote file exists. 
 6 HTTP request sent, awaiting response… 200 OK 
 7 Length: unspecified [text/html] 
 8 Remote file exists and could contain further links, 
 9 but recursion is disabled — not retrieving. 
10 這保證了下載能在預定的時間進行,但當你給錯了一個連結,將會顯示如下錯誤 
11  
12 wget –spider url 
13 Spider mode enabled. Check if remote file exists. 
14 HTTP request sent, awaiting response… 404 Not Found 
15 Remote file does not exist — broken link!!! 


你可以在以下幾種情況下使用spider引數:

1 定時下載之前進行檢查
2 間隔檢測網站是否可用
3 檢查網站頁面的死連結

7、使用 wget –tries 增加重試次數 

如果網路有問題或下載一個大檔案也有可能失敗。wget預設重試20次連線下載檔案。如果需要,你可以使用–tries增加重試次數。

1 wget –tries=40 URL 

8、使用 wget -i 下載多個檔案 

 1 首先,儲存一份下載連結檔案 
 2  
 3 cat > filelist.txt 
 4 url1 
 5 url2 
 6 url3 
 7 url4 
 8 接著使用這個檔案和引數-i下載 
 9  
10 wget -i filelist.txt

9、使用 wget –mirror 映象網站 

 

10、使用 wget –reject 過濾指定格式下載 

你想下載一個網站,但你不希望下載圖片,你可以使用以下命令。

1 wget –reject=gif url 

11、使用 wget -o 把下載資訊存入日誌檔案 

你不希望下載資訊直接顯示在終端而是在一個日誌檔案,可以使用以下命令:

1 wget -o download.log URL

 

使用wget -O下載並以不同的檔名儲存(-O:下載檔案到對應目錄,並且修改檔名稱)

1 wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080

導讀: wget是Linux中的一個下載檔案的工具,wget是在Linux下開發的開放原始碼的軟體,作者是Hrvoje Niksic,後來被移植到包括Windows在內的各個平臺上。

它用在命令列下。對於Linux使用者是必不可少的工具,尤其對於網路管理員,經常要下載一些軟體或從遠端伺服器恢復備份到本地伺服器。如果我們使用虛擬主機,處理這樣的事務我們只能先從遠端伺服器下載到我們電腦磁碟,然後再用ftp工具上傳到伺服器。這樣既浪費時間又浪費精力,那不沒辦法的事。而到了Linux VPS,它則可以直接下載到伺服器而不用經過上傳這一步。wget工具體積小但功能完善,它支援斷點下載功能,同時支援FTP和HTTP下載方式,支援代理伺服器和設定起來方便簡單。下面我們以例項的形式說明怎麼使用wget。 

 

首先安裝wget

1 [root@network test]# yum install -y wget

檢視幫助手冊

1 [root@network test]# wget --help
  1 GNU Wget 1.14,非互動式的網路檔案下載工具。
  2 用法: wget [選項]... [URL]...
  3 
  4 長選項所必須的引數在使用短選項時也是必須的。
  5 
  6 啟動:
  7   -V,  --version           顯示 Wget 的版本資訊並退出。
  8   -h,  --help              列印此幫助。
  9   -b,  --background        啟動後轉入後臺。
 10   -e,  --execute=COMMAND   執行一個“.wgetrc”風格的命令。
 11 
 12 日誌和輸入檔案:
 13   -o,  --output-file=FILE    將日誌資訊寫入 FILE。
 14   -a,  --append-output=FILE  將資訊新增至 FILE。
 15   -d,  --debug               列印大量除錯資訊。
 16   -q,  --quiet               安靜模式 (無資訊輸出)。
 17   -v,  --verbose             詳盡的輸出 (此為預設值)。
 18   -nv, --no-verbose          關閉詳盡輸出,但不進入安靜模式。
 19        --report-speed=TYPE   Output bandwidth as TYPE.  TYPE can be bits.
 20   -i,  --input-file=FILE     下載本地或外部 FILE 中的 URLs。
 21   -F,  --force-html          把輸入檔案當成 HTML 檔案。
 22   -B,  --base=URL            解析與 URL 相關的
 23                              HTML 輸入檔案 (由 -i -F 選項指定)。
 24        --config=FILE         Specify config file to use.
 25 
 26 下載:
 27   -t,  --tries=NUMBER            設定重試次數為 NUMBER (0 代表無限制)。
 28        --retry-connrefused       即使拒絕連線也是重試。
 29   -O,  --output-document=FILE    將文件寫入 FILE。
 30   -nc, --no-clobber              skip downloads that would download to
 31                                  existing files (overwriting them).
 32   -c,  --continue                斷點續傳下載檔案。
 33        --progress=TYPE           選擇進度條型別。
 34   -N,  --timestamping            只獲取比本地檔案新的檔案。
 35   --no-use-server-timestamps     不用伺服器上的時間戳來設定本地檔案。
 36   -S,  --server-response         列印伺服器響應。
 37        --spider                  不下載任何檔案。
 38   -T,  --timeout=SECONDS         將所有超時設為 SECONDS 秒。
 39        --dns-timeout=SECS        設定 DNS 查尋超時為 SECS 秒。
 40        --connect-timeout=SECS    設定連線超時為 SECS 秒。
 41        --read-timeout=SECS       設定讀取超時為 SECS 秒。
 42   -w,  --wait=SECONDS            等待間隔為 SECONDS 秒。
 43        --waitretry=SECONDS       在獲取檔案的重試期間等待 1..SECONDS 秒。
 44        --random-wait             獲取多個檔案時,每次隨機等待間隔
 45                                  0.5*WAIT...1.5*WAIT 秒。
 46        --no-proxy                禁止使用代理。
 47   -Q,  --quota=NUMBER            設定獲取配額為 NUMBER 位元組。
 48        --bind-address=ADDRESS    繫結至本地主機上的 ADDRESS (主機名或是 IP)。
 49        --limit-rate=RATE         限制下載速率為 RATE。
 50        --no-dns-cache            關閉 DNS 查尋快取。
 51        --restrict-file-names=OS  限定檔名中的字元為 OS 允許的字元。
 52        --ignore-case             匹配檔案/目錄時忽略大小寫。
 53   -4,  --inet4-only              僅連線至 IPv4 地址。
 54   -6,  --inet6-only              僅連線至 IPv6 地址。
 55        --prefer-family=FAMILY    首先連線至指定協議的地址
 56                                  FAMILY 為 IPv6,IPv4 或是 none。
 57        --user=USER               將 ftp 和 http 的使用者名稱均設定為 USER。
 58        --password=PASS           將 ftp 和 http 的密碼均設定為 PASS。
 59        --ask-password            提示輸入密碼。
 60        --no-iri                  關閉 IRI 支援。
 61        --local-encoding=ENC      IRI (國際化資源識別符號) 使用 ENC 作為本地編碼。
 62        --remote-encoding=ENC     使用 ENC 作為預設遠端編碼。
 63        --unlink                  remove file before clobber.
 64 
 65 目錄:
 66   -nd, --no-directories           不建立目錄。
 67   -x,  --force-directories        強制建立目錄。
 68   -nH, --no-host-directories      不要建立主目錄。
 69        --protocol-directories     在目錄中使用協議名稱。
 70   -P,  --directory-prefix=PREFIX  以 PREFIX/... 儲存檔案
 71        --cut-dirs=NUMBER          忽略遠端目錄中 NUMBER 個目錄層。
 72 
 73 HTTP 選項:
 74        --http-user=USER        設定 http 使用者名稱為 USER。
 75        --http-password=PASS    設定 http 密碼為 PASS。
 76        --no-cache              不在伺服器上快取資料。
 77        --default-page=NAME     改變預設頁
 78                                (預設頁通常是“index.html”)。
 79   -E,  --adjust-extension      以合適的副檔名儲存 HTML/CSS 文件。
 80        --ignore-length         忽略頭部的‘Content-Length’區域。
 81        --header=STRING         在頭部插入 STRING。
 82        --max-redirect          每頁所允許的最大重定向。
 83        --proxy-user=USER       使用 USER 作為代理使用者名稱。
 84        --proxy-password=PASS   使用 PASS 作為代理密碼。
 85        --referer=URL           在 HTTP 請求頭包含‘Referer: URL’。
 86        --save-headers          將 HTTP 頭儲存至檔案。
 87   -U,  --user-agent=AGENT      標識為 AGENT 而不是 Wget/VERSION。
 88        --no-http-keep-alive    禁用 HTTP keep-alive (永久連線)。
 89        --no-cookies            不使用 cookies。
 90        --load-cookies=FILE     會話開始前從 FILE 中載入 cookies。
 91        --save-cookies=FILE     會話結束後儲存 cookies 至 FILE。
 92        --keep-session-cookies  載入並儲存會話 (非永久) cookies。
 93        --post-data=STRING      使用 POST 方式;把 STRING 作為資料傳送。
 94        --post-file=FILE        使用 POST 方式;傳送 FILE 內容。
 95        --content-disposition   當選中本地檔名時
 96                                允許 Content-Disposition 頭部 (尚在實驗)。
 97        --content-on-error      output the received content on server errors.
 98        --auth-no-challenge     傳送不含伺服器詢問的首次等待
 99                                的基本 HTTP 驗證資訊。
100 
101 HTTPS (SSL/TLS) 選項:
102        --secure-protocol=PR     choose secure protocol, one of auto, SSLv2,
103                                 SSLv3, TLSv1, TLSv1_1 and TLSv1_2.
104        --no-check-certificate   不要驗證伺服器的證書。
105        --certificate=FILE       客戶端證書檔案。
106        --certificate-type=TYPE  客戶端證書型別,PEM 或 DER。
107        --private-key=FILE       私鑰檔案。
108        --private-key-type=TYPE  私鑰檔案型別,PEM 或 DER。
109        --ca-certificate=FILE    帶有一組 CA 認證的檔案。
110        --ca-directory=DIR       儲存 CA 認證的雜湊列表的目錄。
111        --random-file=FILE       帶有生成 SSL PRNG 的隨機資料的檔案。
112        --egd-file=FILE          用於命名帶有隨機資料的 EGD 套接字的檔案。
113 
114 FTP 選項:
115        --ftp-user=USER         設定 ftp 使用者名稱為 USER。
116        --ftp-password=PASS     設定 ftp 密碼為 PASS。
117        --no-remove-listing     不要刪除‘.listing’檔案。
118        --no-glob               不在 FTP 檔名中使用萬用字元展開。
119        --no-passive-ftp        禁用“passive”傳輸模式。
120        --preserve-permissions  保留遠端檔案的許可權。
121        --retr-symlinks         遞迴目錄時,獲取連結的檔案 (而非目錄)。
122 
123 WARC options:
124        --warc-file=FILENAME      save request/response data to a .warc.gz file.
125        --warc-header=STRING      insert STRING into the warcinfo record.
126        --warc-max-size=NUMBER    set maximum size of WARC files to NUMBER.
127        --warc-cdx                write CDX index files.
128        --warc-dedup=FILENAME     do not store records listed in this CDX file.
129        --no-warc-compression     do not compress WARC files with GZIP.
130        --no-warc-digests         do not calculate SHA1 digests.
131        --no-warc-keep-log        do not store the log file in a WARC record.
132        --warc-tempdir=DIRECTORY  location for temporary files created by the
133                                  WARC writer.
134 
135 遞迴下載:
136   -r,  --recursive          指定遞迴下載。
137   -l,  --level=NUMBER       最大遞迴深度 (inf 或 0 代表無限制,即全部下載)。
138        --delete-after       下載完成後刪除本地檔案。
139   -k,  --convert-links      讓下載得到的 HTML 或 CSS 中的連結指向本地檔案。
140   --backups=N   before writing file X, rotate up to N backup files.
141   -K,  --backup-converted   在轉換檔案 X 前先將它備份為 X.orig。
142   -m,  --mirror             -N -r -l inf --no-remove-listing 的縮寫形式。
143   -p,  --page-requisites    下載所有用於顯示 HTML 頁面的圖片之類的元素。
144        --strict-comments    用嚴格方式 (SGML) 處理 HTML 註釋。
145 
146 遞迴接受/拒絕:
147   -A,  --accept=LIST               逗號分隔的可接受的副檔名列表。
148   -R,  --reject=LIST               逗號分隔的要拒絕的副檔名列表。
149        --accept-regex=REGEX        regex matching accepted URLs.
150        --reject-regex=REGEX        regex matching rejected URLs.
151        --regex-type=TYPE           regex type (posix|pcre).
152   -D,  --domains=LIST              逗號分隔的可接受的域列表。
153        --exclude-domains=LIST      逗號分隔的要拒絕的域列表。
154        --follow-ftp                跟蹤 HTML 文件中的 FTP 連結。
155        --follow-tags=LIST          逗號分隔的跟蹤的 HTML 標識列表。
156        --ignore-tags=LIST          逗號分隔的忽略的 HTML 標識列表。
157   -H,  --span-hosts                遞迴時轉向外部主機。
158   -L,  --relative                  只跟蹤有關係的連結。
159   -I,  --include-directories=LIST  允許目錄的列表。
160   --trust-server-names             use the name specified by the redirection
161                                    url last component.
162   -X,  --exclude-directories=LIST  排除目錄的列表。
163   -np, --no-parent                 不追溯至父目錄。

 

1、使用 wget 下載單個檔案 

以下的例子是從網路下載一個檔案並儲存在當前目錄

在下載的過程中會顯示進度條,包含(下載完成百分比,已經下載的位元組,當前下載速度,剩餘下載時間)。

1 wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

2、使用 wget -O 下載並以不同的檔名儲存 

1 [root@network test]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 [root@network test]# ls
3 wordpress-4.9.4-zh_CN.tar.gz

我們可以使用引數-O來指定一個檔名:

1 wget -O wordpress.tar.gz  http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 wordpress.tar.gz

3、使用 wget -c 斷點續傳 

使用wget -c重新啟動下載中斷的檔案:

對於我們下載大檔案時突然由於網路等原因中斷非常有幫助,我們可以繼續接著下載而不是重新下載一個檔案

 

1  wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

4、使用 wget -b 後臺下載

對於下載非常大的檔案的時候,我們可以使用引數-b進行後臺下載

1 [root@network test]# wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2 繼續在後臺執行,pid 為 1463。
3 將把輸出寫入至 “wget-log”。

你可以使用以下命令來察看下載進度

 1 [root@network test]# tail -f wget-log
 2   8550K .......... .......... .......... .......... .......... 96%  814K 0s
 3   8600K .......... .......... .......... .......... .......... 97% 9.53M 0s
 4   8650K .......... .......... .......... .......... .......... 98% 86.8M 0s
 5   8700K .......... .......... .......... .......... .......... 98%  145M 0s
 6   8750K .......... .......... .......... .......... .......... 99% 67.4M 0s
 7   8800K .......... .......... .......... .......... .......... 99%  107M 0s
 8   8850K .......... .........                                  100% 1.95M=16s
 9 
10 2018-11-10 15:39:07 (564 KB/s) - 已儲存 “wordpress-4.9.4-zh_CN.tar.gz.2” [9082696/9082696])

5、偽裝代理名稱下載 

有些網站能通過根據判斷代理名稱不是瀏覽器而拒絕你的下載請求。不過你可以通過–user-agent引數偽裝。

6、使用 wget –spider 測試下載連結

當你打算進行定時下載,你應該在預定時間測試下載連結是否有效。我們可以增加–spider引數進行檢查。

 1 wget –spider URL 
 2 如果下載連結正確,將會顯示 
 3  
 4 wget –spider URL 
 5 Spider mode enabled. Check if remote file exists. 
 6 HTTP request sent, awaiting response… 200 OK 
 7 Length: unspecified [text/html] 
 8 Remote file exists and could contain further links, 
 9 but recursion is disabled — not retrieving. 
10 這保證了下載能在預定的時間進行,但當你給錯了一個連結,將會顯示如下錯誤 
11  
12 wget –spider url 
13 Spider mode enabled. Check if remote file exists. 
14 HTTP request sent, awaiting response… 404 Not Found 
15 Remote file does not exist — broken link!!! 


你可以在以下幾種情況下使用spider引數:

1 定時下載之前進行檢查
2 間隔檢測網站是否可用
3 檢查網站頁面的死連結

7、使用 wget –tries 增加重試次數 

如果網路有問題或下載一個大檔案也有可能失敗。wget預設重試20次連線下載檔案。如果需要,你可以使用–tries增加重試次數。

1 wget –tries=40 URL 

8、使用 wget -i 下載多個檔案 

 1 首先,儲存一份下載連結檔案 
 2  
 3 cat > filelist.txt 
 4 url1 
 5 url2 
 6 url3 
 7 url4 
 8 接著使用這個檔案和引數-i下載 
 9  
10 wget -i filelist.txt

9、使用 wget –mirror 映象網站 

 

10、使用 wget –reject 過濾指定格式下載 

你想下載一個網站,但你不希望下載圖片,你可以使用以下命令。

1 wget –reject=gif url 

11、使用 wget -o 把下載資訊存入日誌檔案 

你不希望下載資訊直接顯示在終端而是在一個日誌檔案,可以使用以下命令:

1 wget -o download.log URL

 

使用wget -O下載並以不同的檔名儲存(-O:下載檔案到對應目錄,並且修改檔名稱)

1 wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080