当前位置: 首页 > 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.zskr.cn/news/1455577.html

相关文章:

  • SteamBot架构设计深入解析:5大核心模块实现自动化交易最佳实践
  • 2026年信创协同系统哪家的靠谱?一文搞懂你该怎么选
  • 探讨在不同物理显示媒介上优化响应式栅格系统设计规范色彩空间与视觉对比度的规范体系
  • 推理篇第12节:TensorRT-LLM(二)——KV Cache与PageAttention优化
  • 大模型应用开发必读:OpenAI 接口格式全方位详解与生产最佳实践
  • Pearcleaner:macOS应用彻底清理的终极指南,3步告别残留文件
  • 如何通过Obsidian Border主题实现高效知识管理与界面定制:终极指南
  • Linux - Doris
  • 苏州本地连锁防水修缮品牌有哪些?2026实力服务商权威盘点 - 苏易修缮
  • 【Robotics】半小时入门具身智能之Win11下IsaacSim环境搭建
  • 智能任务调度系统设计白皮书(2024企业级AI Ops标准草案首次公开)
  • 山西省中级经济师工商管理/人力资源管理:适配人群、岗位匹配与备考全攻略 - 众智商学院课程中心
  • 微积分(十二)——多元微积分:高维空间中的变化
  • 圣擎航空深耕非洲航线机票服务助力企业高效通达非洲核心城市 - 土星买买买
  • 如何5分钟快速掌握AsrTools:智能语音转文字的终极指南
  • 实战指南:如何高效应用15MW海上风力涡轮机开源仿真模型
  • 从落地视角拆解企业Agent三层落地骨架
  • PKHeX AutoLegalityMod插件:一键生成合法宝可梦的终极解决方案
  • 基于Arduino与超声波传感器的智能捐赠箱:从感知到交互的嵌入式实践
  • DIY显微镜环形灯:从CD4017计数器到PWM调光的完整电子设计实践
  • 【仅限首批200名开发者】解锁AI工具偏好整合密钥:基于127万条真实交互日志训练的偏好校准微调包(含TensorRT加速版)
  • 星盘接口开发文档:三限比接口指南
  • ESXi 6.7克隆虚拟机后,磁盘扩容和LVM调整的完整避坑指南
  • 保姆级教程:在ThingsBoard里用规则链给设备温度设个“电子哨兵”
  • 如何3分钟搞定B站缓存转换:终极高效指南
  • 如何快速部署Leantime:面向新手的完整项目管理安装指南
  • 漫画迷的终极救星:告别在线焦虑,打造你的私人漫画图书馆
  • ESP-07模块自制PCB适配板:从2mm引脚到标准面包板的完整开发平台设计
  • 如何快速掌握macOS光标个性化:免费神器Mousecape的终极指南
  • Jina Reader终极指南:如何免费让AI读懂整个互联网内容