那些埋首敲命令的日子,都成了成长的底色。

一、嵌入式相关基础认知

1. 嵌入式定义

嵌入式是以应用为中心,以计算机技术为基础,软硬件可裁剪,对功能性、可靠性、成本、体积、功耗严格要求的专用计算机系统。

  • 面向特定应用场景;
  • 以计算机技术为基础,适配不同硬件载体:
    • 设备类型:PC(Windows10/11、Ubuntu、MacOs)、移动设备(Android、iOS 等);
    • 硬件组成:存储设备(内存 / 硬盘)、处理器(CPU)、外设(显示器、鼠标、打印机、投影仪等);
  • 软硬件可裁剪,(空调、路由器)
  • 需兼顾功能性、可靠性、可移植性、功耗、成本等维度。

二、Linux 系统基础

插一条思考:ubuntu和linux之间的关系以及ubuntu版本命名的规则

  1. Ubuntu是linux的系统发行版,简单来说就是给Linux这一操作系统核心加上用户需要的软件(如桌面环境、编译器、终端、浏览器)、配置工具、安装程序,打包成可直接安装使用的完整操作系统;类比于毛坯房和精装房,汽车发动机引擎和汽车外壳、座椅等。
  2. Ubuntu版本命名规则是按照年份加月份,比如我使用的版本叫做18.04 就是2018年4月份发行的。其次每 2 年的 4 月会发布 LTS 长期支持版(如 18.04),支持 5 年,普通版本每 6 个月发布,支持 9 个月。每个版本还有‘形容词 + 动物’的代号,比如 18.04 的代号是 Bionic Beaver。

1. Linux 终端操作

(1)终端快捷键
  • ctrl+alt+t:打开终端
  • ctrl+shift+ +:放大终端窗口
  • ctrl+ -:缩小终端窗口,适配不同的操作视角;
  • ctrl+0:恢复终端默认大小
(2)终端提示符含义

示例:linux@ubuntu:~$

  • linux:当前登录用户名;
  • @:分隔符(at)
  • ubuntu:主机名;
  • ::分隔符
  • ~:当前用户的家目录(默认目录)
  • $:普通用户标识(# 代表 root 管理员用户)

3. Linux 核心命令(标准格式:【命令】 [选项] [参数])

(1)pwd(Print Work Directory)
  • 功能:打印当前工作目录(查看当前路径)
  • 示例:

    plaintext

    linux@ubuntu:~$ pwd
    /home/linux
    
  • 路径对比:
    • Windows:G:\01-学习资料\嵌入式开发\pute资料\C语言进阶可视化编程\示例图
    • Linux:根目录是 /,所有文件和目录的路径都从 / 开始算,比如 /home/linux 就是从根目录 / 往下找 home 目录,再找 linux 目录;而 Windows 是按 C 盘、D 盘、E 盘这种盘符来划分不同路径的,Linux 没有盘符,全靠根目录 / 统一管理所有路径。
(2)ls(list)
  • 功能:列出指定位置的文件 / 目录
  • 常用用法:
    • ls:查看当前位置内容;
    • ls 目录名:查看指定目录内容(如 ls / 查看根目录内容);
  • 颜色标识:
    •  蓝色 文件夹 
    • 白色 普通文件
    • 绿色 可执行文件 
    •  红色 压缩包 
             
(3)cd(Change Directory)
  • 功能:切换目录
  • 常用用法:
    • cd 目录名:切换到指定目录(绝对路径:cd /home,相对路径:cd home);
    • cd:默认回到家目录
    • cd ~:等价于家目录(/home/linux);
    • cd .:停留在当前目录
    • cd ..:切换到上一级目录
    • cd -:切换到上一次操作的目录
(4)touch
  • 功能:创建空文件
  • 示例:touch 1.txt(在当前位置创建 1.txt,未指定路径则默认当前路径)。
(5)mkdir(make directory)
  • 功能:创建目录
  • 常用用法:
    • mkdir 123:在当前位置创建 123 目录;
    • mkdir 1/2/3 -p:递归创建多级目录
(6)cp(Copy)
  • 功能:复制文件 / 目录
  • 常用用法:
    • cp 源文件 目标文件:复制文件(如 cp 1.txt 2.txt);
    • cp 源文件 目标目录:复制文件到指定目录(如 cp 1.txt dir1);
    • cp 源文件 目标目录/新文件名:复制并重命名(如 cp 1.txt dir1/back_1.txt);
    • cp 源目录 目标目录 -r:递归复制目录(-r 必加,如 cp dir1 dir2 -r)。
(7)mv(Move)
  • 功能:移动 / 重命名文件 / 目录(类似 Windows 的剪切)
  • 常用用法:
    • mv 1.txt 2.txt:将 1.txt 重命名为 2.txt(源文件消失);
    • mv 1.txt dir1:将 1.txt 移动到当前目录下的 dir1 目录;
    • mv dir1 dir2:若 dir2 不存在则重命名,若存在则将 dir1 移动到 dir2 内。
(8)rm(remove)
  • 功能:删除文件 / 目录
  • 常用用法:
    • rm 文件名:删除文件(如 rm 1.txt);
    • rm 目录名 -r:递归删除目录(必加 -r,如 rm dir1 -r)。

三、实操练习

基础练习

  1. 在当前目录下创建 test 目录
  2. 进入 test 目录,创建 1/2/3 三级目录
  3. 在 3 目录下创建 test.txt 文件

综合练习

  1. 复制/etc/passwd文件到当前用户家目录(如/home/linux
  2. 将家目录下的 passwd 文件重命名为 passwd-bak
  3. 在用户家目录下新建 test_dir 目录
  4. 将 passwd-bak 移动到 test_dir 目录
  5. 将 test_dir 目录下的 passwd-bak 重命名为 passwd
  6. 将 test_dir 目录复制到用户家目录的 Desktop 目录(如/home/linux/Desktop
  7. 将 Desktop 目录下的 test_dir 重命名为 dir
  8. 删除 Desktop 目录下的 dir 目录

四、Linux 下 C 语言开发

1. 开发工具链

  • 编辑器:vim(编写)
  • 编译器:gcc(编译)
  • 调试器:gdb(调试)

2. vim 基础使用

  1. vi hello.c:打开 / 新建 hello.c 文件(默认进入命令模式)
  2. i进入编辑模式
  3. 编辑完成后按ESC回到命令模式,输入shift+:进入底行模式,为文件的保存与退出做准备;
  4. 底行模式操作:
    • w:保存文件
    • q:退出 vim
    • wq:保存并退出

3. 编译与运行

  • 编译:gcc hello.c(默认生成可执行文件 a.out)
  • 运行:./a.out

写在最后

嵌入式与 Linux 的学习,从来不是一蹴而就的旅程,但每一次弄懂一个知识点,每一次敲对一条命令,都是向目标靠近的一步。愿每一份埋首的努力,都能化作前行的底气。

希望我能一直坚持下去,拨云见日。

如有错误请指正,谢谢大家的阅读。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐