linux 系统下载安装文件命令的差异

本贴最后更新于 1312 天前,其中的信息可能已经时异事殊

如果有这么一个需求,让你在linux系统里面下载一个文件,然后安装,你会想到哪些命令呢?相信很多人都会想到,直接使用yum或者apt-get命令。这两个命令虽然很方便也很快捷,但是存在一个问题,如果这个Linux系统发行方没有提供你需需要的工具的安装原文件,那这两个命令是无法安装对应的软件的。那除了这两个命令之外,你还会想到其他什么命令呢?哪你可能就会想到wget或curl命令了。对,这两个命令也是大家比较常用的,在Linux系统里面来下载源文件,然后进行安装的命令,那这一下子就出来了4个命令,那这4个命令之间他们有什么区别点呢?

curl

Curl(CommandLine URL)是linux中比较强大的一个文件上传下载的工具。使用URL的语法进行数据的传输或者文件的传输。在现在大多数的Linux系统中,已经自带了这个命令,无需安装,直接可以使用。

我们可以在命令行中输入 curl --help,来查看帮助信息。

curl20210518151739.png

我们可以看到它的参数非常多,也就是说它的功能非常的强大,可以使用不同的参数实现不同的功能。这么多的参数,是不是所有的参数都需要掌握呢,并不是,我们只需要掌握其中一些常用的就可以了,当你不知道怎么用的时候可以通过 --help来查看帮助文档即可。

参数 用法
-o / --output 把结果输出到指定文件
-O / --remote-name 把输出写入该文件中并保留远程文件的文件名
-T / --upload-file 上传文件
-u / --useruser[:password] 使用用户名和密码
-A / --user-agent 模拟浏览器设置ua访问
-c / --cookie-jar 操作结束后,把cookie写入到文件中
-C / --continue-at 断点续传
-D / --dump-header 把header的信息写入到文件
-x / --proxyhost[:port] 在给定的端口上使用HTTP代理
-# / --progress-bar 进度条显示传输状态

常用案例

  1. 直接访问某个地址
curl https://www.baidu.com
# 访问地址,不下载

curl20210518153908.png

  1. 访问地址并重新保存到指定文件
curl https://www.baidu.com >> baidu.html
# 或者
curl -o baidu_homepage.html https://www.baidu.com

curl20210518154317.png

  1. 使用代理方式访问
curl -x 192.168.x.x:port http://www.lemonban.com

curl20210518155214.png

  1. 模拟浏览器访问
curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36 Edg/90.0.818.62" https://www.baidu.com

curl20210518155847.png

  1. 断点续传,可以从断点继续开始下载
curl -C 3 -o jmeter.tar.gz https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz

curl20210518160704.png

wget

wget也是Linux下常用于文件上下传的一个工具,它开放源代码,但是要在Linux中使用这个命令必须先安装。

# centos wget安装
yum install wget -y

# ubuntu wget安装
apt-get install wget -y

我们也可以使用 wget --help来获得帮助

wget20210518161419.png

如果你使用了Linux系统,安装了中文字符集编码,通过这个帮助文档是可以直接看到中文帮助信息的。这对于学习人员来说学习起来会相对更加容易一些。

参数 用法
-o,--output-file=FILE 将日志写入文件
-O,--output-document=FILE 重命名文件下载
-t,--tries=NUM 设置失败重试次数
-c,--continue 断点续传
-T,--timeout=sec 设置超时时间
--connect-timeout=sec 设置连接超时时间
--read-timeout=sec 设置读取超时时间
-r, --recursive 指定递归下载
-l, --level=NUM 最大递归深度

常用案例

  1. 下载文件,以文件名称保存文件。
wget https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz

wget20210518164625.png

  1. 下载文件,以自定义名称保存文件。
wget -O jmeter.tgz https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz

wget20210518164737.png

  1. 断点续传下载文件
wget -c https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz

wget20210518165105.png

  1. 后台寂寞方式下载文件。
wget -b https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz

wget20210518165316.png

  1. 指定重试次数下载
wget -t 2 https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz

wget20210518170127.png

rpm

rpm(redhat package manager) 是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎,平时大家使用的centos系统,就是 red hat的发行版本,所以使用rpm命令来安装文件比较常见。

rpm的功能非常强大,也可以使用 rpm--heep 来获得帮助信息

rpm20210518170928.png

我们最常用的可能的有 rpm -ivh xx.x.rpmrpm -Uvh xx.x.rpm ,那这个里面的几个参数分别是代表什么意思呢?

参数 用法
-i,--install 安装软件包,后面可以直接跟上包的文件,也可以跟上包的地址
-U, --upgrade 升级软件包,后面可以直接跟上包的文件,也可以跟上包的地址。
-v,--verbose 打印详细输出
-h,--hash 安装时列出标记

使用这两个命令安装或升级软件包时,并不会把软件包的相关依赖下载或升级。而yum命令安装rpm包时,才会把相关的依赖包自动下载和安装。

dpkg

dpkg是debian系统家族的安装工具命令。

dpkg20210518172842.png

如果你下载了deb格式的文件,那么使用 dpkg -i xx.x.deb 就可以安装文件

好了,这些就是我们在linux系统中常用的安装命令,你能明白他们之间的差异了吗?

回帖
请输入回帖内容 ...