1.为什么使用虚拟机
1) 进行嵌入式开发,依赖的是 linux(Linux is not unix) 系统,主要以终端指令为主
2) linux也有图形化界面,由于嵌入式编程一般只将程序移植到开发板中,无需图形化界面
3) 课程前期,需要一直使用linux系统,做到从windows向linux的转换
2.Linux相关
2.1 简述linux
Linux是一种开源的、类Unix的操作系统,最初由Linus Torvalds于1991年发布。它基于Unix操作系统的设计哲学,旨在提供一个高效、稳定且安全的操作环境。
2.2 特点
- 开源:Linux内核和大多数应用软件都是开源的,用户可以自由下载、修改和分发源代码。
- 稳定性:Linux以其稳定性著称,特别适合用于服务器和其他关键任务环境。
- 安全性:Linux具有强大的权限管理和用户隔离机制,有助于保护系统免受恶意攻击。
- 多用户多任务:Linux支持多个用户同时使用和运行多个任务,极大提高了系统的利用效率。
- 兼容性:Linux可以在各种硬件平台上运行,从嵌入式设备到大型服务器。
2.3基本知识
用户名:hq whoami
主机名:Ubuntu hostname
:$中间位置 当前路径 默认在家目录~
查看当前路径:pwd
绝对路径:从根目录开始逐层向下查找 /home/hq/a/b/c
相对路径:以当前位置为参照
$:普通用户
root:超级用户
补充:Linux中一切皆文件
其中有两大特殊位置:
根目录与家目录
- 根目录(Root Directory):文件系统的顶级目录,用
/
表示。所有文件和目录都位于根目录之下。 - 家目录(Home Directory):每个用户的默认工作目录,通常位于
/home/username
。用户的所有个人文件和配置文件都存储在家目录中。可以使用命令cd ~
快速切换到家目录。
2.4基本命令
文件夹:mkdir 文件夹名字
文件:touch 文件名.后缀
mv
:移动或重命名文件。例如,mv oldname newname
重命名文件,mv file /new/path
移动文件。rm
:删除文件或目录。例如,rm file
删除文件,rm -r dir
递归删除目录及其内容。cp
:复制文件或目录。例如,cp file /new/path
复制文件,cp -r dir /new/path
递归复制目录及其内容。cd
:改变当前工作目录。例如,cd /path/to/directory
。ls
:列出目录内容。例如,ls
列出当前目录内容,ls -l
以详细信息格式列出。
-rw-rw-r-- 1 hq hq 0 7月 1 10:52 file1.c
文件类型 权限 链接数 用户名 组名 大小 修改时间 文件名
第一个字符:文件类型7种 bcd-lsp
b:块设备文件 /dev
c:字符设备文件
d:目录文件 文件夹
-:普通文件 .c .h .txt
l:链接文件 <LinuxC高级>
s:套接字文件 <网络编程>
p:管道文件 <IO>
rw-rw-r-- 文件权限 三个一组 共9个
rwx:可读可写可执行 rw-:可读可写不可执行
3.编辑器
常用的C语言代码编辑器有:
3.1Vim:功能强大但需要一定学习成本的文本编辑器。简单粗暴
插入模式,命令行模式,底行模式
3.2VS Code:由微软开发的跨平台代码编辑器,提供了丰富的扩展和插件支持。
3.3gcc 简写:
gcc test.c 编译文件,生成a.out
./a.out
或
gcc test.c -o test(可执行文件名)
./test
3.2 完整编译 4部
- 预处理
- 编译
- 汇编
- 链接
运行:./test
4.计算机存储单位
计算机存储单位的基本单位是比特(bit),进一步的单位包括:
- 字节(Byte, B):1字节 = 8比特。
- 千字节(Kilobyte, KB):1KB = 1024字节。
- 兆字节(Megabyte, MB):1MB = 1024KB。
- 吉字节(Gigabyte, GB):1GB = 1024MB。
- 太字节(Terabyte, TB):1TB = 1024GB。
5.计算机数据表示形式
二进制 0 1 2:10
八进制 0-7 8:010
十进制 0-9
十六进制 0-9 a-f 16:0x10
a | b | c | d | e | f |
10 | 11 | 12 | 13 | 14 | 15 |
6.词法符号
6.1关键词
存储类型:auto static extern register
数据类型:int char float short long double signed unsigned
构造数据类型:struct enum union
分支:if else switch case default for do while go to break continue
其他:void const sizeof volatile return typedef
6.2标识符
在给变量、数组、函数等命名时, 遵循标识符的命名规则:
1)由字母、数字、下划线(_)组成
2)开头不能是数字
3)不能和关键字重名
6.3 运算符
算术运算符 逻辑运算符 位运算符 关系运算符 三目运算符 赋值运算符
作业
#include <stdio.h>
int main(int argc, char *argv[])
{
int a = 10;
int b = a--; //b=10,a=9
int c = a + b + 2;//c=21
int d = (b--) + (++c);//d=10+22,b=9,c=22.
printf("%d\n",d);
} [单选题] *B
A. d = 31
B. d = 32
C. d = 33
D.d = 34
9
D