在远程服务器或者本地工作时,您可能经常需要从外部源获取内容。要获得这样的内容,特别是当您没有其他选项时,您将需要使用Linux命令行工具来完成这项工作。
在本文中,我们将回顾一些最常用的通过Linux下命令行下载内容的工具。
测试环境为Ubuntu 18.04 LTS
Wget我们将从一个名为wget的最流行的工具开始。它是一个网络实用程序,可用于通过HTTP,HTTPS和FTP下载内容。 Wget可以在后台和前台使用,这使得它在您需要保持下载运行时非常有用,即使您已经注销了。
这个工具提供了很多选项,允许您执行经过身份验证的下载、具有级别限制的递归下载、接受URL的正则表达式、允许排除、接受来自文件的URL输入以及其他许多选项。wget的选项真的很多,强烈建议通过简单的运行来查看工具的帮助页面。
linuxidc@linuxidc:~/linuxidc.com$ wget -h
GNU Wget 1.19.4,非交互式的网络文件下载工具。
用法: wget [选项]... [URL]...
长选项所必须的参数在使用短选项时也是必须的。
启动:
-V, --version 显示 Wget 的版本信息并退出
-h, --help 打印此帮助
-b, --background 启动后转入后台
-e, --execute=命令 运行一个“.wgetrc”风格的命令
wget命令的一些有用示例是:
wget最基本的下载示例是:
linuxidc@linuxidc:~/linuxidc.com$ wget https://linux.linuxidc.com/linuxidc.com.zip
--2019-03-24 12:31:20-- https://linux.linuxidc.com/linuxidc.com.zip
正在解析主机 linux.linuxidc.com (linux.linuxidc.com)... 60.191.177.106
正在连接 linux.linuxidc.com (linux.linuxidc.com)|60.191.177.106|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度: 10653910 (10M) [application/x-zip-compressed]
正在保存至: “linuxidc.com.zip”
linuxidc.com.zip 100%[===================>] 10.16M 4.54MB/s 用时 2.2s
2019-03-24 12:31:22 (4.54 MB/s) - 已保存 “linuxidc.com.zip” [10653910/10653910])
从文件中列出的URL下载的示例。 首先是我们的文件列表:
linuxidc@linuxidc:~/linuxidc.com$ cat list.txt
https://linux.linuxidc.com/linuxidc.com.gz
https://linux.linuxidc.com/linuxidc.com.zip
https://www.linuxidc.com/index.htm
然后你可以运行下载:
linuxidc@linuxidc:~/linuxidc.com$ wget -i list.txt
要在后台运行下载,您可以使用:
linuxidc@linuxidc:~/linuxidc.com$ wget -b https://linux.linuxidc.com/linuxidc.com.gz
继续在后台运行,pid 为 3131。
将把输出写入至 “wget-log.1”。
如果要使用wget和FTP下载单个文件。
$ wget ftp://user:password@host:/www.linuxidc.com/linuxidc.txt
一个更有用的例子是使用后台和递归模式,这样你就可以获得目录中的所有文件和文件夹。
$ wget -br ftp://user:password@ftp-host:/linuxidc.com/
Wget预装在许多现代Linux发行版上,但是如果你需要安装它,你可以使用:
$ sudo apt install wget # Debian/Ubuntu like distros
# yum install wget # CentOS/RHEL
# dnf install wget # Fedora
curl是一种可用于从服务器传输数据或向服务器传输数据的工具。它支持多种协议。根据其手册页,支持以下协议:DICT,FILE,FTP,FTPS,GOPHER,HTTP,HTTPS,IMAP,IMAPS,LDAP,LDAPS,POP3,POP3S,RTMP,RTSP,SCP,SFTP,SMB,SMBS,SMTP ,SMTPS,TELNET和TFTP。
你可以想象,你可以用这些来做很多事情。正如你可能已经想到的那样,curl支持代理,用户身份验证,FTP上传/下载,文件传输恢复等等。
以下是使用curl的一些示例:
下载文件: