编译器
VMware虚拟机与Ubuntu与LinuxOS
VMware虚拟机
虚拟出来的一个PC机,独立于Windows之外的虚拟操作系统。允许用户在单一的物理硬件上运行多个操作系统实例。
Ubuntu——LinuxOS
Ubuntu是Linux发行版之一,是基于Linux内核的一个完整操作系统,它不仅包含内核,还包括用户界面、应用程序和管理工具等。
位数——>影响到最大存储和处理速度。
为什么使用LinuxOS?
- 嵌入式是以应用为中心,以计算机为基础,软硬件可裁剪;
(裁剪,其分为两方面,软件裁剪与硬件裁剪,硬件裁剪例如引脚功能复用,软件裁剪就需要用到LinuxOS。
为什么需要修改——在特定环境特定领域下,根据用户需要。) - Linux功能强大,代码开源,可裁剪,正贴合嵌入式需要;
- Linux下一切皆文件。
目录结构
Windows目录结构:像倒置的森林——有盘符之分
Linux目录结构:像一颗倒置的树
- 根目录(/):顶层目录(所有路径都从它开始)
- 绝对路径:从根目录开始的路径
- 相对路径:相对于当前位置的路径
- 家目录(~)(HOME)(工作目录)(主目录)
home是不是家目录?
home不是家目录,home之下是用户,可以有多个用户。而用户之下才是家目录。
当处于家目录之上,普通用户没有操作权限
Linux常用命令
终端
- 打开终端
快捷键ctrl+alt+t:打开默认家目录路径的终端
快捷键ctrl+shift+t:打开一个和当前路径相同的终端
- 控制终端
快捷键ctrl+shift+(+) 放大终端窗口
快捷键ctrl+(-) 缩小终端窗口
终端输creal/ctrl+l 清屏
命令行提示符与权限切换
权限切换
//普通——>超级用户
sudo su
sudo -i
//超级用户——>普通用户
su - 用户名
命令
命令 [选项] [参数]
注意:
- [ ]括起来的都可以省略 选项:命令的拓展功能 参数:命令需要操作的对象
- 三者之间均要空格隔开
tip:
- tab:自动补全
- 上下箭头:查看历史命令
- pwd:显示当前所在的绝对路径*
- ls命令
显示当前路径文件
ls #显示当前路径文件
ls -l #显示当前路径下文件以及属性
ls -a #显示当前路径下文件(包括隐藏文件)
ls -la #显示所有文件属性
根据颜色区分文件:
蓝色: 文件夹
白色: 文件
绿色: 可执行文件
淡蓝色: 连接文件
- mkdir命令
创建文件夹
mkdir 文件夹名
mkdir -p 文件名/文件名/... #创建多级目录,也就是路径中包含多个层级的目录
- touch命令
创建空文件
touch 1.txt
- rm命令
删除文件/文件夹(一次可以删除多个)
rm 文件名
rm -r 文件夹名
rm -ri:删除文件夹并且会询问你是否要删除
- rmdir命令
删除空文件夹(一次可以删除多个)
rmdir 文件夹名
rmdir -r 文件夹/文件夹路径:删除空/非空文件夹
- cd命令
切换当前目录到其他地方
cd #直接回到家目录
cd .. #进入上一级目录
cd - #进入上一次操作的路径
cd 绝对路径/相对路径 #进入绝对路径或者相对路径
- cp命令
复制文件或文件夹到目标路径下
cp 源文件 目标文件中
cp -r 源文件夹 目标文件夹
cp -r命令作用:用于递归复制目录及其内容到另一个位置
- mv命令
作用1:移动(移动指定的文件或文件夹到目标路径下)
mv 文件/文件夹 目标文件
作用2:重命名(将文件改名)
mv 原文件名 新文件名
- cat与more
cat命令作用:查看文档内容,适合查看比较短的文档
cat 文件名
more命令作用:查看文档内容,适合查看比较长的文档
more 文件名
在查看比较长的文档时
- 按 Space(空格) 向下走一页
- 按 Enter(回车) 向下走一行
- 按Q(q)退出
- 按B(b)向上走一页
- 关机重启
#sudo表示以root用户的权限去运行
linux@ubuntu:~$ sudo reboot #重启
linux@ubuntu:~$ sudo shutdown -h +30 #30分钟之后关机
linux@ubuntu:~$ sudo shutdown -h now #现在关机
Vim编辑器
vim 文件名 #(如果此文件存在,就进入文件并进行编辑,如果不存在,则创建文件并进入编辑)
三种模式:
- 命令行模式(刚进入)
- 插入模式
- 底行模式
三种模式如何切换?
命令行模式—>插入模式 i
插入模式—>命令行模式 esc
命令行模式—>底行模式 shift+:
底行模式—>命令行模式 esc
底行模式下:
w:保存
q:退出
wq:保存并退出
q!:强制退出
wq!:保存并强制退出
set nu:显示行号
set nonu:取消显示行号
命令行模式下:
yy:复制
dd:剪切(剪切后不粘贴则为删除)
p:粘贴
nyy:复制n行
ndd:删除n行
u:撤销
ctrl+r:反撤销
gcc编译器
gcc hello.c
这种方式下默认生成的可执行文件名字为 a.out
执行可执行文件
./a.out
编译为指定文件名方法
gcc hello.c -o hello
执行可执行文件
./hello
GDB调试工具
安装GDB
sudo apt-get install gdb
1.编译时加参数
gcc -g hello.c -o hello
2.启动GDB
gdb hello
3.设置断点
break 10 #在第10行打断点
break hello.c:10
break main #打断点在main函数
b
4.运行
run
r
5.查看变量
print var
p
6.单步执行
step #进入函数内部
s
next #不进入函数内部
n
7.继续执行
跳出循环继续执行,直到下一个断点
continue
c
8.观察点
设置观察点观察变量值的改变
watch var
9.修改变量的值
- 在调试中修改变量的值
set variable_name = value
10.删除断点和观察点
info watchpoints #先列出所有的观察点,以便于查到想要删除的观察点的编号
delete <watchpoint-name> #根据编号删除
11.退出
quit
q