歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix資訊

簡化Unix操作系統上網

在以前看過的一篇“對話 Unix操作系統” 中推薦使用 wget 從命令行直接下載文件。在Unix操作系統中在無法使用 Web 浏覽器的情況下,在 Unix操作系統shell 腳本中使用 wget 是非常合適的。例如,如果要在遠程服務器上安裝新軟件,wget 確實可以節省時間。

如果您喜歡 wget,也一定會喜歡 cURL。與 wget 一樣,cURL 可以下載文件,但是它還可以向 Web 頁面表單提交數據、通過 File Transfer Protocol (FTP) 上傳文件、作為代理、設置 Hypertext Transfer Protocol (HTTP) 頭等等。cURL 在許多方面可以作為浏覽器和其他客戶機的命令行替代品。因此,它有許多潛在的應用。

通過Unix操作系統常用的 ./configure && make && sudo make install 過程構建 cURL 實用程序。下載、解壓並處理:

  1. $ wget http://curl.haxx.se/download/curl-7.19.4.tar.gz  
  2. $ tar xzf curl-7.19.4.tar.gz  
  3. $ cd curl-7.19.4  
  4. $ ./configure && make && sudo make install 

cURL 實用程序有很多選項,最好通讀它的手冊頁。下面是一些常見的 cURL 用法:

為了下載一個文件(比如 cURL tarball 本身),使用:
$ curl -o curl.tgz http://curl.haxx.se/download/curl-7.19.4.tar.gz

與 wget 不同,cURL 把它下載的東西發送到 stdout。使用 -o 選項把下載的東西保存到指定的文件。

為了下載大量文件,可以提供序列、集或同時提供這兩者。序列 是放在方括號([])中的一個數字范圍;集 是放在花括號({})中的逗號分隔的列表。例如,下面的命令從目錄 archive1996/vol1 到 archive1999/vol4(含)下載名為 parta.html、partb.html 和 partc.html 的所有文件,共有 48 個文件。

  1. $ curl http://any.org/archive[1996-1999]/vol[1-4]/part{a,b,c}.html \  
  2.  -o "archive#1_vol#2_part#3.html" 

在指定序列或集時,可以提供 -o 選項和一個模板,模板中的 #1 替換為第一個序列或集的當前值,#2 是第二個序列或集的占位符,以此類推。另外,還可以提供 -O 選項以保持每個文件名不變。

為了把一組圖像上傳到Unix操作系統服務器,可以使用 -T 選項:

$ curl -T "img[1-1000].png" ftp://ftp.example.com/upload/
在這裡,把 img[1-1000].png 放在引號中,以避免 shell 解釋它。這個命令把 img1.png 到 img1000.png 上傳到指定的服務器和路徑。

Unix操作系統甚至可以用 cURL 在詞典中查找單詞:

  1. $ curl dict://dict.org/d:stalwart  
  2. 220 miranda.org dictd 1.9.15/rf on Linux 2.6.26-bpo.1-686   
  3. <auth.mime> <[email protected]
  4. 250 ok  
  5. 150 1 definitions retrieved  
  6. 151 "Stalwart" gcide "The Collaborative International Dictionary of English v.0.48"  
  7. Stalwart \Stal"wart\ (st[o^]l"w[~e]rt or st[add]l"-; 277),  
  8. Stalworth \Stal"worth\ (-w[~e]rth), a. [OE. stalworth, AS.  
  9. staelwyr[eth] serviceable, probably originally, good at  
  10. stealing, or worth stealing or taking, and afterwards  
  11. extended to other causes of estimation. See {Steal}, v. t.,  
  12. {Worth}, a.]  
  13. Brave; bold; strong; redoubted; daring; vehement; violent. "A  
  14. stalwart tiller of the soil." --Prof. Wilson.  
  15. [1913 Webster]  
  16.  
  17. Fair man he was and wise, stalworth and bold. --R. of  
  18. Brunne.  
  19. [1913 Webster]  
  20.  
  21. Note: Stalworth is now disused, or but little used, stalwart  
  22. having taken its place.  
  23. [1913 Webster]  
  24. .  
  25. 250 ok [d/m/c = 1/0/20; 0.000r 0.000u 0.000s]  
  26. 221 bye [d/m/c = 0/0/0; 0.000r 0.000u 0.000s]  
  27.  

把單詞 stalwart 替換為您要查找的單詞。

除了通過命令行使用之外,還可以通過 Unix操作系統libcurl 庫使用 cURL 的所有功能。許多編程語言包含 libcurl 的接口,可以自動執行通過 FTP 傳輸文件等任務。例如,下面的 PHP 片段使用 libcurl 把通過表單上傳的文件存放到 FTP 服務器上:

  1. ...  
  2. $ch = curl_init();  
  3. $localfile = $_FILES['upload']['tmp_name'];  
  4. $fp = fopen($localfile, 'r');  
  5. curl_setopt($ch, CURLOPT_URL,   
  6. 'ftp://ftp_login:[email protected]/'.$_FILES['upload']['name']);  
  7. curl_setopt($ch, CURLOPT_UPLOAD, 1);  
  8. curl_setopt($ch, CURLOPT_INFILE, $fp);  
  9. curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));  
  10. curl_exec ($ch);  
  11. $error_no = curl_errno($ch);  
  12. curl_close ($ch);  
  13.  ...  
  14. ?> 

如果必須自動執行任何 Web 訪問,可以考慮使用 cURL。大家可以看出Unix操作系統中,使用 cURL 在 Internet 上做各種事情。這給我們帶來了很大的方便。讓我們一起運用 cURL吧。

Copyright © Linux教程網 All Rights Reserved