在Linux中,我们经常会涉及到下载一些文件、软件压缩包之类的,在黑黑的终端下可不像桌面浏览器那样子,打开浏览器就可以选择保存地址,终端下都是使用命令来搞定的。
1、curl
curl是利用URL语法在命令行方式下工作的开源文件传输工具。它被广泛应用在Unix、多种Linux发行版中。
curl 支持 HTTP、HTTPS、FTP 等协议,还支持 POST、cookies、认证、从指定偏移处下载部分文件、User-Agent、限速、文件大小、进度条等特征。
- | - |
---|---|
-A 或 --user-agent | 设置用户代理 |
-b 或 --cookie | cookie 字符串或文件读取位置 |
-c 或 --cookie-jar | 操作结束后把 cookie 写入文件 |
--basic | 使用 HTTP 基本验证 |
-d 或 --data | POST 方式传送数据 |
--data-ascii | 以 ASCII 的方式 POST 数据 |
--data-binary | 以二进制的方式 POST 数据 |
--tcp-nodelay | 使用 TCP_NODELAY 选项 |
-e 或 --referer | 来源网址 |
-E 或 --cert | 客户端证书文件和密码 (SSL) |
--cert-type | 证书文件类型 (DER/PEM/ENG) (SSL) |
--key | 私钥文件名 (SSL) |
--key-type | 私钥文件类型 (DER/PEM/ENG) (SSL) |
--pass | 私钥密码 (SSL) |
--engine | 加密引擎使用 (SSL) |
--cacert | CA 证书 (SSL) |
--capath | CA 路径 |
--ciphers | SSL 密码 |
-F 或 --form | 模拟 HTTP 表单提交数据 |
--form-string | 模拟 HTTP 表单提交数据 |
-H 或 --header | 自定义头信息传递给服务器 |
-I 或 --head | 只显示请求头信息 |
-T 或 --upload-file | 上传文件 |
-o 或 --output | 把输出写到文件中 |
-O 或 --remote-name | 把输出写到文件中,保留远程文件的文件名 |
-s 或 --silent | 静默模式。不输出任何东西 |
curl命令很强大,下面是下载的功能
curl https://mirrors.aliyun.com/archlinux/iso/2017.11.01/archlinux-2017.11.01-x86_64.iso -O /tmp/archlinux.iso
2、多线程下载axel
axel是Linux下一个不错的HTTP/ftp高速下载工具。支持多线程下载、断点续传,且可以从多个地址或者从一个地址的多个连接来下载同一个文件。适合网速不给力时多线程下载提高下载速度。
axel 参数 文件下载地址 常用的参数: -n 指定线程数 -o 指定另存为目录 -s 指定每秒的最大比特数 -q 静默模式
例子:
axel -n 10 https://mirrors.aliyun.com/archlinux/iso/2017.11.01/archlinux-2017.11.01-x86_64.iso
需要更多高级功能可以查看帮助!
axel --help
3、aria2
aria2开源命令行下载加速器,支持多个端口,你可以使用最大带宽来下载文件,是一款易于安装、易于使用的工具。
例子:
aria2c https://mirrors.aliyun.com/archlinux/iso/2017.11.01/archlinux-2017.11.01-x86_64.iso
4、wget
wget是最常用的工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载。
wget 用于下载文件,支持断点续传。
有时候看到别人网站的页面比较漂亮,就想给扒皮下来,学习学习。分享一个我常用网站扒皮命令wget 这个命令可以以递归的方式下载整站,并可以将下载的页面中的链接转换为本地链接。
wget加上参数之后,即可成为相当强大的下载工具。
wget命令详解:
wget -r -p -np -k http://xxx.com/xxx
-a<日志文件>:在指定的日志文件中记录资料的执行过程;
-A<后缀名>:指定要下载文件的后缀名,多个后缀名之间使用逗号进行分隔;
-b:进行后台的方式运行wget;
-B<连接地址>:设置参考的连接地址的基地地址;
-c:继续执行上次终端的任务;
-C<标志>:设置服务器数据块功能标志on为激活,off为关闭,默认值为on;
-d:调试模式运行指令;
-D<域名列表>:设置顺着的域名列表,域名之间用“,”分隔;
-e<指令>:作为文件“.wgetrc”中的一部分执行指定的指令;
-h:显示指令帮助信息;
-i<文件>:从指定文件获取要下载的URL地址;
-l<目录列表>:设置顺着的目录列表,多个目录用“,”分隔;
-L:仅顺着关联的连接;
-r:递归下载方式;
-nc:文件存在时,下载文件不覆盖原有文件;
-nv:下载时只显示更新和出错信息,不显示指令的详细执行过程;
-q:不显示指令执行过程;
-nh:不查询主机名称;
-v:显示详细执行过程;
-V:显示版本信息;
--passive-ftp:使用被动模式PASV连接FTP服务器;
--follow-ftp:从HTML文件中下载FTP连接文件。
另外断点续传用-nc参数 日志 用-o参数
wget直接加上URL就可以直接下载啦!
wget https://mirrors.aliyun.com/archlinux/iso/2017.11.01/archlinux-2017.11.01-x86_64.iso
默认就是存在当前的路径,如果需要另存路径可以使用-O参数,重命名
wget -O /home/isos/archlinux.iso https://mirrors.aliyun.com/archlinux/iso/2017.11.01/archlinux-2017.11.01-x86_64.iso
下载大的文件,下载到一半断网了怎么办?推荐使用-c参数,可以断点续传下载文件。
wget -c -O /home/isos/archlinux.iso https://mirrors.aliyun.com/archlinux/iso/2017.11.01/archlinux-2017.11.01-x86_64.iso
我们可以执行 Ctrl+ C,来模拟网络中断,然后再次执行上述命令,即可看到从终止点继续下载,而不是从头从新下载。
[root@localhost www.ck.com]# curl -O -c 4.zip http://down.golaravel.com/laravel/laravel-master.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 0 7622k 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0^C [root@localhost www.ck.com]# curl -O -c 4.zip http://down.golaravel.com/laravel/laravel-master.zip % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 7622k 100 7622k 0 0 6978k 0 0:00:01 0:00:01 --:--:-- 6980k
本文为崔凯原创文章,转载无需和我联系,但请注明来自冷暖自知一抹茶ckhttp://www.cksite.cn