如果有这么一个需求,让你在linux系统里面下载一个文件,然后安装,你会想到哪些命令呢?相信很多人都会想到,直接使用yum或者apt-get命令。这两个命令虽然很方便也很快捷,但是存在一个问题,如果这个Linux系统发行方没有提供你需需要的工具的安装原文件,那这两个命令是无法安装对应的软件的。那除了这两个命令之外,你还会想到其他什么命令呢?哪你可能就会想到wget或curl命令了。对,这两个命令也是大家比较常用的,在Linux系统里面来下载源文件,然后进行安装的命令,那这一下子就出来了4个命令,那这4个命令之间他们有什么区别点呢?
curl
Curl(CommandLine URL)是linux中比较强大的一个文件上传下载的工具。使用URL的语法进行数据的传输或者文件的传输。在现在大多数的Linux系统中,已经自带了这个命令,无需安装,直接可以使用。
我们可以在命令行中输入 curl --help
,来查看帮助信息。
我们可以看到它的参数非常多,也就是说它的功能非常的强大,可以使用不同的参数实现不同的功能。这么多的参数,是不是所有的参数都需要掌握呢,并不是,我们只需要掌握其中一些常用的就可以了,当你不知道怎么用的时候可以通过 --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 | 进度条显示传输状态 |
常用案例
- 直接访问某个地址
curl https://www.baidu.com
# 访问地址,不下载
- 访问地址并重新保存到指定文件
curl https://www.baidu.com >> baidu.html
# 或者
curl -o baidu_homepage.html https://www.baidu.com
- 使用代理方式访问
curl -x 192.168.x.x:port http://www.lemonban.com
- 模拟浏览器访问
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
- 断点续传,可以从断点继续开始下载
curl -C 3 -o jmeter.tar.gz https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
wget
wget也是Linux下常用于文件上下传的一个工具,它开放源代码,但是要在Linux中使用这个命令必须先安装。
# centos wget安装
yum install wget -y
# ubuntu wget安装
apt-get install wget -y
我们也可以使用 wget --help
来获得帮助
如果你使用了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 | 最大递归深度 |
常用案例
- 下载文件,以文件名称保存文件。
wget https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
- 下载文件,以自定义名称保存文件。
wget -O jmeter.tgz https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
- 断点续传下载文件
wget -c https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
- 后台寂寞方式下载文件。
wget -b https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
- 指定重试次数下载
wget -t 2 https://mirrors.tuna.tsinghua.edu.cn/apache//jmeter/binaries/apache-jmeter-5.4.1.tgz
rpm
rpm(redhat package manager) 是 Red Hat Linux 发行版专门用来管理 Linux 各项套件的程序,由于它遵循 GPL 规则且功能强大方便,因而广受欢迎,平时大家使用的centos系统,就是 red hat的发行版本,所以使用rpm命令来安装文件比较常见。
rpm的功能非常强大,也可以使用 rpm--heep
来获得帮助信息
我们最常用的可能的有 rpm -ivh xx.x.rpm
和 rpm -Uvh xx.x.rpm
,那这个里面的几个参数分别是代表什么意思呢?
参数 | 用法 |
---|---|
-i,--install | 安装软件包,后面可以直接跟上包的文件,也可以跟上包的地址 |
-U, --upgrade | 升级软件包,后面可以直接跟上包的文件,也可以跟上包的地址。 |
-v,--verbose | 打印详细输出 |
-h,--hash | 安装时列出标记 |
使用这两个命令安装或升级软件包时,并不会把软件包的相关依赖下载或升级。而yum命令安装rpm包时,才会把相关的依赖包自动下载和安装。
dpkg
dpkg是debian系统家族的安装工具命令。
如果你下载了deb格式的文件,那么使用 dpkg -i xx.x.deb
就可以安装文件
好了,这些就是我们在linux系统中常用的安装命令,你能明白他们之间的差异了吗?
欢迎来到testingpai.com!
注册 关于