Linux下wget命令詳細介紹
導(dǎo)讀:wget是Linux中的一個下載文件的工具,wget是在Linux下開發(fā)的開放源代碼的軟件,作者是Hrvoje Niksic,后來被移植到包括Windows在內(nèi)的各個平臺上。
它用在命令行下。對于Linux用戶是必不可少的工具,尤其對于網(wǎng)絡(luò)管理員,經(jīng)常要下載一些軟件或從遠程服務(wù)器恢復(fù)備份到本地服務(wù)器。如果我們使用虛擬主機,處理這樣的事務(wù)我們只能先從遠程服務(wù)器下載到我們電腦磁盤,然后再用ftp工具上傳到服務(wù)器。這樣既浪費時間又浪費精力,那不沒辦法的事。而到了Linux VPS,它則可以直接下載到服務(wù)器而不用經(jīng)過上傳這一步。wget工具體積小但功能完善,它支持斷點下載功能,同時支持FTP和HTTP下載方式,支持代理服務(wù)器和設(shè)置起來方便簡單。下面我們以實例的形式說明怎么使用wget。
首先安裝wget
[root@network test]# yum install -y wget
查看幫助手冊
[root@network test]# wget --help
GNU Wget 1.14,非交互式的網(wǎng)絡(luò)文件下載工具。 用法: wget [選項]... [URL]... 長選項所必須的參數(shù)在使用短選項時也是必須的。 啟動: -V, --version 顯示 Wget 的版本信息并退出。 -h, --help 打印此幫助。 -b, --background 啟動后轉(zhuǎn)入后臺。 -e, --execute=COMMAND 運行一個“.wgetrc”風(fēng)格的命令。 日志和輸入文件: -o, --output-file=FILE 將日志信息寫入 FILE。 -a, --append-output=FILE 將信息添加至 FILE。 -d, --debug 打印大量調(diào)試信息。 -q, --quiet 安靜模式 (無信息輸出)。 -v, --verbose 詳盡的輸出 (此為默認值)。 -nv, --no-verbose 關(guān)閉詳盡輸出,但不進入安靜模式。 --report-speed=TYPE Output bandwidth as TYPE. TYPE can be bits. -i, --input-file=FILE 下載本地或外部 FILE 中的 URLs。 -F, --force-html 把輸入文件當(dāng)成 HTML 文件。 -B, --base=URL 解析與 URL 相關(guān)的 HTML 輸入文件 (由 -i -F 選項指定)。 --config=FILE Specify config file to use. 下載: -t, --tries=NUMBER 設(shè)置重試次數(shù)為 NUMBER (0 代表無限制)。 --retry-connrefused 即使拒絕連接也是重試。 -O, --output-document=FILE 將文檔寫入 FILE。 -nc, --no-clobber skip downloads that would download to existing files (overwriting them). -c, --continue 斷點續(xù)傳下載文件。 --progress=TYPE 選擇進度條類型。 -N, --timestamping 只獲取比本地文件新的文件。 --no-use-server-timestamps 不用服務(wù)器上的時間戳來設(shè)置本地文件。 -S, --server-response 打印服務(wù)器響應(yīng)。 --spider 不下載任何文件。 -T, --timeout=SECONDS 將所有超時設(shè)為 SECONDS 秒。 --dns-timeout=SECS 設(shè)置 DNS 查尋超時為 SECS 秒。 --connect-timeout=SECS 設(shè)置連接超時為 SECS 秒。 --read-timeout=SECS 設(shè)置讀取超時為 SECS 秒。 -w, --wait=SECONDS 等待間隔為 SECONDS 秒。 --waitretry=SECONDS 在獲取文件的重試期間等待 1..SECONDS 秒。 --random-wait 獲取多個文件時,每次隨機等待間隔 0.5*WAIT...1.5*WAIT 秒。 --no-proxy 禁止使用代理。 -Q, --quota=NUMBER 設(shè)置獲取配額為 NUMBER 字節(jié)。 --bind-address=ADDRESS 綁定至本地主機上的 ADDRESS (主機名或是 IP)。 --limit-rate=RATE 限制下載速率為 RATE。 --no-dns-cache 關(guān)閉 DNS 查尋緩存。 --restrict-file-names=OS 限定文件名中的字符為 OS 允許的字符。 --ignore-case 匹配文件/目錄時忽略大小寫。 -4, --inet4-only 僅連接至 IPv4 地址。 -6, --inet6-only 僅連接至 IPv6 地址。 --prefer-family=FAMILY 首先連接至指定協(xié)議的地址 FAMILY 為 IPv6,IPv4 或是 none。 --user=USER 將 ftp 和 http 的用戶名均設(shè)置為 USER。 --password=PASS 將 ftp 和 http 的密碼均設(shè)置為 PASS。 --ask-password 提示輸入密碼。 --no-iri 關(guān)閉 IRI 支持。 --local-encoding=ENC IRI (國際化資源標識符) 使用 ENC 作為本地編碼。 --remote-encoding=ENC 使用 ENC 作為默認遠程編碼。 --unlink remove file before clobber. 目錄: -nd, --no-directories 不創(chuàng)建目錄。 -x, --force-directories 強制創(chuàng)建目錄。 -nH, --no-host-directories 不要創(chuàng)建主目錄。 --protocol-directories 在目錄中使用協(xié)議名稱。 -P, --directory-prefix=PREFIX 以 PREFIX/... 保存文件 --cut-dirs=NUMBER 忽略遠程目錄中 NUMBER 個目錄層。 HTTP 選項: --http-user=USER 設(shè)置 http 用戶名為 USER。 --http-password=PASS 設(shè)置 http 密碼為 PASS。 --no-cache 不在服務(wù)器上緩存數(shù)據(jù)。 --default-page=NAME 改變默認頁 (默認頁通常是“index.html”)。 -E, --adjust-extension 以合適的擴展名保存 HTML/CSS 文檔。 --ignore-length 忽略頭部的‘Content-Length'區(qū)域。 --header=STRING 在頭部插入 STRING。 --max-redirect 每頁所允許的最大重定向。 --proxy-user=USER 使用 USER 作為代理用戶名。 --proxy-password=PASS 使用 PASS 作為代理密碼。 --referer=URL 在 HTTP 請求頭包含‘Referer: URL'。 --save-headers 將 HTTP 頭保存至文件。 -U, --user-agent=AGENT 標識為 AGENT 而不是 Wget/VERSION。 --no-http-keep-alive 禁用 HTTP keep-alive (永久連接)。 --no-cookies 不使用 cookies。 --load-cookies=FILE 會話開始前從 FILE 中載入 cookies。 --save-cookies=FILE 會話結(jié)束后保存 cookies 至 FILE。 --keep-session-cookies 載入并保存會話 (非永久) cookies。 --post-data=STRING 使用 POST 方式;把 STRING 作為數(shù)據(jù)發(fā)送。 --post-file=FILE 使用 POST 方式;發(fā)送 FILE 內(nèi)容。 --content-disposition 當(dāng)選中本地文件名時 允許 Content-Disposition 頭部 (尚在實驗)。 --content-on-error output the received content on server errors. --auth-no-challenge 發(fā)送不含服務(wù)器詢問的首次等待 的基本 HTTP 驗證信息。 HTTPS (SSL/TLS) 選項: --secure-protocol=PR choose secure protocol, one of auto, SSLv2, SSLv3, TLSv1, TLSv1_1 and TLSv1_2. --no-check-certificate 不要驗證服務(wù)器的證書。 --certificate=FILE 客戶端證書文件。 --certificate-type=TYPE 客戶端證書類型,PEM 或 DER。 --private-key=FILE 私鑰文件。 --private-key-type=TYPE 私鑰文件類型,PEM 或 DER。 --ca-certificate=FILE 帶有一組 CA 認證的文件。 --ca-directory=DIR 保存 CA 認證的哈希列表的目錄。 --random-file=FILE 帶有生成 SSL PRNG 的隨機數(shù)據(jù)的文件。 --egd-file=FILE 用于命名帶有隨機數(shù)據(jù)的 EGD 套接字的文件。 FTP 選項: --ftp-user=USER 設(shè)置 ftp 用戶名為 USER。 --ftp-password=PASS 設(shè)置 ftp 密碼為 PASS。 --no-remove-listing 不要刪除‘.listing'文件。 --no-glob 不在 FTP 文件名中使用通配符展開。 --no-passive-ftp 禁用“passive”傳輸模式。 --preserve-permissions 保留遠程文件的權(quán)限。 --retr-symlinks 遞歸目錄時,獲取鏈接的文件 (而非目錄)。 WARC options: --warc-file=FILENAME save request/response data to a .warc.gz file. --warc-header=STRING insert STRING into the warcinfo record. --warc-max-size=NUMBER set maximum size of WARC files to NUMBER. --warc-cdx write CDX index files. --warc-dedup=FILENAME do not store records listed in this CDX file. --no-warc-compression do not compress WARC files with GZIP. --no-warc-digests do not calculate SHA1 digests. --no-warc-keep-log do not store the log file in a WARC record. --warc-tempdir=DIRECTORY location for temporary files created by the WARC writer. 遞歸下載: -r, --recursive 指定遞歸下載。 -l, --level=NUMBER 最大遞歸深度 (inf 或 0 代表無限制,即全部下載)。 --delete-after 下載完成后刪除本地文件。 -k, --convert-links 讓下載得到的 HTML 或 CSS 中的鏈接指向本地文件。 --backups=N before writing file X, rotate up to N backup files. -K, --backup-converted 在轉(zhuǎn)換文件 X 前先將它備份為 X.orig。 -m, --mirror -N -r -l inf --no-remove-listing 的縮寫形式。 -p, --page-requisites 下載所有用于顯示 HTML 頁面的圖片之類的元素。 --strict-comments 用嚴格方式 (SGML) 處理 HTML 注釋。 遞歸接受/拒絕: -A, --accept=LIST 逗號分隔的可接受的擴展名列表。 -R, --reject=LIST 逗號分隔的要拒絕的擴展名列表。 --accept-regex=REGEX regex matching accepted URLs. --reject-regex=REGEX regex matching rejected URLs. --regex-type=TYPE regex type (posix|pcre). -D, --domains=LIST 逗號分隔的可接受的域列表。 --exclude-domains=LIST 逗號分隔的要拒絕的域列表。 --follow-ftp 跟蹤 HTML 文檔中的 FTP 鏈接。 --follow-tags=LIST 逗號分隔的跟蹤的 HTML 標識列表。 --ignore-tags=LIST 逗號分隔的忽略的 HTML 標識列表。 -H, --span-hosts 遞歸時轉(zhuǎn)向外部主機。 -L, --relative 只跟蹤有關(guān)系的鏈接。 -I, --include-directories=LIST 允許目錄的列表。 --trust-server-names use the name specified by the redirection url last component. -X, --exclude-directories=LIST 排除目錄的列表。 -np, --no-parent 不追溯至父目錄。
1、使用 wget 下載單個文件
以下的例子是從網(wǎng)絡(luò)下載一個文件并保存在當(dāng)前目錄
在下載的過程中會顯示進度條,包含(下載完成百分比,已經(jīng)下載的字節(jié),當(dāng)前下載速度,剩余下載時間)。
wget http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
2、使用 wget -O 下載并以不同的文件名保存
[root@network test]# wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz [root@network test]# ls wordpress-4.9.4-zh_CN.tar.gz
我們可以使用參數(shù)-O
來指定一個文件名:
wget -O wordpress.tar.gz http://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz wordpress.tar.gz
3、使用 wget -c 斷點續(xù)傳
使用wget -c
重新啟動下載中斷的文件:
對于我們下載大文件時突然由于網(wǎng)絡(luò)等原因中斷非常有幫助,我們可以繼續(xù)接著下載而不是重新下載一個文件
wget -c https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz
4、使用 wget -b 后臺下載
對于下載非常大的文件的時候,我們可以使用參數(shù)-b
進行后臺下載
[root@network test]# wget -b https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz 繼續(xù)在后臺運行,pid 為 1463。 將把輸出寫入至 “wget-log”。
你可以使用以下命令來察看下載進度
[root@network test]# tail -f wget-log 8550K .......... .......... .......... .......... .......... 96% 814K 0s 8600K .......... .......... .......... .......... .......... 97% 9.53M 0s 8650K .......... .......... .......... .......... .......... 98% 86.8M 0s 8700K .......... .......... .......... .......... .......... 98% 145M 0s 8750K .......... .......... .......... .......... .......... 99% 67.4M 0s 8800K .......... .......... .......... .......... .......... 99% 107M 0s 8850K .......... ......... 100% 1.95M=16s 2018-11-10 15:39:07 (564 KB/s) - 已保存 “wordpress-4.9.4-zh_CN.tar.gz.2” [9082696/9082696])
5、偽裝代理名稱下載
有些網(wǎng)站能通過根據(jù)判斷代理名稱不是瀏覽器而拒絕你的下載請求。不過你可以通過–user-agent
參數(shù)偽裝。
6、使用 wget –spider 測試下載鏈接
當(dāng)你打算進行定時下載,你應(yīng)該在預(yù)定時間測試下載鏈接是否有效。我們可以增加–spider
參數(shù)進行檢查。
wget –spider URL 如果下載鏈接正確,將會顯示 wget –spider URL Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response… 200 OK Length: unspecified [text/html] Remote file exists and could contain further links, but recursion is disabled — not retrieving. 這保證了下載能在預(yù)定的時間進行,但當(dāng)你給錯了一個鏈接,將會顯示如下錯誤 wget –spider url Spider mode enabled. Check if remote file exists. HTTP request sent, awaiting response… 404 Not Found Remote file does not exist — broken link!!!
你可以在以下幾種情況下使用spider參數(shù):
- 定時下載之前進行檢查
- 間隔檢測網(wǎng)站是否可用
- 檢查網(wǎng)站頁面的死鏈接
7、使用 wget –tries 增加重試次數(shù)
如果網(wǎng)絡(luò)有問題或下載一個大文件也有可能失敗。wget默認重試20次連接下載文件。如果需要,你可以使用–tries
增加重試次數(shù)。
wget –tries=40 URL
8、使用 wget -i 下載多個文件
首先,保存一份下載鏈接文件 cat > filelist.txt url1 url2 url3 url4 接著使用這個文件和參數(shù)-i下載 wget -i filelist.txt
9、使用 wget –mirror 鏡像網(wǎng)站
wget --mirror --convert-links --adjust-extension --page-requisites --no-parent http://example.org
或者
wget -mkEpnp http://example.org
- --mirror – 遞歸下載給定網(wǎng)站下的所有資源
- --convert-links – 轉(zhuǎn)換絕對鏈接成相對鏈接
- --adjust-extension – 根據(jù)Content-Type調(diào)整文件名,添加合適的文件擴展名
- --page-requisites – 下載依賴的其他CSS, Javascript, Image等資源
- --no-parent – 不下載父級目錄資源
10、使用 wget –reject 過濾指定格式下載
你想下載一個網(wǎng)站,但你不希望下載圖片,你可以使用以下命令。
wget –reject=gif url
11、使用 wget -o 把下載信息存入日志文件
你不希望下載信息直接顯示在終端而是在一個日志文件,可以使用以下命令:
wget -o download.log URL
示例
使用wget -O
下載并以不同的文件名保存(-O:下載文件到對應(yīng)目錄,并且修改文件名稱)
wget -O wordpress.zip http://www.minjieren.com/download.aspx?id=1080
使用wget -b
后臺下載
wget -b http://www.minjieren.com/wordpress-3.1-zh_CN.zip
備注: 你可以使用以下命令來察看下載進度:tail -f wget-log
利用-spider
: 模擬下載,不會下載,只是會檢查是否網(wǎng)站是否好著
[root@localhost ~]# wget --spider www.baidu.com #不下載任何文件
模擬下載打印服務(wù)器響應(yīng)
[root@localhost ~]# wget -S www.baidu.com # 打印服務(wù)器響應(yīng)
設(shè)定指定次數(shù)
[root@localhost ~]# wget -r --tries=2 www.baidu.com (指定嘗試2次,2次后不再嘗試) [root@localhost ~]# wget -r --tries=2 -q www.baidu.com (指定嘗試,且不打印中間結(jié)果)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Centos 6.9環(huán)境下創(chuàng)建用戶及刪除用戶的方法
這篇文章主要介紹了Centos 6.9環(huán)境下創(chuàng)建用戶及刪除用戶的方法,結(jié)合實例形式分析了Centos 6.9創(chuàng)建用戶及刪除用戶相關(guān)的用戶名、密碼創(chuàng)建、刪除及權(quán)限設(shè)置等相關(guān)命令使用方法,需要的朋友可以參考下2018-04-04Ubuntu16.04環(huán)境下搭建FTP服務(wù)器的教程
這篇文章主要介紹了Ubuntu16.04搭建FTP服務(wù)器的教程,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-12-12