命令: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
|