Linux基础及命令合集

📅 2026/7/22 5:07:25 👁️ 阅读次数 📝 编程学习
Linux基础及命令合集

前言

本帖基于 Ubuntu 64 位虚拟机整理,面向嵌入式 Linux 入门学习者,汇总终端常用快捷键、系统目录结构、Linux 基础文件命令、权限管理、Vim 编辑器操作、GCC 编译流程、ARM 交叉编译等实操内容。重点服务虚拟机下 C 语言程序开发与嵌入式前期环境调试,记录日常高频指令、易错点与规范要求,方便快速查阅、上机练习。笔记同时标注新手常见踩坑问题,适合反复复习,作为上机实验速查手册。

一、终端快捷键

窗口与字体

  • Ctrl + Alt + T调出终端
  • Ctrl + Shift + '+'放大终端字体
  • Ctrl + '-'缩小终端字体
  • Ctrl + Shift + T新建终端 Tab 标签页
  • Tab/PageUp、Tab/PageDown 切换多个 Tab 标签

复制粘贴

  • Ctrl + Shift + C复制
  • Ctrl + Shift + V粘贴

命令行快捷操作

  • ↑ ↓ 上下翻阅历史输入命令
  • Tab自动补齐命令、路径、文件名;连续按两次 Tab 列出所有匹配选项
  • Ctrl + A光标跳转至行首
  • Ctrl + E光标跳转至行尾
  • Ctrl + U清空当前整行输入
  • Ctrl + L等价于clear清屏
  • Ctrl + C终止当前正在运行的程序
  • Ctrl + Z暂停程序至后台,fg恢复前台运行
  • Ctrl + R反向搜索历史命令
  • clear清屏,清空当前终端输出

小提示:Terminal 菜单栏 New Tab / New Window 可实现多窗口、分页同时操作

二、系统目录结构

  • /根目录,所有文件起点
  • ~用户家目录,例:/home/linux
  • /bin普通用户常用二进制命令程序
  • /sbin管理员使用的系统二进制程序
  • /opt大型第三方软件安装目录(交叉编译器、Qt 等)
  • /etc系统各类配置文件
  • /lib系统共享库文件
  • /home所有普通用户家目录存放位置
  • /mnt手动挂载外设目录
  • /media系统自动挂载 U 盘、光盘等移动设备
  • /dev设备文件(硬盘、串口、U 盘等硬件抽象文件)
  • /var日志文件、缓存数据
  • /rootroot 管理员专属家目录
  • /boot系统启动相关文件
  • /proc虚拟目录,存放进程、CPU、内存实时信息
  • /tmp临时目录,系统重启自动清空

路径概念

  • 绝对路径:从根目录/开始书写,例:/home/linux/test.c
  • 相对路径:不以/开头,基于当前工作目录;.当前目录、..上一级目录

三、Linux 基础命令格式

通用格式:命令 [参数] [文件/路径][]代表内容可选

1. 目录浏览 ls

  • ls显示当前路径下所有文件名称
  • ls -l显示文件详细权限、大小、时间信息
  • ls -a显示所有文件,包含.开头隐藏文件
  • ls -lh人性化单位展示文件大小(KB/MB)
  • ls -ld 目录名只查看目录自身信息,不展开内部文件
  • ls -R递归列出所有子目录内容

2. 切换目录 cd

  • cd /切换至根目录
  • cd 路径切换到指定工作路径
  • cd ..返回上一级目录
  • cd ~返回当前用户家目录(/home/linux
  • cd -快速切换回上一次所在目录

3. 查看当前路径 pwd

pwd(print work directory):打印当前工作路径

4. 创建文件 / 文件夹

  • touch 文件名创建普通空文件(.c/.txt);也可修改文件时间戳 示例:touch Desktop/file1.txt
  • mkdir 目录名创建单层文件夹
  • mkdir -p 2026/0721递归创建多级目录

⚠️重点:不加-p,上级目录不存在时命令会报错

批量创建多个目录:mkdir dir1 dir2 dir3

5. 删除文件 / 文件夹

⚠️重要提醒:Linux rm 删除无回收站,谨慎操作!

  • rm 文件名删除普通文件
  • rm 文件1 文件2批量删除多个文件
  • rm -r 文件夹删除文件夹(递归)
  • rm -rf 目标强制递归删除,高危命令!禁止执行rm -rf /
  • rm -i 文件名删除前交互式确认
  • rmdir仅能删除空目录

6. 文件查看

  • cat 文件名一次性输出文件全部内容,适合小文件
  • less 文件名分页浏览,支持上下箭头滚动,q退出(推荐)
  • more 文件名简易分页查看
  • head -n 10 test.c查看文件前 10 行
  • tail -n 20 test.c查看文件末尾 20 行;tail -f实时跟踪日志

7. 复制 cp

  • cp 源文件 目标路径/目标文件名
  • cp -r 源文件夹 目标文件夹复制目录(必须加-r递归)
  • cp -i覆盖文件前提示确认

8. 移动 / 重命名 mv

  • mv 源文件 目标文件同目录下等价重命名
  • mv 源文件 目标文件夹剪切移动文件
  • mv 源文件夹 目标文件夹剪切移动文件夹

9. 权限管理 chmod

权限规则:r=4,w=2,x=1权限字符串共 10 位:

第 1 位:文件类型(-普通文件、d目录、l软链接)

2~4 位:文件属主权限

5~7 位:同组用户权限

8~10 位:其他用户权限

示例:chmod 0777 文件名

答疑:权限数字为八进制编码,规范书写需要前缀0区分进制;十六进制前缀为0x

配套命令:chown 用户:组 文件修改文件所有者(需要 sudo)

10. 磁盘空间查看

  • df -h查看系统各个分区挂载与磁盘占用
  • du -h 目标查看文件 / 文件夹占用空间大小
  • du -h --max-depth=1 /home/linux限制递归深度为 1 级
  • du -sh *查看当前目录下所有文件总大小

11. 帮助手册

man 命令名查看命令官方手册

12. 权限提升 sudo

普通用户无法修改系统目录(/根目录、/etc等),命令前加sudo临时获取管理员权限

  • sudo 命令单次提权执行
  • sudo -i直接切换为 root 管理员(提示符#

输入密码时终端不显示任何字符,属于正常现象

13. 可执行文件运行

./a.out

前提:文件拥有可执行权限,权限不足执行chmod +x a.out

14. 用户切换相关

  • $:普通用户提示符
  • #:root 超级管理员提示符

四、U 盘挂载(嵌入式开发常用)

预设挂载路径:/mnt/udisk,图片、音视频资源存放位置

sudo mkdir -p /mnt/udisk sudo mount /dev/sdb1 /mnt/udisk # 使用完毕必须卸载再拔盘,防止文件损坏 sudo umount /mnt/udisk

五、Vim 编辑器(C 语言代码编写)

文件后缀必须为.c

三大模式

  1. 普通模式(默认,Esc 进入):复制、剪切、跳转、撤销
  2. 插入模式:编写代码
  3. 底行模式(普通模式按::保存、退出、全局设置

切换插入模式

  • i:光标前插入
  • a:光标后插入
  • o:光标下方新建一行插入
  • I:当前行首插入
  • A:当前行尾插入
  • O:光标上方新建一行插入

普通模式常用操作

  • u撤销
  • Ctrl + r反撤销
  • gg跳转文件首行
  • G跳转文件末尾;15G直接跳转到第 15 行
  • nyy复制光标向下 n 行;yy复制当前一行
  • ndd剪切光标向下 n 行;dd剪切当前一行
  • p粘贴到光标下一行;P粘贴到光标上一行

底行模式常用指令

  • :%d清空全文所有内容
  • :set nu显示行号(:set nonu关闭行号)
  • gg=G一键格式化全部代码缩进
  • :/关键词向下搜索文本,n下一处,N上一处
  • :%s/旧文本/新文本/g全文批量替换

保存 & 退出

  • :w仅保存
  • :q仅退出(无修改才能退出)
  • :wq/:x保存并退出
  • :w!强制保存(只读文件)
  • :q!强制放弃修改退出
  • :wq!强制保存并退出只读文件

六、GCC 编译器与 C 语言开发流程

编译四阶段:预处理 → 编译 → 汇编 → 链接

  1. 预处理:展开头文件、宏替换gcc -E test.c -o test.i
  2. 编译:生成汇编代码gcc -S test.i -o test.s
  3. 汇编:生成目标文件.ogcc -c test.s -o test.o
  4. 链接:整合系统库,生成可执行程序

基础编译命令:

gcc test.c # 默认生成 a.out gcc test.c -o app # 自定义可执行程序名称 ./app # 运行程序 # 多文件联合编译 gcc main.c func.c -o app

编译参数拓展

  • -I路径:指定头文件搜索目录
  • -L路径:指定库文件搜索目录
  • -l库名:链接指定库

七、ARM 交叉编译

arm-linux-gcc test.c -o arm_app

生成 ARM 架构可执行程序,不能在 Ubuntu 虚拟机直接运行,需要下载到 ARM 开发板执行。

八、C 语言代码编写规范

  1. 头文件、main 函数顶格对齐;
  2. {}内部代码统一缩进,Linux 环境 1 个 Tab = 8 个空格;
  3. 成对符号() {} ""一次性写完,避免遗漏;
  4. 功能模块之间空一行,提升可读性;
  5. if/for/while 即便只有一行代码,也要加上大括号;
  6. 运算符两侧添加空格,逗号后添加空格;

九、补充实用检索 / 打包命令

  • grep "关键词" test.c在文件内检索指定字符串
  • find . -name "*.c"递归查找当前目录下所有 C 文件
  • 压缩:tar -zcvf code.tar.gz ./code
  • 解压:tar -zxvf code.tar.gz
  • Ubuntu 安装软件:sudo apt install 软件名

总结

这份笔记覆盖嵌入式入门阶段 Ubuntu 虚拟机最核心的实操内容:终端操作、Linux 文件系统命令、权限机制、Vim 代码编辑、GCC 编译与 ARM 交叉编译,支撑基础 C 语言开发与开发板前期调试工作。 Linux 系统严格区分大小写,删除、修改系统文件等高风险操作务必谨慎,养成操作前确认路径、文件名称的习惯;学会善用 Tab 补全、man 手册、历史命令提高上机效率。后续学习可以在此基础上拓展 Shell 脚本、进程、IO 操作、Makefile 工程管理等内容,逐步过渡到嵌入式 Linux 应用开发。