当前位置:首页>Linux>1.10 Ubuntu(Linux)补课-下载安装相关命令

1.10 Ubuntu(Linux)补课-下载安装相关命令

  • 2026-10-08 11:11:04
1.10 Ubuntu(Linux)补课-下载安装相关命令

目前折腾最多的,是在Ubuntu(Linux)系统里用命令进行下载,更新和安装,屡屡遇到各种问题。虽然有AI伴身,但搞清楚相关命令用途和含义还是有用的。我个人的学习总结如下:

理解Ubuntu的下载类型

可以分为三大类:

    1. 系统类,主要命令:apt,dpkg -i
  • 2.编程语言类,主要命令:pip,npm
  • 3.其他资源,主要命令:curl,git clone,wget

一个概念:依赖关系(Dependencies)

在 Linux 里,依赖关系指的是:

一个软件正常运行,需要依靠其他软件、组件或系统资源的关系。

简单来说:

软件不是独立存在的,它需要“搭配其他东西”才能工作。


举个生活例子

一辆汽车要正常行驶,需要:

  • 发动机
  • 燃油
  • 轮胎
  • 电池

汽车依赖这些部件。

如果缺少其中关键部件,汽车就无法正常运行。

Linux 软件也是一样。


Linux 软件中的依赖

比如一个应用程序可能依赖:

  • 系统库(提供基础功能)
  • 其他软件包(提供额外功能)
  • 运行环境(如 Python、Java 等)
  • 驱动程序(如显卡驱动)

这些被依赖的东西,就是它的Dependencies(依赖)。


为什么 Linux 重视依赖管理?

因为 Linux 上的软件通常由很多组件组合而成。

安装一个软件时,系统需要知道:

  • 它需要哪些东西?
  • 哪些已经存在?
  • 哪些需要额外安装?
  • 版本是否匹配?

所以 Linux 提供了软件包管理工具来自动处理这些关系。


依赖关系带来的常见问题

如果依赖缺失或版本不匹配,可能出现:

  • 软件无法安装
  • 软件无法启动
  • 功能异常
  • 系统环境冲突

例如,一个程序需要新版组件,但系统只有旧版本,就可能产生问题。


一句话总结

Linux 的依赖关系,就是软件之间相互需要、相互配合的关系。一个软件能否正常运行,不仅取决于它自己,还取决于它所依赖的其他组件是否完整和匹配。

📦 第一类:系统级包管理(Ubuntu 核心)

这类命令管理操作系统层面的软件包,影响整个系统环境。


🔹 apt(Advanced Package Tool)

apt 是 Ubuntu 最核心、最常用的包管理工具,相当于手机里的"应用商店"。

属性
说明
功能
从软件仓库安装、卸载、更新、搜索系统级软件包
默认源位置
配置文件在 /etc/apt/sources.list(Ubuntu 24.04 起在 /etc/apt/sources.list.d/ubuntu.sources)
是否自动解决依赖
✅ 是。会自动下载并安装所有依赖的库和软件
常用程度
⭐⭐⭐⭐⭐ 极常用,每个 Ubuntu 用户必备

常用命令示例:

# 更新软件包列表(从仓库拉取最新索引)sudo apt update# 升级所有已安装的软件包sudo apt upgrade# 安装软件(如安装 Nginx Web 服务器)sudo apt install nginx# 安装多个软件sudo apt install vim git htop# 卸载软件(保留配置文件)sudo apt remove nginx# 彻底卸载(删除所有配置文件)sudo apt purge nginx# 搜索软件包apt search python# 查看软件包详细信息apt show nginx

配置国内源(加速):

编辑 /etc/apt/sources.list,将 archive.ubuntu.com 替换为国内镜像地址。


🔹 dpkg -i(Debian 包底层安装)

dpkg 是 apt 的底层引擎,用于直接安装本地的 .deb 软件包文件。Debian包(通常以 .deb 结尾)是Debian及其衍生系统(如Ubuntu、Linux Mint 等)使用的软件安装包格式。有些类似Windows系统下.exe 格式的安装包(当然并不完全相同,只是类比用来理解)。

属性
说明
功能
安装本地下载的 .deb 格式软件包
默认源位置
无默认源,你从官网或第三方网站下载的 .deb 文件路径
是否自动解决依赖
❌ 否。如果提示缺依赖,需要手动用 sudo apt install -f 修复
常用程度
⭐⭐⭐ 较常用,适合安装官网直供的软件(如 Chrome、VS Code)

常用命令示例:

# 安装本地 .deb 包sudo dpkg -i google-chrome-stable.deb# 如果提示依赖缺失,执行修复sudo apt install -f# 查看已安装的包dpkg -l | grep chrome# 卸载已安装的包sudo dpkg -r google-chrome-stable# 查看 .deb 包的文件列表dpkg -c google-chrome-stable.deb

典型场景:

  • 从 Chrome 官网下载 .deb 包后安装
  • 从 VS Code 官网下载 .deb 包后安装
  • 从 Nvidia 官网下载显卡驱动 .deb 包

🐍 第二类:编程语言级包管理

这类命令管理特定编程语言的第三方库和依赖,不同语言各有自己的生态。目前,跟AI相关的编程语言有Python和Node.js

Python 就像一把“万能工具箱”。

它最擅长的是让计算机帮人处理复杂的问题,比如:

  • 帮科学家分析数据
  • 帮企业处理大量信息
  • 帮工程师训练人工智能
  • 帮普通人自动完成重复工作

可以把 Python 理解成:

一个聪明的助手,你告诉它规则,它可以帮你完成很多复杂的脑力工作。

比如:

  • 让电脑分析几百万条数据,找规律
  • 训练一个识别人脸的 AI
  • 自动整理大量文件
  • 帮公司预测销售趋势

它的特点是:

  • 容易学习
  • 功能非常丰富
  • 在人工智能领域非常重要

Node.js 就像一个“让电脑成为服务员的系统”。

以前,网页上的很多功能只能在用户自己的电脑浏览器里运行。

Node.js 出现后,可以让电脑在后台一直工作,负责:

  • 接待用户请求
  • 处理网页操作
  • 管理网站服务
  • 实时传递信息

可以把 Node.js 理解成:

一个高效的后台管家,负责让网站、应用和用户之间顺畅沟通。

比如:

  • 微信聊天时消息快速传递
  • 电商网站处理大量用户访问
  • 在线文档多人同时编辑

它的特点是:

  • 很适合做互联网应用
  • 能同时服务很多用户
  • 和网页开发关系密切

Python 更像 AI 的大脑,Node.js 更像 AI 产品的服务窗口


🔹 pip(Python 包管理)

pip 是 Python 的官方包管理工具,用于安装 Python 第三方库。

属性
说明
功能
安装、卸载、管理 Python 库和工具
默认源位置
PyPI(Python Package Index):https://pypi.org/simple/
是否自动解决依赖
✅ 是。会自动下载并安装 Python 库的依赖项
常用程度
⭐⭐⭐⭐⭐ 极常用,Python 开发者必备

常用命令示例:

# 安装 Python 库pip install numpy# 安装指定版本pip install django==4.2# 卸载库pip uninstall numpy# 查看已安装的库pip list# 导出当前环境所有依赖(用于项目迁移)pip freeze > requirements.txt# 批量安装依赖pip install -r requirements.txt

虚拟环境最佳实践(推荐):

# 创建虚拟环境(隔离项目依赖)python3 -m venv myenv# 激活虚拟环境source myenv/bin/activate# 在虚拟环境中安装库(不影响系统 Python)pip install flask

🔹 npm(Node.js 包管理)

npm 是 Node.js 的官方包管理工具,是全球最大的开源库生态系统之一。

属性
说明
功能
安装、管理 Node.js 项目的前后端依赖包
默认源位置
npm Registry:https://registry.npmjs.org/
是否自动解决依赖
✅ 是。会自动处理包之间的版本依赖关系
常用程度
⭐⭐⭐⭐⭐ 极常用,JavaScript/前端开发者必备

常用命令示例:

# 初始化项目(生成 package.json)npm init -y# 安装包(生产依赖)npm install express# 安装包(开发依赖,如测试工具)npm install jest --save-dev# 全局安装 CLI 工具(如 Vite)npm install -g vite# 卸载包npm uninstall express# 查看已安装的包npm list# 更新所有包npm update# 运行 package.json 中定义的脚本npm run dev

🌐 第三类:从网络下载资源的命令

这类命令的本质是从指定的 URL 获取文件或数据,不涉及包管理和依赖解决。

🔹curl

curl 是一个功能强大的网络数据传输工具,支持 HTTP、HTTPS、FTP 等多种协议。

属性
说明
功能
下载文件、测试 API、发送 HTTP 请求、调试接口
默认源位置
无固定源,由用户指定任意 URL
是否自动解决依赖
❌ 不适用(只是下载工具)
常用程度
⭐⭐⭐⭐⭐ 极常用,开发和运维必备

常用命令示例:

# 下载文件并保存为远程文件名(-O 大写)curl -O https://example.com/file.zip# 下载文件并保存为自定义名称(-o 小写)curl -o myfile.zip https://example.com/file.zip# 发送 GET 请求并显示响应内容curl https://api.github.com/users/octocat# 发送 POST 请求(JSON 格式)curl -X POST https://api.example.com/data \  -H ”Content-Type: application/json” \  -d '{”name”:”test”,”value”:123}'# 查看 HTTP 响应头信息(-I)curl -I https://www.baidu.com# 跟随重定向(-L)curl -L -O https://github.com/user/repo/releases/latest/download/app.zip# 显示下载进度curl -# -O https://example.com/largefile.iso# 从文件列表批量下载curl -K urls.txt# 测试网站响应时间curl -o /dev/null -s -w 'HTTP: %{http_code} 时间: %{time_total}s\n' https://example.com

典型场景:

  • 测试 API 接口:开发调试 RESTful API
  • 健康检查:检测服务是否正常运行
  • 自动化脚本:在脚本中发送请求或下载资源

🔹 git clone

git clone 是 Git 版本控制系统的核心命令,用于从远程仓库克隆完整的代码库到本地。

属性
说明
功能
从 Git 仓库克隆代码到本地,保留完整的版本历史
默认源位置
无固定源,由用户指定 Git 仓库 URL(如 GitHub/GitLab/Gitee)
是否自动解决依赖
❌ 不适用(代码本身无依赖,后续需自行构建)
常用程度
⭐⭐⭐⭐⭐ 极常用,开发者必备

常用命令示例:

# 从 GitHub 克隆 Linux 内核源码git clone https://github.com/torvalds/linux.git# 克隆指定分支(-b)git clone -b dev https://github.com/user/repo.git# 浅克隆(只拉取最新提交,节省时间和空间)git clone --depth 1 https://github.com/user/repo.git# 克隆到指定目录git clone https://github.com/user/repo.git my-folder# 使用 SSH 方式克隆(推荐,更安全)git clone git@github.com:user/repo.git# 克隆并自动进入子模块git clone --recursive https://github.com/user/repo-with-submodules.git

典型场景:

  • 参与开源项目:从 GitHub Fork 项目后克隆到本地开发
  • 获取项目源码:从公司 GitLab 克隆内部项目

🔹 wget

wget 是一个简单直接的专职下载工具,适合文件下载场景。

属性
说明
功能
下载文件,支持断点续传、递归下载、后台下载
默认源位置
无固定源,由用户指定任意 URL
是否自动解决依赖
❌ 不适用(只是下载工具)
常用程度
⭐⭐⭐⭐⭐ 极常用,服务器运维必备

常用命令示例:

# 下载文件到当前目录wget https://example.com/file.zip# 下载并保存为指定文件名(-O)wget -O myfile.zip https://example.com/file.zip# 断点续传(-c),网络中断后继续下载wget -c https://example.com/largefile.iso# 递归下载整个网站(-r),用于离线浏览wget -r -l 1 -np -k https://example.com/docs/# 后台下载(-b),并将日志写入 wget-logwget -b https://example.com/bigfile.iso# 限速下载(--limit-rate),限制为 1MB/swget --limit-rate=1m https://example.com/file.zip# 从文件列表批量下载(-i)wget -i urls.txt# 下载网页及其资源(完整镜像)wget -m -p -E -k -np https://example.com# 添加用户认证下载wget --user=username --password=pass https://example.com/private/file

典型场景:

  • 下载 Ubuntu ISO 镜像:wget https://releases.ubuntu.com/22.04/ubuntu-22.04-desktop-amd64.iso
  • 备份整个网页:递归下载网站用于离线浏览
  • 服务器间大文件传输:配合断点续传确保下载完整

curl vs wget 快速对比

对比项
curlwget
主要用途
API 测试 + 下载
专职下载
断点续传
支持(较复杂)
✅ 原生支持 -c
递归下载
❌ 不支持
✅ 原生支持 -r
HTTP 请求方法
支持全部(GET/POST/PUT/DELETE)
仅 GET/POST(有限)
输出到终端
默认输出到终端
默认保存到文件
适合场景
开发调试、接口测试
文件下载、镜像备份

最新文章

随机文章