Linux 学习第一篇:从零认识 Linux,使用 WSL + Ubuntu 搭建学习环境

一,为什么Java后端程序员要学习Linux

1. 编写程序只是开发的一部分

假设我们编写了一个 Spring Boot 项目,实现了用户登录、查询数据等功能

在开发阶段,我们可以直接在 Windows 中使用 IDEA 启动项目,并通过浏览器或 Postman 测试接口

但是,当项目开发完成后,如果希望其他用户也能访问这个项目,我们通常需要将它部署到服务器上,让程序能够持续运行并处理用户请求

许多企业会使用 Linux 服务器运行 Java 后端程序,以及 MySQL、Redis 等服务

因此,作为 Java 后端开发人员,我们不仅需要知道如何编写程序,还需要了解程序在服务器上是如何运行的

2. Linux 在实际开发中有什么作用?

假设我们把 Spring Boot 项目部署到 Linux 服务器上,运行一段时间后,突然发现用户无法正常登录。

这时可能出现以下问题:

  • Java 程序意外退出。

  • 应用日志中出现异常。

  • 服务监听的端口不正确。

  • 服务器内存不足或磁盘空间耗尽。

  • 程序无法连接 MySQL 或 Redis。

为了定位问题,我们需要检查程序的运行状态、查看日志、检查端口和系统资源,并结合应用配置进一步排查。

Linux 提供了许多工具和命令,可以帮助我们完成这些操作。

需要注意的是,Linux 并不是唯一能够进行故障排查的操作系统。Windows 同样可以检查进程、日志和端口。我们学习 Linux,是因为它在服务器和后端开发环境中非常常见。

因此,学习 Linux 的目标不是成为运维工程师,而是让自己具备运行、部署和排查 Java 后端项目的基本能力。

所以我们该如何从零接受这个东西:

Linux一般是Java程序后端部署到的地方,一般后端程序就在这上面运行的,并不是windows不可以部署,而是Linux是企业服务器上非常常见的选择,所以我们需要学习这个,它的优势不只是排查错误方便,更重要的是运行成本、稳定性、安全管理、自动化能力,以及和云计算、Docker 等技术的良好配合

二,学习Linux的前期准备

Linux我们也是耳熟能详,是一个操作系统,那我们学习这个Linux是不是需要重装系统之类的呢,很多同学听到这个就会觉得会非常的麻烦或者有点害怕的心理,其实可以不用,windows系统上也可以运行Linux,那首先我们需要下载WSL以及Ubuntu,首先我们先来介绍一下这两个东西,然后我们再教大家该如何进行下载

准备的东西是什么

WSL:

WSL 的全称是 Windows Subsystem for Linux,即适用于 Linux 的 Windows 子系统

它让我们能够在 Windows 中运行 Linux 环境,不必替换当前的 Windows 系统

我们下载这个也就是让Windows能够运行和管理Linux环境

Ubuntu:

这个也就是Linux的一个发行版,并且是常用于个人学习,开发以及服务器运行的一款

Linux 内核负责系统的核心管理工作,但实际使用时,还需要命令行工具、系统库、软件包管理器等组件。

将这些组件组合起来,就可以形成一套完整的 Linux 发行版。

为什么选择这个组合

因为不需要重装系统,可以继续使用现有的Windows软件和idea,并且也可以在Linux中练习真实的命令

当然,WSL 与独立的 Linux 服务器仍有区别,例如网络环境、硬件资源和生产部署配置等。但它足以帮助我们掌握大部分入门知识

开始准备

1. 检查 Windows 版本

首先按下 Win + R,输入:

复制代码
winver

按回车后,可以查看当前 Windows 的版本信息。

确认系统满足 WSL 的安装要求后,再继续后面的操作。

2. 检查是否已经安装 WSL

打开管理员 PowerShell,执行:

复制代码
wsl --status

这条命令用于查看 WSL 的状态。

接着执行:

复制代码
wsl --list --verbose

这条命令用于查看已经安装的 Linux 发行版,以及它们使用的 WSL 版本。

如果尚未安装 WSL,可以继续进行安装。

我这个就是已经安装完毕了,默认分发:Ubuntu;默认版本:2,虽然显示我们不支持wsl1,但是不影响,因为我们使用的是wsl2

第二个命令的结果就是名称是Ubuntu,版本2,也就是wsl2,状态是stopped

3. 安装 WSL 基础组件

本次使用以下命令安装 WSL,但暂时不安装 Linux 发行版:

复制代码
wsl --install --no-distribution

其中:

  • wsl:调用 WSL 命令行工具。

  • --install:执行安装操作。

  • --no-distribution:暂时不安装 Linux 发行版。

安装完成后,如果系统要求重启,应先保存其他工作,再根据提示重启电脑。

我这个已经是下载好了的

4. 检查是否支持指定安装位置

为了将 Ubuntu 安装到 D 盘,可以先查看 WSL 支持的命令:

复制代码
wsl --help

在帮助信息中检查是否支持 --location 参数。该参数用于指定 Linux 发行版的安装目录。

这一步的目的是确认当前环境支持我们需要的安装方式,避免 Ubuntu 默认安装到其他位置。

其中这一部分就说明你可以选择你的安装地点,也就是可以安装到d盘

5. 将 Ubuntu 安装到 D 盘

执行:

复制代码
wsl --install Ubuntu --location "D:\WSL\Ubuntu"

这条命令用于安装 Ubuntu,并将该发行版的数据安装到指定目录。

等待下载和安装完成。如果系统要求重启,则按照提示操作。

6. 创建 Linux 用户

首次启动 Ubuntu 时,系统会要求创建 Linux 用户名和密码。

例如,本次创建的用户名为:

复制代码
lenovo

设置密码时需要注意:Linux 终端通常不会显示密码输入内容,也不会显示星号,这是正常的安全设计(就是什么都看不到,你输入了什么也没有,但是不影响,只是单纯你看不到)

输入密码后按回车,再根据提示重复输入一次进行确认。

密码只用于对应的 Linux 用户操作,不要与重要账号重复,也不要将密码公开。

完成初始化后,我们就可以进入 Ubuntu 的命令行环境。

7. 验证 Ubuntu 是否安装成功

安装完成后,可以在 PowerShell 中执行:

复制代码
wsl --list --verbose

查看 Ubuntu 是否已经出现在发行版列表中,以及它使用的 WSL 版本。

也可以通过以下命令启动 Ubuntu:

复制代码
wsl -d Ubuntu

成功进入后,终端会显示类似这样的提示符:

复制代码
lenovo@LAPTOP-XXXX:~$

其中:

  • lenovo 是当前 Linux 用户名。

  • LAPTOP-XXXX 是经过简化展示的计算机名称。

  • ~ 表示当前用户的主目录。

  • $ 是普通用户常见的命令提示符。

到这里,我们就完成了 Linux 学习环境的基本准备。

上面的警告wsl:的内容是因为我开了梯子,没有任何的影响,所以不需要管

到底为止,我们的Linux的环境就准备就绪了,我们只需要在最后一句话的后面输入Linux命令就可以

三、第一条 Linux 命令:pwd

1.pwd是什么:

我们首先学习 pwd 命令。

pwd 是 print working directory 的缩写,作用是显示当前工作目录。

在 Ubuntu 终端中输入:

复制代码
pwd

执行后,终端会输出当前所在目录的完整路径。

例如,我第一次执行命令时,得到的结果是:

复制代码
/mnt/c/Windows/system32

这说明当前所在目录是 /mnt/c/Windows/system32。

2. 为什么我的结果不是 /home/lenovo?

刚开始学习时,我原本以为进入 Ubuntu 后,当前目录就会直接是 Linux 用户的主目录。

但实际结果并不是这样。

原因是,我当时在 Windows PowerShell 的 C:\Windows\system32 目录中执行了:

复制代码
wsl -d Ubuntu

启动 Ubuntu 时,WSL 将原来的 Windows 工作目录映射成了 Linux 中的路径。

3. 切换到自己的 Linux 用户主目录

既然当前目录位于 Windows 的映射路径中,那么如果我想回到 Ubuntu 自己的用户主目录,应该怎么做?

这就需要学习另一个命令:cd。

cd 是 change directory 的缩写,作用是切换当前工作目录。

在 Ubuntu 中输入:

复制代码
cd ~

然后执行:

复制代码
pwd

预期输出:

复制代码
/home/lenovo

这说明我们已经切换到了当前 Linux 用户的主目录。

这里的 ~ 是一个特殊表示,通常代表当前用户的主目录。

对于当前用户 lenovo 来说,它对应的路径就是:

复制代码
/home/lenovo

本节总结

本节认识了两个重要的 Linux 命令:

命令 作用
pwd 查看当前工作目录
cd ~ 切换到当前用户的主目录

之后我们想使用Linux,可以使用powershell输入wsl -d Ubuntu,也可以直接用Ubuntu

相关推荐
讯捷蓝达1 小时前
机房突发断电,5 盘 RAID硬盘全部掉线: 急速上门救援,现场4小时华为2288H V5服务器数据完整恢复
运维·服务器·数据库
实名上网宋凯宣1 小时前
现代电网可靠性测试系统-VPP工作笔记
笔记·学习
风翼靓崽1 小时前
磁盘逻辑卷扩容
linux·运维·服务器
Z21-X1 小时前
云原生运维学习笔记:KVM实战——从环境搭建到热迁移的硬核体验
运维·笔记·学习·云原生
zincsweet1 小时前
Linux网络编程入门(二):从 UDP 回显服务器到多人聊天室,三个项目的渐进式实践
linux·服务器·网络
论文复现现场1 小时前
RTX 3090 云GPU租赁价格对比:8家平台配置、计费方式与环境测试
linux·运维·人工智能·pytorch·深度学习·云计算·3090
艾莉丝努力练剑1 小时前
【AI大模型接入SDK】Trae生成代码介绍
网络·c++·人工智能·学习·架构
tellmewhoisi1 小时前
深度学习5:神经网络学习2:数值微分,偏导,梯度
深度学习·神经网络·学习
辣知1 小时前
辣知·化智88 为民族示范变革代价与价值
学习