Linux curl brew命令詳解


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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM