# [特殊字符] Linux 学习笔记(一):环境搭建与 C 语言开发初体验
Linux 学习笔记(一):环境搭建与 C 语言开发初体验
前言
作为一名数据科学与大数据技术专业的大一学生,我正式启动了 Linux 系统的学习计划。本系列博客将记录我从零开始学习 Linux 的完整过程,包括命令操作、C/C++ 开发、系统编程等内容。这是第一篇,主要分享 WSL Ubuntu 环境的搭建,以及用 vim 编写并运行第一个 C 程序的全过程。
📋 目录
- 一、环境信息
- 二、核心命令笔记
- 2.1 文件与目录操作
- 2.2 文件内容查看
- 2.3 vim 编辑器基本操作
- 2.4 编译与运行 C 程序
- 2.5 系统与权限管理
- 三、完整工作流演示
- 四、踩坑记录
- 五、学习体会与下一步计划
一、环境信息
| 项目 | 说明 |
|---|---|
| 宿主机系统 | Windows 11 |
| Linux 子系统 | WSL 2 (Windows Subsystem for Linux) |
| Linux 发行版 | Ubuntu 22.04 LTS |
| 编译器 | gcc (GNU Compiler Collection) |
| 编辑器 | vim |
| 终端 | Windows Terminal / Ubuntu 应用 |
二、核心命令笔记
2.1 文件与目录操作
Linux 一切皆文件,这些命令是日常使用频率最高的基础操作。
| 命令 | 作用 | 示例 | 补充说明 |
|---|---|---|---|
pwd | 查看当前目录完整路径 | /home/y1346 | print working directory 的缩写 |
ls | 列出当前目录文件和文件夹 | ls | 最常用的查看命令 |
ls -l | 详细列表(权限、大小、日期) | ls -l | -l是 long 的意思 |
ls -a | 显示所有文件(含隐藏文件) | ls -a | -a是 all 的意思 |
mkdir | 创建新目录 | mkdir project | make directory 的缩写 |
cd | 切换目录 | cd project | change directory 的缩写 |
cd .. | 返回上一级目录 | 两个点代表上级目录 | |
cd ~ | 返回用户家目录 | ~代表/home/用户名 | |
rm | 删除文件 | rm test.c | 删除目录需要加-r参数 |
2.2 文件内容查看
| 命令 | 作用 | 示例 | 补充说明 |
|---|---|---|---|
cat | 一次性打印全部内容到终端 | cat hello.c | 适合小文件 |
less | 分页查看,可上下翻页 | less 大文件.log | 按q退出 |
2.3 vim 编辑器基本操作
vim 有三种模式,初学者先掌握两种:命令模式和插入模式。
| 操作 | 所处模式 | 作用 | 备注 |
|---|---|---|---|
vim 文件名 | 终端命令 | 用 vim 打开或创建文件 | |
按i | 命令模式 → 插入模式 | 在光标前开始编辑 | insert |
按a | 命令模式 → 插入模式 | 在光标后开始编辑 | append |
按o | 命令模式 → 插入模式 | 在下一行新建并编辑 | open a new line |
按Esc | 插入模式 → 命令模式 | 退出编辑状态 | 最常用的键 |
:w | 命令模式 | 保存文件 | write |
:q | 命令模式 | 退出 vim | quit |
:wq | 命令模式 | 保存并退出 | 合二为一 |
:q! | 命令模式 | 强制退出不保存 | !代表强制 |
2.4 编译与运行 C 程序
| 命令 | 作用 | 示例 |
|---|---|---|
gcc 源文件.c -o 输出名 | 编译并指定可执行文件名 | gcc hello.c -o hello |
gcc -Wall 源文件.c -o 输出名 | 编译并显示所有警告(推荐) | gcc -Wall hello.c -o hello |
gcc -g 源文件.c -o 输出名 | 编译并加入调试信息 | gcc -g hello.c -o hello |
./程序名 | 运行当前目录下的可执行文件 | ./hello |
2.5 系统与权限管理
| 命令 | 作用 | 示例 |
|---|---|---|
sudo 命令 | 以超级管理员权限执行 | sudo apt install gcc |
apt update | 更新软件包列表(不安装任何东西) | sudo apt update |
apt install 包名 | 安装指定软件包 | sudo apt install build-essential |
exit | 退出当前终端会话 | |
clear | 清空终端屏幕(或Ctrl + L) | |
man 命令名 | 查看命令的官方手册 | man gcc(按q退出) |
三、完整工作流演示
以下是我今天编写、编译并运行第一个 C 程序的完整操作流程:
# 第一步:确认当前位置y1346@localhost:~$pwd/home/y1346# 第二步:查看当前目录有什么文件y1346@localhost:~$ls-l# 第三步:用 vim 创建并编写源码y1346@localhost:~$vimhello.c# 按 i 进入插入模式# 输入以下代码:# #include <stdio.h># int main() {# printf("Hello, Linux!\n");# return 0;# }# 按 Esc 退回命令模式# 输入 :wq 保存退出# 第四步:用 gcc 编译y1346@localhost:~$ gcc hello.c-ohello# 第五步:运行程序y1346@localhost:~$ ./hello Hello, Linux!# 第六步:查看源码内容y1346@localhost:~$cathello.c#include <stdio.h>intmain(){printf("Hello, Linux!\n");return0;四、踩坑记录
记录从环境搭建到运行成功遇到的所有问题,避免重复踩坑。
| 序号 | 问题 | 原因分析 | 解决方法 |
|---|---|---|---|
| 1 | 输入gcc提示Command not found | Ubuntu 刚装好是纯净系统,不带 C 编译器 | sudo apt update && sudo apt install -y build-essential gdb |
| 2 | 设置密码时屏幕上不显示任何字符 | Linux 的安全机制,密码输入不产生回显 | 不用管屏幕,正常输入后直接按回车即可 |
| 3 | vim 打开后无法打字,按键盘没反应 | vim 刚启动时处于“命令模式”,不接收文字输入 | 按键盘上的i键,进入“插入模式”后才能打字 |
| 4 | 退出 vim 时不知道该怎么办 | 处于插入模式或命令模式,直接按Esc再输入命令 | 按Esc确保回到命令模式,输入:wq保存退出,或:q!强制退出不保存 |
| 5 | 执行迁移脚本后,打开 Ubuntu 默认用户变成了root | WSL 导入新实例后,默认登录用户被重置为root | 运行 `echo “[user]” |
五、学习体会与下一步计划
💡 今天的收获
从"会用电脑"到"能控制电脑"
以前操作电脑全靠鼠标点来点去,今天第一次感受到用命令行直接和系统对话的掌控感。pwd告诉我我在哪,ls让我看到周围有什么,这种感觉和 Windows 完全不同。
理解了"编程环境"到底是怎么回事
以前写 C 语言是在 Windows 的 IDE(比如 Dev-C++、VS Code)里,点个绿色三角就能跑。今天手动经历了"编辑源码 → 编译成二进制文件 → 运行可执行文件"的完整流程,对代码是怎么变成程序的有了更直观的认识。
vim 没有想象中那么可怕
第一天只学会了i、Esc、:wq三个操作,但已经能独立完成代码编写了。以后慢慢积累其他快捷键,效率会越来越高。
🤔 今天的不足
- 对 Linux 的目录结构不熟悉:对
/home、/usr、/etc等目录各自的作用还不清楚,需要系统学习一下。 - vim 操作不够熟练:经常忘了自己处在什么模式,需要更多练习。
📅 下一步学习计划
- 强化 vim:跟着
vimtutor官方教程完整过一遍,掌握更多编辑技巧。 - 数据结构和 Linux 结合:在 Ubuntu 下用 C 语言实现链表、栈、队列,把代码上传到 GitHub。
- 学习 gdb 调试:程序不可能一次写对,学会用调试器找 bug 是开发者的基本功。
- 写第二篇博客:等链表写出来,整理成一篇新的学习笔记,保持每周至少一篇的输出节奏。
本系列文章将持续更新,欢迎交流指正。
作者:y1346
日期:2026-05-28
标签:Linux C语言 vim Ubuntu WSL 学习笔记
学习笔记
