0115嵌入式学习2

敲重点:独家秘方 梨子+川贝+冰糖 蒸,吃,治慢性咽喉炎

文件目录处理

ls  显示文件  

-a  包括隐藏文件一起显示

-l   使用长格式列出文件及目录信息

S (按照文件大小排序)

t (按照时间排序)

ls --color=never,always,auto(不以颜色)

cp可以把多个文件复制到一个目录   cp [参数] [文件] [文件/目录]  

-f 强制复制  若已存在直接覆盖原文件

-i     若目标文件已存在则会询问是否覆盖

-p    保留源文件或目录的所有属性

-r    递归复制文件或目录

-u    观察哪个文件更新 保留新文件(及备份)

-a    等价于“dpr”选项

-d   当复制符号连接时,把目标文件或目录也建立为符号连接,并指向与源文件或目录连接的原始文件或目录

 rm

-f 忽略不存在的文件,不会出现警告信息

-i 删除前会询问用户是否操作

-r/R 递归删除

-v 显示指令的详细执行过程

mv

-f    覆盖已有文件 不进行提示

-i    若存在同名则询问是否覆盖

-u   当源文件比目标文件新,或者目标文件不存在时,才执行移动此操作

查看文件内容

cat    

-n 显示行号

tac    tac命令就是将文件反向输出,刚好和cat输出相反。

more 将内容较长的文本文件内容(不能在一屏显示完)进行分屏显示,并且支持在显示时定位关键字。

less 用less命令显示文件时,PageUp键向上翻页,PageDown键向下翻页,要退出less程序,应按Q键;less的作用与more十分相似,不同点为less命令允许用户向前或向后浏览文件,而more命令只能向前浏览 。

head 显示文件开头内容

-n 后面接数字,代表显示几行的意思   -nx默认10行

tail 显示文件尾部的内容,默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。

nl     添加行号

od    输出文件内容

Touch  创建文件

-a        改变档案的读取时间记录

-c        改变档案的修改时间记录

-d        设定时间与日期,可以使用各种不同的格式

-m        改变档案的修改时间记录

-t 修改文件属性

Passwd 修改密码

Su 切换用户

Sudo 提高权限

Tar 解压压缩

-cvzf 压缩

-xvzf 解压

Clear 清屏

Ifconfig 查看ip地址

ifconfig eth0 192.168.1.100  将电脑IP地址改成192.168.1.100

文件编辑

Vim 命令模式,底行模式,插入模式

键入i进入插入模式

编辑

键入【Esc】退出到命令模式

键入: 到底行模式   键入wq保存退出

yy

[n]yy:复制到当前光标开始的n行

p:粘贴复制到所在光标行 小写是粘贴到下面,大写是粘贴到上面

u 撤销前一个动作

dd:删除当前光标所在行

[n]dd:删除n行

G:光标移动到文件尾

d1G:把光标所在位置1行全部删除

y1G:  把光标所在位置1行复制

dG:    把光标所在文件末尾全部删除

yG      把光标所在文件末尾全部复制

X/x相当于delete

查找 /sum  查找sum

替换:行号或% s/old/new/gc    c表示询问

s/i/num   将i替换成num但只替换第一次 s/i/num/g 替换整行   s表示替换

11,17 s/num/result/g  11到17行替换

%s/result/sum/g 替换全文

编辑多个文件  vim 文件1 文件2 文件3

1,10 w 把1-10行保存

跳转  n 文件名   或者 files

r hello.c   将hello.c读入光标文件之后

13,25 w demo.c 将13行到15行 另存为demo.c

sp hello.c 分屏显示 多文件编写

vim打开文件直接跳到100行  

底行模式下可以执行Linux系统命令:即:!命令  如  :! ls   执行ls

set number    显示行号

set nonumber  取消显示行号

多文档编辑

vim  hello.c msg.c shmen.c sign_exe.c    回车

底行模式 :n   向下切换文件  N   向上切换文件

程序编译过程

预处理  编译 汇编 链接  执行

条件编译

文件包含

<> 系统标准库函数

“”  自己编写可用

被包含文件内容替换当前文件命令

gcc -E hello.c >hello.i  只显示预处理以后的代码 >为重定向符

展示 define

gcc -S hello.c  会自动生成hello.s

-c 只编译不链接 生成.o文件

放入库只能是二进制文件

-O 优化编译 O1 O2 O3 O0(不写O就默认O0不优化)

-g 调试程序

多文件编译

如果函数返回值是整型则可不申明,默认为整型

声明 extern

静态库和动态库

静态库是在执行程序之前就已经加入到执行代码中,成为执行的一部分来执行,后缀名.a

动态库:是在执行程序启动时加载到执行代码中,后缀名.so

静态库与动态库的区别:动态库只有使用他的程序执行时才会被链接使用,而不是将需要的部分直接编译到可执行文件中,并且一个动态库可以被多个程序使用故还可称为共享库,而静态库将会整合到程序中,因此在执行中不用加载静态库。链接到静态库会使程序臃肿,并且难以升级,但是可能会容易部署;而动态库会使程序更加轻便,并且易于升级,但是会难以部署。

静态库的创建:

gcc -c 源文件.c

ar rcs 静态库名 目标文件1 目标文件2.......

rc表示静态库不存在就创建该库文件 s表示更新库文件

  静态库的使用:gcc  -o file flie.c –L. -lname

 

动态库的创建:

gcc  -shared –fPIC –o 库名.so 源文件.c

动态库的使用:

gcc 源文件.c ./ 库名.so –o 可执行文件名

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值