makefile 操作
在前几次的c文件编译和调试过程中,我们都是使用gcc 命令得到可执行程序
然后用gdb 命令进行调试
但是这样过于繁琐
这个时候我们就可以使用makefile文件
然后后续操作就可以直接实现自动化的编译的功能
首先我们要了解 makefile文件的特性
首先 makefile文件是一个普通文件 在创建makefile文件时使用touch命令
其次makefile文件名是不能更改的 我们只能使用 touch makefile
接下来我来使用makefile文件实现一个c程序的编译
1.安装make命令 sudo apt install make
2.编译c程序
我们这里使用上次使用的 add.c
mul.c main.c 文件
3.编译makefile文件
编译makefile要严格按照这个规则
4.然后使用make命令就可以完成c程序的编译
我们观察 makefile内部的规则
第二步 依赖哪个 .c 文件我们就生成相应的.o文件
然后最后将生成的.o文件
我们这里使用make
可以看到者里就完成了 依赖 add.c mul.c的main.c的可执行程序的编译
如果这里make命令发生了错误
那么一般就是两个问题
1. c语言代码的语法问题
2.makefile内部编译规则不符合要求
5.使用 make clean删除生成的.o.文件
至此makefile文件的编译就完成了
后续操作可以再次使用gdb对可执行程序进行调试
Linux文件压缩
1.find 命令
find命令就是字面意思查找的意思
使用方式是
find 路径 -name 文件名
这里我们使用find
2.grep命令
过滤内容
使用方法是 grep “int" main.c
这个的意思过滤出main.c 中包含 ”int "的内容
这里可以看到我们就将main.c中包含int的内容标红指出
3.|和grep联合使用
grep一般不会单独使用 一般和|联合使用
例如 ls /bin | grep man
这个命令的含义是查看 bin目录下的命令筛选条件是包含man
这里就可以看到找到了符合我们筛选条件的命令
4.压缩文件命令
这里使用的命令是 tar
那么在Windows中,一般以.zip为后缀的文件为压缩包
而在Linux中,通过压缩后的文件一般是以.tar结尾的文件
这里是tar对应的参数
那么我们这里先将三个文件压缩为一个文件
这里可以看到 tar命令后紧跟着打包后的文件名
然后我们使用之后就可以得到了一个打包文件
然后对得到的打包文件使用
gzip
进行压缩
在使用gzip之后就可以得到一个 .tar.gz的文件名
这就得到了最终的压缩文件
那么我们如何拿到压缩文件中的内容呢
实际上我们反向操作即可
先对压缩文件使用
gzip -d进行解压操作
再使用 tar 进行解包
这就完成了文件的压缩,解压的相关操作
操作系统初见
1.进程
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
例如在windows中
目前在使用的ubantu,浏览器,QQ,微信
这都可以叫做一个进程
那么在Linux中
目前对操作系统的结束仅限介绍Linux相关命令
实际的操作系统还需要后期长时间的学习
比如在Linux中
可以用
ps
查看当前正在运行的进程
可以看到目前在前台没有正在进行的进程
ps还有很多参数
这里介绍 ps -ef
和 ps -L
实际上我们使用了ps -ef后会得到许多正在运行的进程
这里对标头进行解释
uid 是指运行的用户名
这里可以看到时root,这就说明 这个进程是在管理员身份下运行的
pid 是进程的编号,相当于它的身份证
c是cpu
stime是指进程的运行时间
tty显示终端机连接标准输入设备的文件名称
time是进程运行的时间
cmd是进程运行的地点
那么我们如何将一个进程放在后台运行
这里我们使用 sleep 来测试
sleep 1000 & 意思是在后台睡眠1000s
他会返回一个进程号
那么我们不想她继续执行下去怎么办呢
这里可以使用
kill 进程号
可以终止该进程
这里可以看到后台的sleep被终止了
kill -9 强制终止
kill -STOP 挂起(后续会深入说明)
那么我们可不可以将后台的进程调到前台
或者把前台的进程调到后台呢
bg % 进程号
将进程调到后台
fg % 进程号
将进程调到前台
这里就将在后台睡眠1000s调到前台
这就是目前的基础命令
后续的操作系统涉及的相关命令我会同步更新