嵌入式学习1

📅 2026/7/22 22:06:50 👁️ 阅读次数 📝 编程学习
嵌入式学习1

Linus基础1

一、虚拟机基础操作快捷键

1. 窗口全屏切换

Ctrl + Alt + 回车 :虚拟机全屏/退出全屏

2. 终端快速打开

Ctrl + Alt + t :新建独立终端窗口
Ctrl + Shift + t :在当前终端内新建标签页

3. 终端字体缩放

Ctrl + Shift + + :放大终端字体
Ctrl + - :缩小终端字体

二、终端基础概念

2.1 命令提示符解析

示例提示符: linux@linux-virtual-machine:~$

- linux :当前登录用户名
- linux-virtual-machine :虚拟机主机名
- ~ :当前工作路径,代表当前用户家目录
- $ :普通用户身份标识;root超级用户提示符为 #

2.2 Linux两类用户

1. 普通用户
权限受限,无法修改系统核心文件;家目录统一存放于 /home/用户名 ,示例 /home/linux
2. 超级用户root
系统最高权限账号,可读写修改系统全部文件;专属家目录 /root

2.3 用户切换命令

bash

su 目标用户名


执行后输入对应账号密码,即可切换登录身份。

2.4 man手册(命令官方帮助文档)

Linux内置8类标准手册,使用 man 目标命令 即可查看完整官方说明:

1. 标准用户命令
2. 系统调用API
3. C语言库函数
4. 硬件设备说明
5. 配置文件格式
6. 游戏娱乐工具
7. 杂项规范文档
8. 系统管理员命令

2.5 通用命令语法格式

bash

command [-options] arg1 arg2 ...
# 语法释义:命令 [可选参数] 操作对象1 操作对象2


三、ls命令与Linux文件类型、权限详解

3.1 ls基础用法

bash

ls # 列出当前目录下所有文件、文件夹
ls -l # 详细格式展示文件权限、大小、创建时间等完整信息


终端颜色区分规则:

- 蓝色:目录(等同于Windows文件夹)
- 白色:普通文本文件

3.2 Linux 7种文件类型

执行 ls -l 后,每行开头第一个字符代表文件类型:

1. d directory:目录文件
2. - :普通文本文件
3. l link:软链接(Windows快捷方式)
4. b block:块设备(硬盘、U盘等存储硬件)
5. c character:字符设备(鼠标、键盘等外设)
6. s socket:套接字文件,用于进程间网络通信
7. p pipe:管道文件,本地进程数据传输

3.3 rwx三段式权限解读

示例权限字符串: rwxr-xr-- ,分为三段,每段3位权限标识

1. 第一段:文件所有者权限
2. 第二段:文件同组用户权限
3. 第三段:系统其他所有用户权限

权限标识含义:

- r read:读权限
- w write:写/修改权限
- x execute:执行权限

数字权限换算规则:r=4 w=2 x=1
例: rwxrwxrwx = 4+2+1 4+2+1 4+2+1 = 777

四、权限&文件属主管理命令

1. chmod 修改文件权限

bash

# 数字权限设置示例:所有者读写执行,组用户只读执行,其他用户只读
chmod 0754 test.txt


2. chown 修改文件所有者

bash

chown linux test.txt


3. chgrp 修改文件所属用户组

bash

chgrp linux test.txt


4. sudo 临时获取root权限

普通用户执行系统安装、修改配置等高危操作时,命令前加sudo,临时借用超级管理员权限

bash

sudo apt update


五、文件&目录基础操作命令

5.1 创建文件/文件夹

1. touch:创建空普通文件

bash

touch hello.txt


注意:Linux系统不依靠后缀区分文件类型,后缀仅为方便人工识别;文件名严格区分大小写,禁止使用空格,建议用下划线 _ 替代空格

2. mkdir:创建空目录

bash

mkdir test_dir


5.2 删除文件/文件夹

1. rm:删除普通文件

bash

rm hello.txt


2. rmdir:仅能删除空目录

bash

rmdir test_dir


3. 强制删除非空目录(谨慎操作!删除后无法恢复)

bash

rm -rf test_dir


5.3 复制 cp

bash

# 复制单个文件到桌面
cp file.txt ~/Desktop
# 递归复制整个文件夹(目录复制必须加-rf参数)
cp test1 test2 -rf


5.4 移动/重命名 mv

bash

# 移动文件到指定目录
mv file.txt ./test_dir
# 对文件重命名
mv oldname.txt newname.txt


六、路径切换与系统目录结构

6.1 cd 切换工作目录

bash

cd ~ # 切换到当前用户家目录
cd / # 切换到系统根目录
cd .. # 切换到上一级目录
cd ./test # 进入当前目录下的test文件夹
cd /home/linux/Desktop # 绝对路径跳转


6.2 pwd 查看当前绝对路径

bash

pwd


6.3 绝对路径 vs 相对路径

1. 绝对路径:从根目录 / 开始完整书写,任意目录执行效果完全一致
例: /home/linux/Desktop
2. 相对路径:基于当前所在目录书写,切换目录后路径失效
例: Desktop 、 ../test 、 ~/Desktop

6.4 Linux根目录核心文件夹说明

根目录 / 是系统顶层目录,所有硬件、文件、程序均挂载于此:

目录 核心作用
/bin 系统基础二进制可执行命令
/boot 系统开机内核、启动文件
/dev 硬件设备映射文件(硬盘、鼠标、U盘)
/etc 系统全局配置文件存放目录
/lib 程序运行依赖的动态库文件
/mnt 外部存储设备临时挂载目录
/proc 实时运行进程、内核状态信息
/var 系统日志、软件缓存、运行数据
/home 全部普通用户家目录统一存放处
/root root超级用户专属家目录

七、综合实操练习题(可直接上机复现)

复制以下命令依次执行,完整练习文件目录全套操作:

bash

# 1. 切换到桌面目录
cd ~/Desktop

# 2. 一次性创建test1 test2 test3三个文件夹
mkdir test1 test2 test3

# 3. 分别在三个文件夹创建对应txt文件
touch test1/file1.txt test2/file2.txt test3/file3.txt

# 4. 将test1/file1.txt复制到test2文件夹内
cp test1/file1.txt test2

# 5. 将整个test3目录复制到test2内部
cp test3 test2 -rf

# 6. 将test2文件夹移动到test1内部
mv test2 test1

# 7. 将test1重命名为dirname
mv test1 dirname


八、Vi编辑器(Linux标准文本编辑器)

8.1 打开/创建文件

bash

vi hello.c


文件不存在则自动新建,文件存在则直接打开编辑。

8.2 Vi三种工作模式

1. 命令模式(默认):刚打开文件默认进入,按 ESC 可从其他模式切回;用于复制、删除、跳转光标
2. 插入模式(编辑文字):命令模式输入 i/a/o 进入,可编写C代码、文本内容
3. 底行模式:命令模式输入 : 进入,执行保存、退出、查找、替换等操作

8.3 常用底行命令

plaintext

:w # 仅保存文件,不退出编辑器
:q # 文件未修改,直接退出vi
:q! # 放弃所有修改,强制退出
:wq # 保存文件并正常退出
:wq! # 强制保存并退出(只读文件专用)


8.4 C语言代码编写完整流程示例

1. 终端输入 vi hello.c 打开编辑器
2. 按下 i 进入插入模式,写入测试代码

c

#include <stdio.h>
int main(void)
{
printf("Hello Linux C!\n");
return 0;
}


3. 按下 ESC 退回命令模式
4. 输入 :wq 回车,保存代码并退出vi

九、GCC编译器编译C程序

9.1 基础编译命令

bash

# 默认生成a.out可执行文件
gcc hello.c
# 自定义输出程序名(推荐写法)
gcc hello.c -o hello


注意:gcc输出error报错必须修改代码语法;warning警告仅为代码优化提示,不影响程序编译运行,但建议优化代码规避警告。

9.2 运行编译后的程序

bash

# 自定义名称程序运行
./hello
# 默认a.out程序运行
./a.out