A. wget命令詳解wget怎麼使用
前言不論我們使用什麼操作系統,下載軟體都是必不可少的。
什麼?你問為什麼?
簡介
wget是一個下載文件命令行工具。
支持HTTP,HTTPS和FTP協議,可以使用HTTP代理。
支持」遞歸下載」,就是按照頁面HTML鏈接進行逐層級追蹤,實現整站下載功能。
可靠性好,下載失敗會不斷嘗試重新下載,直到整個文件下載完畢。
用法
wget [選項]... [URL]...參數# 啟動: -V, --version 顯示 Wget 的版本信息並退出 -h, --help 列印此幫助 -b, --background 啟動後轉入後台 -e, --execute=命令 運行一個「.wgetrc」風格的命令# 日誌和輸入文件: -o, --output-file=文件 將日誌信息寫入 FILE -a, --append-output=文件 將信息添加至 FILE -d, --debug 列印大量調試信息 -q, --quiet 安靜模式 (無信息輸出) -v, --verbose 詳盡的輸出 (此為默認值) -nv, --no-verbose 關閉詳盡輸出,但不進入安靜模式 --report-speed=類型 以 報告帶寬。類型可以是 bits -i, --input-file=文件 下載本地或外部 中的 URL -F, --force-html 把輸入文件當成 HTML 文件 -B, --base=URL 解析相對於 URL 的 HTML 輸入文件鏈接 (-i -F) --config=文件 指定要使用的配置文件 --no-cookies 不讀取任何配置文件 --rejected-log=文件 將拒絕 URL 的原因寫入 。# 下載: -t, --tries=數字 設置重試次數為 (0 代表無限制) --retry-connrefused 即使拒絕連接也是重試 -O, --output-document=文件 將文檔寫入 FILE -nc, --no-clobber 不要下載已存在將被覆蓋的文件 --no-netrc don't try to obtain credentials from .netrc -c, --continue 斷點續傳下載文件 --start-pos=偏移量 從由零計數的 開始下載 --progress=類型 選擇進度條類型 --show-progress 在任意啰嗦狀態下都顯示進度條 -N, --timestamping 只獲取比本地文件新的文件 --no-if-modified-since 不要在時間戳 (timestamping) 模式下使用if-modified-since get 條件請求 --no-use-server-timestamps 不用伺服器上的時間戳來設置本地文件 -S, --server-response 列印伺服器響應 --spider 不下載任何文件 -T, --timeout=SECONDS 將所有超時設為 SECONDS 秒 --dns-timeout=SECS 設置 DNS 查尋超時為 SECS 秒 --connect-timeout=SECS 設置連接超時為 SECS 秒 --read-timeout=SECS 設置讀取超時為 SECS 秒 -w, --wait=SECONDS 等待間隔為 SECONDS 秒 --waitretry=SECONDS 在獲取文件的重試期間等待 1..SECONDS 秒 --random-wait 獲取多個文件時,每次隨機等待間隔 (0.5~1.5)*WAIT 秒 --no-proxy 禁止使用代理 -Q, --quota=數字 設置獲取配額為 位元組 --bind-address=ADDRESS 綁定至本地主機上的 ADDRESS (主機名或是 IP) --limit-rate=RATE 限制下載速率為 RATE --no-dns-cache 關閉 DNS 查詢緩存 --restrict-file-names=系統 限定文件名中的字元為 允許的字元 --ignore-case 匹配文件/目錄時忽略大小寫 -4, --inet4-only 僅連接至 IPv4 地址 -6, --inet6-only 僅連接至 IPv6 地址 --prefer-family=地址族 首先連接至指定家族(IPv6,IPv4 或 none)的地址 --user=用戶 將 ftp 和 http 的用戶名均設置為 --password=密碼 將 ftp 和 http 的密碼均設置為 --ask-password 提示輸入密碼 --use-askpass=命令 指定用於請求用戶名和密碼的憑據管理器。 如果沒有提供指定命令,程序將使用 WGET_ASKPASS 或SSH_ASKPASS 環境變數。 --no-iri 關閉 IRI 支持 --local-encoding=ENC 使用 ENC 作為 IRI (國際化資源標識符) 的本地編碼 --remote-encoding=ENC 使用 ENC 作為默認遠程編碼 --unlink 覆蓋前移除文件 --no-xattr 不要在文件的拓展屬性中儲存元數據# 目錄: -nd, --no-directories 不創建目錄 -x, --force-directories 強制創建目錄 -nH, --no-host-directories 不要創建主 (host) 目錄 --protocol-directories 在目錄中使用協議名稱 -P, --directory-prefix=前綴 保存文件到 /.. --cut-dirs=數字 忽略遠程目錄中 個目錄層。# HTTP 選項: --http-user=用戶 設置 http 用戶名為 --http-password=密碼 設置 http 密碼為 --no-cache 不使用伺服器緩存的數據。 --default-page=NAME 改變默認頁 (通常是「index.html」)。 -E, --adjust-extension 以合適的擴展名保存 HTML/CSS 文檔 --ignore-length 忽略頭部的『Content-Length』區域 --header=字元串 在頭部插入 --max-redirect 每頁所允許的最大重定向 --proxy-user=用戶 使用 作為代理用戶名 --proxy-password=密碼 使用 作為代理密碼 --referer=URL 在 HTTP 請求頭包含『Referer: URL』 --save-headers 將 HTTP 頭保存至文件。 -U, --user-agent=代理 標識自己為 而不是 Wget/VERSION。 --no-http-keep-alive 禁用 HTTP keep-alive (持久連接)。 --no-cookies 不使用 cookies。 --load-cookies=文件 會話開始前從 中載入 cookies。 --save-cookies=文件 會話結束後保存 cookies 至 FILE。 --keep-session-cookies 載入並保存會話 (非永久) cookies。 --post-data=字元串 使用 POST 方式;把 作為數據發送。 --post-file=文件 使用 POST 方式;發送 內容。 --method=HTTP方法 在請求中使用指定的 。 --post-data=字元串 把 作為數據發送,必須設置 --method --post-file=文件 發送 內容,必須設置 --method --content-disposition 當選擇本地文件名時允許 Content-Disposition 頭部 (實驗中)。 --content-on-error 在伺服器錯誤時輸出接收到的內容 --auth-no-challenge 不先等待伺服器詢問就發送基本 HTTP 驗證信息。# HTTPS (SSL/TLS) 選項: --secure-protocol=PR choose secure protocol, one of auto, SSLv2, SSLv3, TLSv1, TLSv1_1, TLSv1_2 and PFS --https-only 只跟隨安全的 HTTPS 鏈接 --no-check-certificate 不要驗證伺服器的證書。 --certificate=文件 客戶端證書文件。 --certificate-type=類型 客戶端證書類型,PEM 或 DER。 --private-key=文件 私鑰文件。 --private-key-type=類型 私鑰文件類型,PEM 或 DER。 --ca-certificate=文件 帶有一組 CA 證書的文件。 --ca-directory=DIR 保存 CA 證書的哈希列表的目錄。 --ca-certificate=文件 帶有一組 CA 證書的文件。 --pinnedpubkey=文件/散列值 用於驗證節點的公鑰(PEM/DER)文件或 任何數量的 sha256 散列值,以 base64 編碼、 「sha256//」 開頭、用「;」間隔 --random-file=文件 用於初始化 SSL 偽隨機數生成器(PRNG)的文件,應含有隨機數據# HSTS 選項: --no-hsts 禁用 HSTS --hsts-file HSTS 資料庫路徑(將覆蓋默認值)# FTP 選項: --ftp-user=用戶 設置 ftp 用戶名為 。 --ftp-password=密碼 設置 ftp 密碼為 --no-remove-listing 不要刪除『.listing』文件 --no-glob 不在 FTP 文件名中使用通配符展開 --no-passive-ftp 禁用「passive」傳輸模式 --preserve-permissions 保留遠程文件的許可權 --retr-symlinks 遞歸目錄時,獲取鏈接的文件 (而非目錄)# FTPS 選項: --ftps-implicit 使用隱式 FTPS(默認埠 990) --ftps-resume-ssl 打開數據連接時繼續控制連接中的 SSL/TLS 會話 --ftps-clear-data-connection 只加密控制信道;數據傳輸使用明文 --ftps-fallback-to-ftp 回落到 FTP,如果目標伺服器不支持 FTPS# WARC 選項: --warc-file=文件名 在一個 .warc.gz 文件里保持請求/響應數據 --warc-header=字元串 在頭部插入 --warc-max-size=數字 將 WARC 的最大尺寸設置為 --warc-cdx 寫入 CDX 索引文件 --warc-dep=文件名 不要記錄列在此 CDX 文件內的記錄 --no-warc-digests 不要計算 SHA1 摘要 --no-warc-keep-log 不要在 WARC 記錄中存儲日誌文件 --warc-tempdir=目錄 WARC 寫入器的臨時文件目錄# 遞歸下載: -r, --recursive 指定遞歸下載 -l, --level=數字 最大遞歸深度 (inf 或 0 代表無限制,即全部下載)。 --delete-after 下載完成後刪除本地文件 -k, --convert-links 讓下載得到的 HTML 或 CSS 中的鏈接指向本地文件 --convert-file-only 只轉換 URL 的文件部分(一般叫做「基礎名」/basename) --backups=N 寫入文件 X 前,輪換移動最多 N 個備份文件 -K, --backup-converted 在轉換文件 X 前先將它備份為 X.orig。 -m, --mirror -N -r -l inf --no-remove-listing 的縮寫形式。 -p, --page-requisites 下載所有用於顯示 HTML 頁面的圖片之類的元素。 --strict-comments 用嚴格方式 (SGML) 處理 HTML 注釋。# 遞歸接受/拒絕: -A, --accept=列表 逗號分隔的可接受的擴展名列表 -R, --reject=列表 逗號分隔的要拒絕的擴展名列表 --accept-regex=REGEX 匹配接受的 URL 的正則表達式 --reject-regex=REGEX 匹配拒絕的 URL 的正則表達式 --regex-type=類型 正則類型 (posix|pcre) -D, --domains=列表 逗號分隔的可接受的域名列表 --exclude-domains=列表 逗號分隔的要拒絕的域名列表 --follow-ftp 跟蹤 HTML 文檔中的 FTP 鏈接 --follow-tags=列表 逗號分隔的跟蹤的 HTML 標識列表 --ignore-tags=列表 逗號分隔的忽略的 HTML 標識列表 -H, --span-hosts 遞歸時轉向外部主機 -L, --relative 僅跟蹤相對鏈接 -I, --include-directories=列表 允許目錄的列表 --trust-server-names 使用重定向 URL 的最後一段作為本地文件名 -X, --exclude-directories=列表 排除目錄的列表 -np, --no-parent 不追溯至父目錄實例演示一、下載單個文件
比如這里我們下載Nginx源碼包。
下載完成,過程中會顯示進度條及基本連接、大小等信息。
如果重復下載,則會在文件名後面追加.1 .2 .n
上面是下載三次後的結果。
二、wget -c斷點續傳
-c這個參數,常用於大文件的追加下載(沒錯,就是那種動輒幾個G的文件)。
比如網路等原因,導致正則下載的文件突然中斷,此時我們就可以使用wget -c 文件地址重新啟動下載,進度會直接按照上次中斷時的狀態開始。
由於我這里沒有那種大文件,所以暫時拿linux內核源碼包給大家做個演示:
首先看下,如果不加 -c參數,上面的14%我強制停止了,後面則又會從0%開始重新下載。
如上圖,當我加上-c 參數後,則會繼續從上一次的文件狀態接著下載。從返回的長度後跟著的剩餘信息也可以看出。
這里放下內核源碼包下載地址:
https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.13.1.tar.xz,有需要而又沒有大文件的同學可以自己試試。
三、wget -O 另存下載
在我們日常使用瀏覽器中滑鼠右鍵下載圖片,基本都會有「右鍵另存下載」的選項。
沒錯,wget -O就是干這個事的。
如果默認的不加-O 參數,則會將文件以原名下載到執行命令的當前目錄下,文件名如我在一中所說,重復則會在後面追加序號。
下面我們將Nginx源碼,另起一個名字,放在當前文件夾的子目錄,nginx_test中:
ok,沒毛病。
四、wget -b 後台下載
有時候我們在下載的時候,因為條件所限,不能開多窗口或其他原因,但是又不想去等待wget下載完成,這個-b 參數就派上用場了。
這里還是以Linux內核源碼為例:
從上圖可以看到,運行之後,直接結束,告訴我們將繼續在後台運行。
現在我們使用 tail -f 來查看下它的下載狀態:(有關tail命令的詳解,可以參考:Linux tail命令詳解)
可以看到,正在下載中。
總結
wget 是一個非常有用的命令,希望大家能掌握。
我這里只演示了日常工作中常用的幾個參數實例,其他的用法大家可以自行對照參數表測試。
B. 安裝的linux在使用 wget 命令時,提示我沒有wget命令怎麼辦
直接用代碼:[root@localhost ~]# yum -y install wget即可。
1、wget 是一個從網路上自動下載文件的自由工具,支持通過 HTTP、HTTPS、FTP 三個最常見的TCP/IP協議下載,並可以使用 HTTP 代理。"wget" 這個名稱來源於 「World Wide Web」 與 「get」 的結合。
2、wget可以使用用態賣戶設置文件".wgetrc"來讀取很多設置,我們這里主要利用這個文件來是設置代理伺服器。使用者用什麼用戶登錄,那麼什麼用戶主目錄下的".wgetrc"文件就起作用。
3、例如,"root"用戶如果想使用".wgetrc"來設置代理伺服器,"/root/.wgetrc"就或純起作用,下面給出一個".wgetrc"文件的內容,讀者可以參照這個例子來編寫自己的"wgetrc"文件:
http-proxy=111.111.111.111:8080
ftp-proxy=111.111.111.111:8080
這兩行的含義是,代理伺服器IP地址為:111.111.111.111,埠號為:8080。第一行指定HTTP協議所使用的代理服務衫閉咐器,第二行指定FTP協議所使用的代理伺服器。
C. linux用wget下載的文件放在什麼地方
使用wget在Linux中下載的文件通常被保存在執行wget命令時的當前工作目錄中。
在Linux操作系統中,wget是一個常用的命令行工具,用於從網路上下載文件。當你使用wget下載文件時,文件會被保存在你執行wget命令時所在的目錄中,也就是當前的工作目錄。這個目錄可以是任何你在終端中導航到的位置。
例如,如果你在終端中進入了“~/Downloads”目錄,然後執行wget命令下載一個文件,那麼這個文件就會被保存在“~/Downloads”目錄中。
要確定wget下載的文件位置,你可以檢查執行wget命令時的路徑。在終端中,你可以使用`pwd`命令來查看當前工作目錄。例如,如果你在“~/Documents”目錄中執行wget,那麼下載的文件就會保存在這個目錄中。
總的來說,wget下載的文件位置取決於你執行命令時的當前工作目錄。為了方便管理,建議在使用wget下載文件前,先導航到你希望保存文件的目錄。如果需要,你也可以在wget命令中使用“-O”參數來指定一個不同的保存路徑和文件名。例如,`wget -O ~/my_custom_folder/myfile.zip http://example.com/myfile.zip` 這條命令會將文件下載到“~/my_custom_folder”目錄中,並將其命名為“myfile.zip”。
D. linux 中怎麼沒有wget命令,該怎麼辦啊
裝個快車forlinux,下載東西更好用。如果是下載軟體包之類的,ubuntu的有apt,軟體源,fedora的有yum,