学习嵌入式Day01

Linux命令

linux中一切皆文件

两大特殊文件:

根目录:/

家目录: ~

快捷键

放大终端:Ctrl shift +

缩小终端:Ctrl -

清屏 Ctrl L

用户名:     whoami

主机名:     hostname

:$中间(~):当前路径  

默认在家目录  pwd

pwd:查看当前路径

新建

文件夹: mkdir 文件夹名字

文件: touch 文件名.后缀

多层嵌套文件夹

mkdir -p 文件夹名字/名字/名字    mkdir -p a/b/c

同一路径下

文件夹:不能创建同名文件夹报错

文件更新时间戳

查看

ls      查看当前路径下所有内容

ls -a  查看当前路径下所有内容,包括隐藏内容

ls -l    查看当前路径下所有内容de详细信息

文件类型7种 bcd-lsp

b:块设备文件 /dev

c:字符设备文件 /dev/input

d:目录文件 文件夹

-普通文件 .c .h .txt

l:软链接文件 <linuxC高级>

s:套接字文件 <网络编程>

p:管道文件 <IO>

文件权限

rwx: r:读 w:写 x:执行

rwx rwx rwx

自己 组内 其他

r:4 w:2 x:1 -:0

路径cd

下一级cd 文件夹名字

上一级cd ..

当前 cd .

上一次cd -

目录cd /

家目录cd ~ cd cd /home/hq

绝对路径从根目录开始 /home/hq/24081/1

相对路径当前位置参照物

复制cp

文件 cp        要复制的文件名 目标地址(文件夹)

文件夹 cp -r 复制文件夹名 目标地址(文件夹)

另存为 cp     要复制的文件名 目标地址/新名字

移动mv

mv  移动文件/文件夹 目标地址

重命名: mv 移动文件/文件夹 目标地址/新名字

删除rm

删除后文件不可恢复

文件: rm 文件名

文件夹: rm -r 文件夹

-强制

打开终端

1.  直接点击

2.  Ctrl shift n 当前文件夹

3.  Ctrl alt t 家目录

关闭终端

1.  直接点击

2.  Ctrl d (快捷方式)

3.  exit (命令)

vi编辑器

打开:vi 1.c   初始默认命令行模式

vi编辑器3模式

命令行模式复制粘贴撤销光标移动

插入模式编写代码

底行模式保存退出复制分屏查找替换

简单编程步骤

1.  创建文件 touch file.c

2.  打开vi编辑器 vi file.c 默认命令行模式需要切换到插入模式

3.  编写代码

4.  进入底行模式 w保存

5.  运行程序 gcc file1.c 编译c文件生成可执行文件

6.  运行 ./a.out

命令行:

复制 yy nyy(光标选中y n:行数 复制几行)

删除(剪切) dd ndd

粘贴 p

撤销 u

反撤 ctrl r

光标移动首行 gg

光标移动最后一行首行 G

光标移动行首 0

光标移动行尾 $

插入模式 i o a I O A

底行模式:

指定行复制 5,10y 复制5-10行

指定行删除 5,10d

保存 w

退出 q

保存并退出 wq

强制 !

vsp 分屏本文件

vsp 文件名 分屏打开另外一个文件

查找 /找的东西

替换 s/a1/a2 光标所在行的第一个a1替换成a2

s/a1/a2/g 光标所在行的所有a1替换成a2

%s/a1/a2/g 改变全文

1,$s/a1/a2/g 改变全文

设置行号 set nu

取消 set nonu

取消高亮 nohl

vscode编辑器

建议打开整个文件夹

code 文件夹名字

gcc编译器

高级语言(C语言)---机器识别不了借助编译器

简写

gcc file2.c 生成可执行文件a.out

./a.out

另一种简写

gcc file2.c -o file2(可执行文件名,可自己命名)

./file2

完整编译步骤

预处理编译汇编链接

1.  预处理

展开头文件、删除注释,替换宏定义

gcc -E hello.c -o hello.i

2.  编译

检查语法错误,有错报错,没错会转变成汇编语言,生成汇编文件

gcc -S hello.i -o hello.s

3.  汇编

把汇编文件生成不可执行的二进制文件

gcc -c hello.s -o hello.o

4.  链接

链接库文件,最终生成机器能够识别的二进制的可执行文件

gcc hello.o -o hello(可执行文件,可以自己取名)

C基础

计算机存储单位:位  0 1

1字节byte=8位bit

换算:

1B=8bit

1KB=1024B 

1MB=1024KB

1GB=1024MB

1TB=1024GB

计算机数据类型

二进制      0 1            10 (1/0组合排列)

八进制      0-7            010(在最前方加0)

十进制      0-9      

十六进制   0-9  a-f     0X10 (在最前面加0x)

abcdef
101112131415

进制转换

十进制转二进制:

    短除法:除以二取余,余数自下而上排列     12:1100

拆分法:8421

二进制转八进制:

    三个二进制数转换为一个八进制数  

二进制转十六进制:

    四个二进制数转换为一个十六进制数

数值型数据

字符型 用 ' ' 包裹

man man :查看man手册

man手册用来查看一些命令函数用法

     1 可执行程序或 shell 命令

     2 系统调用(内核提供的函数)

     3 库调用(程序库中的函数)

man ascii 查看ASCII

'\0' 0 字符串结束标志

'\n' 10

空格 32

'0'   48 字符0

'A'   65

'a'   97

字符转数字 '2'-48==2

'A' +32 = 'a'

'A' +' ' = 'a'

词法符号

关键字32

存储类型auto   static   extern   register

数据类型in   short   long   har   floa  double   signed   unsigned

分支if  else   switch   case   default

循环for   do   while    go to    break   continue

构造数据类型struct   enum   union

其他void   const   sizeof   typedef   return  volatile

虚拟内存空间

324G

642^64 2^48

系统自动开辟回收 (函数体内部定义的变量)

程序员手动开辟(malloc)回收(free)

全局区静态区

常量区char *p="hello"

标识符

定义变量名数组名函数名遵循标识符命名规则

1.  字母数字下划线(_)组成

2.  开头不能数字

3.  不能关键字重名

4.  见名

运算符

算术运算符 逻辑运算符 关系运算符 运算符 三目运算符 赋值运算符

算术运算符

+ - * / % ++ --

/:如果是整数相除结果向下取整

int a=5/2;

printf("%d\n",a); //2 %d整型 int

float a=5/2;

printf("%f\n",a); //2.000000 %f浮点型 float 默认打印小数点

float a=5.0/2;

printf("%f\n",a); //2.500000

printf("%.1f\n",a); //2.5 .1保留一位小数

float a=(float)5/2; // int 5短暂的强制转换成float float 5只在当前这一行

printf("%.1f\n",a); //2.5

%取余

只能用于整数运算

5%2==1

++

a++ <==> a=a+1

独立成句

int a=5;

1)  ++a;

printf("%d\n",a); //6

2)  a++;

printf("%d\n",a); //6

赋值运算

int a=5;

1)int b= a++; // = +

printf("%d %d\n",a,b);//6 5

2)int b= ++a; // + =

printf("%d %d\n",a,b);//6 6

打印语句

int a=5;

1)printf("%d\n",a++); //5

printf("%d\n",a); //6

2printf("%d\n",++a); //6

printf("%d\n",a); //6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值