1.整理tar指令打包压缩和解压的使用、复习file、head、tail和管道符的使用
tar
打包并压缩/拆包并解压缩
打包:多个文件合并成一个文件
拆包:把多个文件拆出来
tar指令执行结束后,源文件存在
借助tar指令,可以完成目录文件的压缩和解压缩
打包
tar -c(v)f 要生成的文件.tar 要打包的文件····(多个文件中间以空格作为分隔)
-c:打包的参数 -v:显示打包的过程 -f:file后面必须跟文件名
tar -cv(压缩参数)f 要生成的文件.tar.xz/gz/bz2 要打包的文件
-J:xz压缩 -j:bz2压缩 -z:gz压缩
当压缩工具参数和生成的文件后缀不一致时,只会完成打包操作,不会压缩(可以直接使用-xf拆包)
拆包
tar -x(v)f 要拆包的文件
(既可以完成拆包也可以完成解压缩)
file 查看文件的信息
file 文件名 查看文件的属性信息
a.out: 文件名
ELF:可执行文件
64-bit LSB shared object:小端存储
x86-64:支持64位架构
version 1 (SYSV):版本
dynamically linked, interpreter /lib64/l:链接的库
for GNU/Linux 3.2.0:gcc编译器的版本
BuildID[sha1]=2d5ea4ac25c53f60b6e7ebb97313ba7be8ae0457:动态id
not stripped:没有被压缩过,arm课程会讲
head
head 文件名 默认回显文件的前十行
head -n 文件名 回显文件的前n行
tail
tail 文件名 默认回显文件的后10行
tail -n 文件名 回显文件的后n行
| 管道符
指令1 | 指令2 | 指令3 | ·····
管道符左侧指令的输出用作管道符右侧指令的输入
2.预习结构体知识点
定义结构体类型
struct Init{int a;float b;double c;
}I1;
struct SIMPLE{int a;float b;double c;
};
stuct SIMPLE s1;
然而即使两个结构体成员列表全部一样,但是这两者还是被编译器当做完全不同的存在。一个类型是struct Init 一个类型是 struct SIMPLE就相当于int 和float 一样。
结构体中可以包含其他结构体。
定义结构体变量的同时,初始化结构体变量
#include <stdio.h>
struct Init{int a;double b;char *c;float d;
}id1 = {1,2.0,"hello"},id2[2],*id;
定义结构体变量后,赋值成员变量
#include <stdio.h>
struct Init{int a;double b;char *c;float d;
}id2;
这种就是还未经过初始化的结构体成员变量定义。而想要在未经初始化的结构体变量定义之后,对该结构体进行成员变量修改。
形式上有所不同,可以分为以下两种方式。
第一种是有序赋值(初始化定义)。
struct Init id2 = {1,1.1,"hello"};
第二种是无序赋值,也就是键值对类型。
struct Init id2;
id2.a = 1;
id2.c = "world";
id2.d = 1.1;