Linux:wget指令
學習自:linux系統安裝.tar.gz文件,Linux中下載、解壓、安裝.tar.gz文件
1、說明
wget命令是Linux系統用于從Web下載文件的命令行工具,支持 HTTP、HTTPS及FTP協議下載文件, 而且wget還提供了很多選項,例如下載多個文件、后臺下載,使用代理等等,使用非常方便。
如果沒有安裝wget,可以通過以下指令安裝:
yum -y install wget
wget下載的包一般放在 ~/download目錄下
補充:①wget可以直接用于兩個Linux操作系統之間的文件傳輸;
2、用法:
wget [選項] url
一些常用URL的獲取地址(找到要下載的文件,右鍵復制鏈接地址,這就是URL):
tomcat:https://tomcat.apache.org/download-80.cgi中archives,找到對應版本,進入Bin目錄下,下載tar.gz
Java網址:https://www.oracle.com/java/technologies/downloads/#java8
nginx:http://nginx.org/en/download.html
3、選項與參數
常用版(加粗的代表最常用的)
選項 |
說明 |
用法 |
| -o | 將下載信息存入日志文件 | wget -o download.log url |
| -O | 另存為其他名字 | wget -O name url |
| -P | 另存為其他目錄 | wget -P /home/ym url |
| -c |
斷點續傳 當文件較大,網絡斷開且下載未完成時,使用-c可以恢復下載,無需從頭開始 |
wget -c url |
| -b |
后臺下載 下載日志重定向到當前目錄下的wget-log文件,使用`tail -f wget-log`查看 |
wget -b url |
| -i |
下載多個文件 |
wget -i list.txt
在txt中添加多行url,即可依次下載這些文件 |
| --limit-rate | 限制下載速度 |
wget --limit-rate=1m url 下載速度限制為1m/s |
| -Q | 限制總下載大小 (只有在下載多個文件時生效) |
wget -Q5m -i list.txt 依次下載多個文件,下載總大小超過5m時停止 |
| --tries | 增加重試次數 | wget --tries=30 url |
| ftp-url | 匿名ftp下載 | wget ftp-url |
|
--ftp-user --ftp-password |
從受密碼保護的FTP服務器下載文件,需要指定用戶名和密碼 | wget --ftp-user=USERNAME --ftp-password=PASSWORD url |
完整版
-V, --version 顯示wget的版本后退出 -h, --help 打印語法幫助 -b, --background 啟動后轉入后臺執行 -e, --execute=COMMAND 執行`.wgetrc'格式的命令,wgetrc格式參見/etc/wgetrc或~/.wgetrc * 記錄和輸入文件 -o, --output-file=FILE 把記錄寫到FILE文件中 -a, --append-output=FILE 把記錄追加到FILE文件中 -d, --debug 打印調試輸出 -q, --quiet 安靜模式(沒有輸出) -v, --verbose 冗長模式(這是缺省設置) -nv, --non-verbose 關掉冗長模式,但不是安靜模式 -i, --input-file=FILE 下載在FILE文件中出現的URLs -F, --force-html 把輸入文件當作HTML格式文件對待 -B, --base=URL 將URL作為在-F -i參數指定的文件中出現的相對鏈接的前綴 --sslcertfile=FILE 可選客戶端證書 --sslcertkey=KEYFILE 可選客戶端證書的KEYFILE --egd-file=FILE 指定EGD socket的文件名 * 下載 --bind-address=ADDRESS 指定本地使用地址(主機名或IP,當本地有多個IP或名字時使用) -t, --tries=NUMBER 設定最大嘗試鏈接次數(0 表示無限制). -O --output-document=FILE 把文檔寫到FILE文件中 -nc, --no-clobber 不要覆蓋存在的文件或使用.#前綴 -c, --continue 接著下載沒下載完的文件 --progress=TYPE 設定進程條標記 -N, --timestamping 不要重新下載文件除非比本地文件新 -S, --server-response 打印服務器的回應 --spider 不下載任何東西 -T, --timeout=SECONDS 設定響應超時的秒數 -w, --wait=SECONDS 兩次嘗試之間間隔SECONDS秒 --waitretry=SECONDS 在重新鏈接之間等待1...SECONDS秒 --random-wait 在下載之間等待0...2*WAIT秒 -Y, --proxy=on/off 打開或關閉代理 -Q, --quota=NUMBER 設置下載的容量限制 --limit-rate=RATE 限定下載輸率 * 目錄 -nd --no-directories 不創建目錄 -x, --force-directories 強制創建目錄 -nH, --no-host-directories 不創建主機目錄 -P, --directory-prefix=PREFIX 將文件保存到目錄 PREFIX/... --cut-dirs=NUMBER 忽略 NUMBER層遠程目錄 * HTTP 選項 --http-user=USER 設定HTTP用戶名為 USER. --http-passwd=PASS 設定http密碼為 PASS. -C, --cache=on/off 允許/不允許服務器端的數據緩存 (一般情況下允許). -E, --html-extension 將所有text/html文檔以.html擴展名保存 --ignore-length 忽略 `Content-Length'頭域 --header=STRING 在headers中插入字符串 STRING --proxy-user=USER 設定代理的用戶名為 USER --proxy-passwd=PASS 設定代理的密碼為 PASS --referer=URL 在HTTP請求中包含 `Referer: URL'頭 -s, --save-headers 保存HTTP頭到文件 -U, --user-agent=AGENT 設定代理的名稱為 AGENT而不是 Wget/VERSION. --no-http-keep-alive 關閉 HTTP活動鏈接 (永遠鏈接). --cookies=off 不使用 cookies. --load-cookies=FILE 在開始會話前從文件 FILE中加載cookie --save-cookies=FILE 在會話結束后將 cookies保存到 FILE文件中 * FTP 選項 -nr, --dont-remove-listing 不移走 `.listing'文件 -g, --glob=on/off 打開或關閉文件名的 globbing機制 --passive-ftp 使用被動傳輸模式 (缺省值). --active-ftp 使用主動傳輸模式 --retr-symlinks 在遞歸的時候,將鏈接指向文件(而不是目錄) * 遞歸下載 -r, --recursive 遞歸下載--慎用! -l, --level=NUMBER 最大遞歸深度 (inf 或 0 代表無窮). --delete-after 在現在完畢后局部刪除文件 -k, --convert-links 轉換非相對鏈接為相對鏈接 -K, --backup-converted 在轉換文件X之前,將之備份為 X.orig -m, --mirror 等價于 -r -N -l inf -nr. -p, --page-requisites 下載顯示HTML文件的所有圖片 * 遞歸下載中的包含和不包含(accept/reject) -A, --accept=LIST 分號分隔的被接受擴展名的列表 -R, --reject=LIST 分號分隔的不被接受的擴展名的列表 -D, --domains=LIST 分號分隔的被接受域的列表 --exclude-domains=LIST 分號分隔的不被接受的域的列表 --follow-ftp 跟蹤HTML文檔中的FTP鏈接 --follow-tags=LIST 分號分隔的被跟蹤的HTML標簽的列表 -G, --ignore-tags=LIST 分號分隔的被忽略的HTML標簽的列表 -H, --span-hosts 當遞歸時轉到外部主機 -L, --relative 僅僅跟蹤相對鏈接 -I, --include-directories=LIST 允許目錄的列表 -X, --exclude-directories=LIST 不被包含目錄的列表 -np, --no-parent 不要追溯到父目錄
4、如何判斷某個web服務器、網頁上的資源可否用wget進行遠程下載
核心是檢查URL可訪問性和服務器的響應行為。
1)curl -I分析服務器響應
如果wget下載失敗,可以用curl -I查看服務器返回的HTTP頭信息:
curl -I https://example.com/目標資源路徑 # -I 僅顯示響應頭
關鍵響應頭解析:
- HTTP/1.1 200 OK:資源存在且允許訪問;
- Content-Type:如果是application/octet-stream、application/zip等,通常是可下載的文件;如果是text/html但瀏覽器顯示文件內容,也可下載。
- Content-Disposition:attachment;filename="file.zip":服務器明確提示“該資源為附件,建議下載”,可以直接用wget保存;
- Location:...:表示資源被重定向,wget默認會跟隨重定向(可通過--max-redirect控制),但如果重定向到登錄頁則無法下載。
2)直接訪問
①瀏覽器
直接將URL復制到瀏覽器地址欄,觀察能否正常下載或顯示資源:
- 如果瀏覽器可以直接下載(zip、tar.gz)或顯示文本內容(txt、html),說明URL可訪問
- 如果顯示404、403、500等狀態碼,說明資源無法直接訪問。
②wget直接測試(最直接)
在終端執行wget命令嘗試下載,根據輸出判斷結果:
wget https://example.com/目標資源路徑 # 替換為實際 URL
通常會有幾種結果:
- 成功下載:200 OK
輸出類似如下內容,顯示文件大小、下載進度,最終提示100%和保存路徑:
HTTP request sent, awaiting response... 200 OK Length: 123456 (120K) [application/zip] Saving to: ‘file.zip’ 100%[======================================>] 123,456 500KB/s in 0.2s 2023-10-01 12:34:56 (500 KB/s) - ‘file.zip’ saved [123456/123456]
- 訪問被拒絕(403 Forbidden)
輸出包含403 Forbidden,表示服務器拒絕該請求(可能由于權限、IP限制、User-Agent過濾等):
HTTP request sent, awaiting response... 403 Forbidden 2023-10-01 12:34:56 ERROR 403: Forbidden.
可以嘗試加模擬header信息重試(以下為舉例,實際可能有差異):
wget --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36" https://example.com/目標資源路徑
- 文件未找到(404 Not Found)
URL對應的資源不存在
HTTP request sent, awaiting response... 404 Not Found 2023-10-01 12:34:56 ERROR 404: Not Found.

浙公網安備 33010602011771號