一、嵌入式、Linux背景
1、嵌入式:
硬件与软件相结合
定制、为硬件设计相关代码来进行操作,代码测试,烧进板子,通过语音、图像、按钮等操作方式来调用。
2、操作系统种类:
Dos,Windows,Unix,Mac,Chmod os,Android->华为、小米、中兴等等,iOS。
二、介绍一下Linux
1、结构:一棵倒置的树
/bin (binary) 可执行二进制或脚本
/boot (boot) 引导程序文件
/dev (devices) 系统的设备文件
/etc (etcetera) 程序的配置文件
/home (home) 用户目录
/lib (libraries) 函数库
/root (root) 根用户(超级用户)的主目录
2、Linux的主要特点:
完全免费:用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。
安全性:Linux采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。
多用户:可以被不同用户使用,每个用户对自己的资源有特定的权限,互不影响。
多任务:同时执行多个程序,而同时各个程序的运行互相独立。
独立性和可移植性都是说可以适应不同环境,内核都是一样的。
Windows:必选图形界面,上手容易,有文件拓展名,不区分大小写。
Linux:可选图形界面,需要有编程基础者使用,不使用文件拓展名,区分大小写。
三、Linux命令
1、终端,命令驱动
命令组成:command [ options ] [ parameter ]
命令字 选项 参数
命令字:决定了主要操作是什么(命令名称)
参数:指命令的操作对象
选项: 指该操作的一些执行方式
打开终端:
ctrl + alt + t ctrl+shift+n(已经打开一个终端的情况下再打开)
关闭终端:
exit 或 alt+F4 或 CTRL+d
调整终端
放大:Ctrl+shift+“+”
缩小:Ctrl+“-”
2、改密码
passwd
错误演示:
改正:
加sudo增加权限,短暂获得root用户权限
3、切换到超级用户:
退出超级用户 exit 或 ctrl+d
#root用户
$普通文件
sudo 临时权获取管理员权限,放在需要执行的命令之前
4、路径分类:
绝对路径 (路径字符串中含根目录的写法)
相对路径 (在一个参考目录位置(当前目录作为参考位置)基础上的一种写法)有/,绝对路径
5、pwd :print work directory
作用:显示当前工作目录的绝对路径
6、man:manual
作用:可以查看命令或函数(OS提供的函数和C库函数)的用法
用q退出
7、创建一个用户
如果没有权限,就加sudo,切换用户 su .
先从 ctrl + d 退出当前用户
再切换到 root
deluser 或者 userdel 名字
删除用户,先切换到根用户
权限不够,没有资格删除,切换到 root
如果出现正在使用无法删除
说明有进程还在后台运行,需要用 ctrl+d 退出
可以不加 -r ,加 -r 是为了删除它留在系统上的文件
可以不加 -f ,加 -f 是为了强制删除
9、查看用户
查看命令
10、cd命令
change directory 切换目录
cd 路径 //绝对路径或者相对路径
几个特殊目录
. 当前工作目录
.. 上一级的工作目录
- 上一次的工作目录
~ 当前系统登录的用户家目录
11、ls 命令
查看当前工作目录里的内容ls
语法:ls 可选参数 可选的文件
-a 显示所有的文件,包括隐藏
-l 详细输出文件夹中的内容
-h 人类可读方式输出
ls -lh ls -hl
--full-time完整的时间格式输出
-t 根据最后修改时间排序
-r 逆转排序
ls -tr
-d 显示文件夹本身内容,不输出其中内容
-S(大写) 针对文件大小进行排序,默认从大到小
-F 特殊后缀输出
以/结尾的就是文件夹
以*结尾的就是可执行文件
以@结尾的就是软链接,就是快捷方式
普通文件类型结尾什么都没有
查看文件内容
12、cat 文件名
13、创建目录 mkdir 目录名 创建一个空目录
mkdir -p 目录/子目录 先创建目录,在创建子目录
mkdir -v 目录名 创建目录之后显示信息
创建一个名为“file”的新的空白文件 touch file
14、rm 删除文件或目录
15、复制文件或目录 cp
语法格式:
cp 源文件 目标目录 复制源文件到目标目录下
cp -a 源目录 目标目录 复制整个目录到目标目录
cp -a 源目录/. (这里有一个空格)目标目录:复制整个目录的文件到目标目录
16、重命名: mv 源文件 目标名称文件
源文件移动到目标目录: mv 源文件 目标目录
17、查看权限命令:chmod
作用:改变指定文件或目录的操作权限
用法:
用三位8进制数表示操作权限
chmod 三位8进制数 需要改变权限的带路径的文件或目录名
用特殊字母和符号表示相应权限操作
a:所有用户 u:主人
g:小组用户 o:其他用户
+:启用相应权限 -:去除相应权限
=:设置成指定权限
r:读权限 4 w:写权限 2
x:可执行权限 1
chmod a+x 需要改变权限的带路径的文件或目录名
chmod o-w 需要改变权限的带路径的文件或目录名
chmod u=w 需要改变权限的带路径的文件或目录名
备注:加上-R选项,可以告诉chmod命令同时将指定目录下的所有内容以及后代子孙目录下的所有内容的权限都进行修改
如果发现没有权限执行相应命令,可以在命令前加上sudo,表示临时以超级用户的身份来执行该命令
修改用户权限
18、clear
作用:清屏
19、打包解包 tar
四、C语言
1、C语言代码的编译过程
? 预处理 编译 汇编语言 链接
f1.c f1.i f1.S f1.o
预处理:处理.c文件中#开头的语句
编译:将c语言语句翻译成同功能的汇编指令
汇编:将汇编指令翻译成cpu的二进制指令
链接:按特定规则将所有目标文件打包成与操作系统相匹配的可执行文件
2、Linux C
vi/vim 文件名.c
编译:gcc 文件名.c -o 文件名
或者 gcc 文件名.c 生成a.out,./a.out
打印输出:./可执行文件名
按esc,换成命令模式
命令模式换成插入模式 i
同时按shift和: 换成底部命令
w 保存不退出
wq 保存退出
q! 不保存退出
强制加!
tab:命令补齐键 可以补齐命令字或者文件名或者目录名
按esc,命令模式下,光标放在想复制的那一行,按yy复制一行,按nyy复制从光标开始往下数n行,调到想要位置,按p粘贴;按dd剪切一行,按ndd剪切从光标开始往下数n行;还原u;回溯 ctrl+r;ctrl+v,d删除
命令中止 ctrl+c
代码内已有名字补全 ctrl+n
//注释一行
/* */多行注释;多行注释不能相互嵌套