当前位置: 首页 > news >正文

# [特殊字符] 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/y1346print working directory 的缩写
ls列出当前目录文件和文件夹ls最常用的查看命令
ls -l详细列表(权限、大小、日期)ls -l-l是 long 的意思
ls -a显示所有文件(含隐藏文件)ls -a-a是 all 的意思
mkdir创建新目录mkdir projectmake directory 的缩写
cd切换目录cd projectchange directory 的缩写
cd ..返回上一级目录两个点代表上级目录
cd ~返回用户家目录~代表/home/用户名
rm删除文件rm test.c删除目录需要加-r参数

2.2 文件内容查看

命令作用示例补充说明
cat一次性打印全部内容到终端cat hello.c适合小文件
less分页查看,可上下翻页less 大文件.logq退出

2.3 vim 编辑器基本操作

vim 有三种模式,初学者先掌握两种:命令模式插入模式

操作所处模式作用备注
vim 文件名终端命令用 vim 打开或创建文件
i命令模式 → 插入模式在光标前开始编辑insert
a命令模式 → 插入模式在光标后开始编辑append
o命令模式 → 插入模式在下一行新建并编辑open a new line
Esc插入模式 → 命令模式退出编辑状态最常用的键
:w命令模式保存文件write
:q命令模式退出 vimquit
: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 foundUbuntu 刚装好是纯净系统,不带 C 编译器sudo apt update && sudo apt install -y build-essential gdb
2设置密码时屏幕上不显示任何字符Linux 的安全机制,密码输入不产生回显不用管屏幕,正常输入后直接按回车即可
3vim 打开后无法打字,按键盘没反应vim 刚启动时处于“命令模式”,不接收文字输入按键盘上的i键,进入“插入模式”后才能打字
4退出 vim 时不知道该怎么办处于插入模式或命令模式,直接按Esc再输入命令Esc确保回到命令模式,输入:wq保存退出,或:q!强制退出不保存
5执行迁移脚本后,打开 Ubuntu 默认用户变成了rootWSL 导入新实例后,默认登录用户被重置为root运行 `echo “[user]”

五、学习体会与下一步计划

💡 今天的收获

从"会用电脑"到"能控制电脑"
以前操作电脑全靠鼠标点来点去,今天第一次感受到用命令行直接和系统对话的掌控感。pwd告诉我我在哪,ls让我看到周围有什么,这种感觉和 Windows 完全不同。

理解了"编程环境"到底是怎么回事
以前写 C 语言是在 Windows 的 IDE(比如 Dev-C++、VS Code)里,点个绿色三角就能跑。今天手动经历了"编辑源码 → 编译成二进制文件 → 运行可执行文件"的完整流程,对代码是怎么变成程序的有了更直观的认识。

vim 没有想象中那么可怕
第一天只学会了iEsc:wq三个操作,但已经能独立完成代码编写了。以后慢慢积累其他快捷键,效率会越来越高。

🤔 今天的不足

  1. 对 Linux 的目录结构不熟悉:对/home/usr/etc等目录各自的作用还不清楚,需要系统学习一下。
  2. vim 操作不够熟练:经常忘了自己处在什么模式,需要更多练习。

📅 下一步学习计划

  1. 强化 vim:跟着vimtutor官方教程完整过一遍,掌握更多编辑技巧。
  2. 数据结构和 Linux 结合:在 Ubuntu 下用 C 语言实现链表、栈、队列,把代码上传到 GitHub。
  3. 学习 gdb 调试:程序不可能一次写对,学会用调试器找 bug 是开发者的基本功。
  4. 写第二篇博客:等链表写出来,整理成一篇新的学习笔记,保持每周至少一篇的输出节奏。

本系列文章将持续更新,欢迎交流指正。

作者:y1346
日期:2026-05-28
标签:Linux C语言 vim Ubuntu WSL 学习笔记
学习笔记

http://www.jsqmd.com/news/944115/

相关文章:

  • C#零基础通关第十四篇:吃透反射机制,看懂框架底层、实现动态编程与项目解耦
  • Illustrator智能填充终极指南:Fillinger插件让你的设计效率提升20倍
  • 第1篇:K8s 核心概念精讲:Pod、Deployment、Service 与 Namespace——Java 开发者快速上手指南
  • SteamBot架构设计深入解析:5大核心模块实现自动化交易最佳实践
  • 在macOS上实现完美歌词同步:LyricsX完整配置指南
  • 信息全面的招投标信息网站综合排行及选型指南 - 互联网科技品牌测评
  • Joy-Con Toolkit:解决Switch手柄专业配置难题的完整方案
  • 从零到精通:AI大模型学习路线图,新手必备!
  • OpencvSharp 算子学习教案之 - Cv2.ApproxPolyDP 重载3
  • 2026年信创协同系统哪家的靠谱?一文搞懂你该怎么选
  • 6.3
  • AI工具与智能订阅整合失效真相大起底(93%团队忽略的3个协议层断点)
  • 老邮册有没有价值?教你分清原厂册、定位册、拼装册 - 深鉴新闻
  • 探讨在不同物理显示媒介上优化响应式栅格系统设计规范色彩空间与视觉对比度的规范体系
  • 数控机床CNC集中监控运维管理平台方案
  • 推理篇第12节:TensorRT-LLM(二)——KV Cache与PageAttention优化
  • 旧笔记本与树莓派改造:打造动态魔法相框的完整硬件与软件指南
  • 别只跑Demo了!用ONNX Runtime部署BGE嵌入模型,打造你的本地语义搜索服务
  • 大模型应用开发必读:OpenAI 接口格式全方位详解与生产最佳实践
  • 6款论文降AI率平台亲测:键清零AI痕迹,这款性价比封神 - 降AI小能手
  • 消费抵扣物业费模式系统设计:商家让利、分账机制与社区数字化平台架构
  • Pearcleaner:macOS应用彻底清理的终极指南,3步告别残留文件
  • 如何通过Obsidian Border主题实现高效知识管理与界面定制:终极指南
  • 生信分析 ProtMamba(现在生信最热的Mamba蛋白模型) *Mamba时序模型(替代Transformer)
  • 井下昼夜施工利器,鼎讯 DXA-3S 光纤熔接机性能详解
  • 绝区零自动化脚本终极指南:从零开始掌握全自动游戏助手
  • 基于Arduino打造物理音量控制器:从电位器原理到软硬件实现
  • Linux - Doris
  • 别急着重装系统!手把手教你安全模式禁用NVIDIA驱动,搞定VIDEO_TDR_FAILURE蓝屏
  • 500张真实火情图像数据集,含火焰与烟雾双类别YOLO+VOC标注