本专栏为个人在华清远见嵌入式linux学习期间的笔记,希望能与各位读者共同进步!
文章目录
- 前言
- 一、环境安装
- 1.Linux文件系统是树形结构,弱分区,重文件。
- 2.常用EXT4分区格式。
- 3.基础分区:
- 二、文件和目录相关命令
- 1.嵌入式开发基本上都基于Linux系统+C语言。
- 2.文件系统层次结构标准FHS:
- 3.linux常用命令:
- 4.文件的权限:
- 三、vi编辑器的使用
- 1.vi 后跟文件名 有则打开文件,无则创建文件。
- 2.vi 有三种模式:
- 3.vi 模式切换和命令
- 4.vi 光标命令
- 5.vi 查找命令
- 6.vi 替换命令
- 7.vi 精准复制剪切命令
- 四、基础知识
- 1.冯·诺依曼结构
- 2.程序设计步骤
- 五、数据的表示
- 1.计算机只识别二进制
- 2.数值数据的四种进制表示
- 3.基数与位权
- 4.字符数据
- 5.原码、反码、补码
- 六、程序的编译和调试
- 1. gcc(GNU Compiler Collection)
- 2. gcc 编译命令
- 3. 代码调试
- 总结
前言
必备Linux命令和C语言基础:
通过今天课的学习,学员可以熟悉linux系统的一些重要命令,在linux下进行C语言程序的编写、编译及调试。
一、环境安装
1.Linux文件系统是树形结构,弱分区,重文件。
2.常用EXT4分区格式。
3.基础分区:
/ 根分区
/boot 启动分区
/swap 交换分区(常用物理内存的两倍)
/home 家分区
二、文件和目录相关命令
1.嵌入式开发基本上都基于Linux系统+C语言。
2.文件系统层次结构标准FHS:
/bin 二进制文件(命令)
/boot 存放的系统启动时要用到的程序
/dev 包含了所有linux系统中使用的外部设备
/etc 系统管理要用的各种配置文件和子目录
/lib 存放系统动态链接共享库
/home 普通用户的主目录
/root 根用户(超级用户)的主目录
3.linux常用命令:
pwd 显示当前位置
ls 列出目录内容 -a 显示全部文件 -l 长格式详情显示 -R 递归显示
cd 进入目录
df -T 查看文件系统的信息
cat 打印文件内容 -s 多个空行合并成一个空行显示 -b 加行号显示
nl 加行号打印文件内容 效果同 cat -b
head 打印文件前n行 可跟-n为参数 n为数字 默认n=10
tail 打印文件后n行 可跟-n为参数 n为数字 默认n=10
cp 复制命令 cp 源文件 目标文件 -i 覆盖时交互提示 -r 文件夹递归
mv 移动命令(可改名) mv 源文件 目标文件
touch 创建文件或更新时间戳
rm 删除文件 -i 交互询问 -r 删除目录
mkdir 创建文件夹 -p 级联创建
4.文件的权限:
权限类型 | 应用于目录 | 应用于文件 |
---|---|---|
读r | 读取目录或子目录内容的权限 | 查看文件的权限 |
写w | 创建、修改或删除文件或子目录 | 允许修改文件 |
执行x | 进入目录的权限 | 允许允许程序 |
- | 无权限 | 无权限 |
权限顺序 |
---|
用户(创建者) | 同组用户 | 其他用户 |
---|
三、vi编辑器的使用
1.vi 后跟文件名 有则打开文件,无则创建文件。
2.vi 有三种模式:
命令行模式 最初进入vi时的模式,可以复制粘贴
插入模式 进行文件编辑,按ESC键可以回到命令行模式
底行模式 可以进行文件的保存、退出、查找、替换、列出行号等
3.vi 模式切换和命令
a 插入模式当前位置后一个字符位置插入
i 插入模式当前位置插入
o 插入模式当前行下方空行插入
A 插入模式当前行行尾插入
I 插入模式当前行行首插入
O 插入模式当前行上方空行插入
键盘ESC 进入命令状态
:! command 在vi中执行外部命令command,按回车键返回vi
[N]x 删除从光标位置开始的连续N个字符
[N]dd 删除从光标位置开始的连续N行
[N]yy 复制从光标位置开始的连续N行
p 粘贴复制的文本到光标下面一行的位置
P 粘贴复制的文本到光标上面一行的位置
u 取消上一次操作
:q 退出没有修改的文件,若修改了未保存则无效
:q! 强制退出,不保存修改
:w 保存文件
:x 保存并退出
:wq 保存并退出 等同于:x
:x file 另存为file,不退出
:r file 读入file的内容插入到光标位置
4.vi 光标命令
h 向左移动光标
j 向下移动光标
k 向上移动光标
l 向右移动光标
:N 移动光标到第N行
1G 移动光标到文件的第一行
G 移动光标到文件的最后一行
:set number 显示行号
:set nonumber 不显示行号
5.vi 查找命令
/string 查找string处的字符串 n继续查找 N反向继续查找 支持正则表达式
6.vi 替换命令
:范围 s/old/new 省略范围默认当前行
:.,$ s/old/new 从当前行到尾行
:1,$ s/old/new 从头到尾行(全文)
:% s/old/new 从头到尾行(全文)
:范围 s/old/new/g 加g为全部替换 不加换第一个
7.vi 精准复制剪切命令
y0 将光标至行首的字符拷入剪贴板
y$ 将光标至行尾的字符拷入剪贴板
d0 将光标至行首的字符剪切入剪贴板
d$ 将光标至行尾的字符剪切入剪贴板
n,m y n行到m行复制
n,m d n行到m行剪切或删除
四、基础知识
1.冯·诺依曼结构
输入设备 存储器 运算器 控制器 输出设备
2.程序设计步骤
编辑 → 编译 → 链接 → 执行、调试
五、数据的表示
1.计算机只识别二进制
计算机只能识别0、1的数据形式,能够进行算术运算得到明确数值概念的信息称为计算机数值数据,
其余的信息称为非数值数据。
2.数值数据的四种进制表示
数值数据可以表示为十进制、二进制、十六进制、八进制。
3.基数与位权
基数是指该进位制中允许选用的基本数码的个数;而位权的大小是以基数为底,数字所在位置的序号为指数的整数次幂。
4.字符数据
字符数据在机器内也被变换成二进制编码的形式。国际上普遍采用的一种编码是美国国家信息交换标准代码,简称为ASCII码。
查看命令:man ASCII
5.原码、反码、补码
正数的原码、反码、补码是相同的;负数的原码首位为符号位,0正1负,反码符号位不变,其余位取反,补码为反码加1。
例:
十进制5 | 正数 | 负数 |
---|---|---|
原码 | 00000101 | 10000101 |
反码 | 00000101 | 11111010 |
补码 | 00000101 | 11111011 |
六、程序的编译和调试
1. gcc(GNU Compiler Collection)
gcc(GNU Compiler Collection)是GNU推出的多平台编译器,可将C、C++源程序编译连接成可执行文件,支持以下后缀:
.c c语言源代码
.h 程序所包含的头文件
.i 已经预处理过的C源代码文件
.s 汇编语言源代码文件
.o 编译后的目标文件
2. gcc 编译命令
-o 输出可执行文件
-c 只要求编译器输出目标代码(.o文件),而不必输出可执行文件
-g 用于调试
./hello 查看输出结果
3. 代码调试
__FILE__ 显示文件名
__LINE__ 显示当前执行行号
__FUNCTION__ 显示当前函数名
总结
这是进入嵌入式Linux的第一课,必须要熟练掌握,就跟勇士出发去打怪之前必须去村口的铁匠铺买的剑一样,如果熟练掌握,往后必将所向披靡,如果掌握不熟练,可能会连连挫败,故应多次回来查看巩固。
更多推荐
华清远见学习笔记—Level1—Day1—必备Linux命令和C语言基础
发布评论