Featured image of post WSL 安装及 Linux 基本操作教程

WSL 安装及 Linux 基本操作教程

给初次接触 Linux 和命令行操作的新手们(我也是新手qwq)

写在开始之前: 为什么是 Linux?

在接触 Linux 前,我问过一些大手子群友,为什么要学 Linux?其中一个回答是“因为你不得不学”。虽然目前还没到“不得不”的程度,但是学习使用 Linux 的确是个真正锻炼自己的过程。据说 Docker 必需在 Linux 环境下运行,还有 Linux 权限比 Windows 自由,不会有一些奇怪的问题。除此之外,脚本、git 的命令行操作、编译过程、网站配置等等都是我在接触 Linux 后才真正开始学习。

本文旨在给初次接触 Linux 系统的新手们一个入门操作教程,希望能给你帮助。


在哪里用 Linux?

对于大部分 Windows 使用者,想要使用 Linux 无外乎以下几个方法:

  • 再来一台 PC 🤓☝️(我没有所以不会
  • 双系统
  • U盘启动
  • 虚拟机
  • 服务器
  • WSL (Windows Subsystem for Linux)

首先,如果不是全新裸机,没有特别需求不要瞎搞双系统。双系统可能会有各种意想不到的错误,严重的可能导致数据消失甚至电脑变砖头)
其次,U盘启动要求每次都插上U盘重启,虚拟机也需要经过较长的启动开机过程。繁琐的操作和枯燥的等待阻碍了学习Linux的第一步,我们的好奇心与热情很有可能被不断磨灭。
最后,真的有人没接触过 Linux 就上手服务器吗》?

因此,最佳答案就是搞一个 WSL 玩玩。WSL 主要优点包括免费、安装方便、启动速度快、原生 Linux 环境支持等等。

WSL 安装

开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。借助适用于 Linux 的 Windows 子系统(WSL),开发人员可以安装 Linux 分发版,并在 Windows 上直接使用 Linux 应用程序、实用工具和 Bash 命令行工具(未经修改),无需传统虚拟机或双包设置的开销。 ——摘自Microsoft官方文档,点击跳转

上方链接是 Microsoft 的官方文档,当中有 Microsoft 给出的下载使用教程。不过官方文档相当晦涩,也缺乏一些重要细节,最后还是上网搜寻社区教程。个人环境是 Windows 11 家庭版,仅供对照。

启用 Windows 的 WSL 和虚拟化功能

首先打开控制面板(点击 Win 徽标后搜索即可),控制面板 -> 程序 -> 程序和功能 -> 启用或关闭 Windows 功能,滚轮到最下方找到 适用于Linux的Windows子系统 并勾选,再找到 虚拟机平台Virtual Machine Platform 并勾选(不同版本可能不同)

情况1 情况2

下载 Ubuntu

接着打开 Windows PowerShell(同上搜索),输入 wsl --install 直接默认下载Ubuntu,也可以指定下载版本:

1
2
3
4
5
# 查看可用发行版列表
wsl --list --online

# 安装指定版本,以 Ubuntu 24.04 为例
wsl --install -d Ubuntu-24.04

输入上述命令后,等待下载完成。

镜像站下载

如下载很慢又没有魔法,这里给出阿里云开源镜像站的链接,点击需要的版本号后找到以 .wsl 为后缀的文件,如Ubuntu-24.04.4(点击下载),下载完成后双击该文件即可。也可以在下载文件夹执行以下命令:

1
wsl --install --from-file "你下载的文件名.wsl"

安装完成后会提示 “Create a default Unix user account:”,不建议包含中文,简单就好。Linux 输入密码时会“关闭回显”,即看不到输入的内容,不是卡了,正常输入后回车即可。结束后可用 wsl -l 确认安装的版本。

友情提醒:安装完成后 Win 徽标下的页面会推荐把 Ubuntu 加入开始菜单,建议加入并放在“已固定”下方便用移动键(↑↓←→)移动到的位置,这样打开终端只需键盘上按 Win 徽标 + 移动即可,大大减少了鼠标操作。

迁移 Ubuntu 到 D 盘

把所有软件安装在 C 盘不是一个好习惯哦!

导出并重新安装

一整个系统的文件可不少,装在 C 盘太占空间了,故迁移到 D 盘。在 PowerShell 中依次输入:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 将当前 Linux 系统关机
wsl --shutdown

'以下 Ubuntu 记得换成自己的系统版本名称,wsl -l 查看'
# 导出当前 Linux 系统文件(以 Ubuntu 为例)
# wsl --export <版本名称> <导出路径>
wsl --export Ubuntu 'D:\export.tar'

# 删除原有版本的所有文件
wsl --unregister Ubuntu

# 导入系统文件
# wsl --import <版本名称> <安装路径> <刚才的导出路径>
wsl --import Ubuntu 'D:\Ubuntu' 'D:\export.tar'

编辑配置文件

使用 import 后默认以 root 用户登录,但一直以 root 用户登录很可能导致误操作,下面我们通过 Vim 把刚才注册的用户设置为默认用户。

root 用户是什么?
简单来说,root 是 Linux 系统的“超级管理员”,拥有无视任何限制、修改或删除系统核心文件的能力。通常情况下,出于安全考虑,Linux 并不建议你平时直接登录 root 账号进行日常操作。而 sudo 则是一条“特权指令”,允许普通用户在需要安装软件或修改配置时,临时借用 root 的力量来完成任务。

Vim 是什么?
Vim 是一个内置于 Linux 中的文本编辑器,你可以简单理解为 Windows 的记事本 + 不同的模式和快捷键。主要设计逻辑是用键盘完成所有操作,而不用频繁用鼠标移动光标等。学习曲线相当陡峭,但能极大提升开发效率。目前我们只需要掌握一些基本操作,应付一些配置就够了。

1
2
# 编辑配置文件
vim /etc/wsl.conf

Vim 进去后默认是 Normal 模式,该模式下用 k(↑)j(↓)h(←)l(→) 移动光标。我们 Vim 进去后按 i 进入 Insert 模式(记得切英文输入法)这时我们可以进行输入。简单起见我们进入 Insert 模式后用方向键操控光标到文件最后,Enter 新建一行复制以下内容并 Ctrl V 粘贴进去,引号内容删去改为你刚才的用户名。

1
2
[user]
default='君の名は'

之后按下键盘左上角 ESC 键,退回 Normal 模式,英文输入法下输入 :,下方会出现一行命令框,输入 wq Enter 保存并退出。现在我们输入

1
su '你的用户名'

就可以切换到你的用户啦。

Linux 文件系统及基本命令

文件系统

“一切皆文件” 是 Unix 系统的设计哲学,让我们看看 Linux 的文件系统:

  • Linux 所有文件都在同一个根目录 / 下(注意斜杠方向与 Windows 不同)
  • ~代表用户主目录,即 /home/usrname
  • 访问当前文件夹下的文件不需要加斜杠,若当前在 ~ 下,可直接访问 blog/content/...
  • Windows 上的文件被 挂载/mnt 下,如 C 盘为:/mnt/c
  • .. 代表父文件夹,. 代表当前文件夹
  • . 开头的文件为隐藏文件(夹)虽然也能看见,如 .vscode .git .gitignore
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
/ '根目录'
├── bin -> usr/bin
├── dev
├── etc
├── home
│   └── usrname '即 ~ '
│       ├── .vscode     '隐藏文件夹'
│       ├── .git        '隐藏文件夹'
│       ├── .gitignore  '隐藏文件'
│       └── blog
├── lib -> usr/lib
├── mnt '挂载'
│   ├── c
│   ├── d
│   └── e
...

基本命令

Linux 有以下基本的操作命令

转到目录

1
cd ~/blog

列出目录内容

1
2
3
4
5
6
7
8
ls -a # 所有文件,包括隐藏文件
ls -l # 输出详细信息

# 一般bash配置了以下别名(alias),相当于宏定义替换
# 可根据自己需要向配置文件写入别名
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'

创建、删除目录

1
2
mkdir ~/blog
rmdir ~/blog # 只能删除空目录

文件操作相关

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# 创建文件可用 touch 
# 也可 vi 或 code(需配置vscode)后保存 
touch ~/hello.cpp # 文件不存在才创建

# 用 vim 进行简单增删查改
vi ~/.bashrc

# rm : 删除文件(加上 -r 可递归地删除目录及下所以内容)
rm hello.cpp
rm -r ~/blog

# chmod : 修改权限
chmod 755 hello.cpp 
chmod a+x jiaoben.sh

# ./ : 执行可执行文件
./main

安装软件

1
2
3
4
5
# Ubuntu 的包管理器为 apt,可以通过包管理器在命令行完成下载工作,而不是像下载安装包再双击安装
# apt 的命令一般需要 root 权限
sudo apt update     # 检查可用更新,不会安装或更新任何软件 
sudo apt upgrade    # 下载并安装新的软件包
sudo apt install python3

VScode 配置

如果 Windows 端有 VScode,并且在安装时选择了 添加到 PATH,在命令行输入:code .会先安装相应的配置。如果显示

1
bash: command no found: code

说明缺少环境变量,可以 Win 徽标搜索环境变量,环境变量 -> 用户的环境变量 -> 选中Path -> 编辑,找到 VScode 那一行,复制路径,在终端输入 vi ~/.bashrc,光标移动到最后,添加以下内容:

1
2
3
# 例如我的是 D:\Program File\Microsoft VS Code\bin
# 替换为自己的路径,记得改掉反斜杠,有空格需用引号包围
export PATH=$PATH:'/mnt/d/Program File/Microsoft VS Code/bin'

再输入 source ~/.bashrc 加载配置文件,最后输入 code . 即可。终端会自动打开 Vscode,接着可以在插件栏安装相应的插件,会显示 “在WSL: Ubuntu 中安装”。点击安装即可。

应该是蓝色,我已安装过,此处绿色为更新

神秘小仪式

既然都用了 Linux,为什么不学学命令行编译?可是我觉得很神圣啊

~ 或者你喜欢的目录下在命令行输入 vi hello.cpp,按 i 进入 Insert 模式,输入:

1
2
3
4
5
6
#include <iostream>

int main(){
    std::cout << "Hello Linux!" << std::endl;
    return 0;
}

然后输入 : wq,退回到终端,输入:

1
2
3
4
5
# 编译
g++ -o hello hello.cpp

# 运行
./hello

Hello Linux!

The End

有兴趣更深入学习 Shell、脚本和命令行可以访问 MIT-Missing-Semester,也可以在 Bilibili 等平台搜索授课视频。

了解更多:菜鸟教程 Linux

使用 Hugo 构建
主题 StackJimmy 设计