一、cmd命令
只记重点
1.文件类型

2.软连接和硬链接
硬链接:ln <name1> <name2>
相当于引用吧,所有硬链接的文件的Inode都一样,每次创建一次硬链接硬链接计数加一,每次删除硬链接计数减一,不会影响其他硬链接文件。当硬链接计数为0的时候,Inode被释放,文件彻底被删除。
软链接:ln -s <path> <name>
软连接链接相当于快捷方式,内部存放的是目标文件的路径,访问时根据存放的路径打开文件,创建的时候需要输入绝对路径,否则更换路径可能无法关联到目标文件导致无法打开。
3.所有者和执行权限

文字设定法
chmod <用户>+<权限> 文件名
数字设定法
chmod <u的权限和><g的权限和><o的权限和>
sudo adduser 创建新用户
sw <name>切换用户
sudo chown <新用户名> <filename>修改所有权限
sudo chown<username>:<groupname> <filename>一次性修改用户和组的权限
sudo addgrp <group name>创建用户组
sudo chgrp <new group name> <filename>修改文件用户组所有权限

4.查找文件
find <directory> -name/type <type/name>
-type 按文件类型搜索
-name 按文件名称搜索
-size 按文件大小搜索

-maxdepth n 搜索的递归层数
-exec命令 {} \; 将find搜索的结果集执行某一命令(直接映射全部结果集) 
-ok 命令 {} \; 将find搜索的结果集执行某一命令并询问

| xagrs 指令 搭配管道+xargs使用(分片映射结果集)

5.查找文件内容

grep -r '<name>' <dir>

6.查看进程
ps(可交互进程)
ps aux(全部进程)
ps aux | grep 'name' (搜索相关进程)
将ps aux搜索的结果集 使用管道 | 交给grep
7.软件包安装
sudo apt update(本地软件列表与源列表同步)
sudo apt install (安装软件)
sudo apt remove(卸载软件)
sudo dpkg -i <debname>(使用deb包安装软件)
sudo dpkg -r <debname>(删除包)
sudo aptitude show 《软件名》 查看当前系统是否安装某种文件

8.压缩包
tar压缩
tar zcvf <压缩包名.tar.gz> <压缩材料> 多文件打包(使用gzip压缩打包)
tar jcvf <压缩包名.tar.gz> <压缩材料> 多文件打包(使用bzip2压缩打包)
gzip <文件名> 只能压缩一个文件 无法多文件打包
gunzip <压缩文件名> 解压缩
file <filename>查看文件详细属性
tar zxvf 《压缩包名.tar.gz》 解压缩
tar jxvf 《压缩包名.tar.gz》 解压缩
rar压缩
rar a -r 《名字.rar》 《压缩文件名》 压缩
unrar x 《名字.rar》 解压缩
ZIP压缩
zip -r 《名字.zip》 《压缩文件名》 压缩
unzip 《名字.zip》 解压缩
9.其他常用的指令
ifconfig 查看网卡信息
man 帮助手册
clear 清屏(ctrl+L)
alias 给组合操作起别名
9.Vim

基础操作见pdf。
二、gcc编译


三、静态库和动态库
静态库:随代码一起编译进可执行文件中,会占用空间,但是调用库中接口速度更快,对空间要求低,对时间要求告。
动态库:计算机只有一份共享的动态库,代码使用的时候访问共享的动态库,不会占用可执行文件的空间,但是调用的时候慢。对时间要求低,对空间要求高。
1.静态库制作

使用gcc -c完成预处理,编译,汇编,生成二进制.o文件

使用ar rcs lib<name>.a <内容> 制作.a静态库文件

编译制作的静态库到可执行文件中
gcc .c文件 .a文件 -o 生成的可执行文件名 
这时会出现警告,说库中的函数未声明
可能会出现
