我给出的主要是自己所学知识的大致框架,大家可以在我框架的基础上添加一些自己的东西,丰富整个基础知识框架 初始阶段 基础指令 目录指令 ls,pwd查看当前工作路径,madir,rmdi
我给出的主要是自己所学知识的大致框架,大家可以在我框架的基础上添加一些自己的东西,丰富整个基础知识框架
初始阶段
基础指令
目录指令
- ls,pwd查看当前工作路径,madir,rmdir,rm,cp,mv剪切文件和目录,cd改变当前工作路径
- 特殊文件
- 以 点开头的文件——隐藏文件
- 点和点点,当前目录和上一层目录
- 路径表示(Linux中目录为树状结构)
- 绝对路径:从文件系统的根目录开始执行文件/目录的路径。它提供了文件/目录的完整位置,包括所有父目录,知道目标文件/目录
- 相对路径:相对于当前工作目录的文件/目录路径,而不是从根目录开始的完整路径。它依赖于当前所在的目录,可以使用相对于当前位置的引用来指定文件/目录
文件指令
- touch 创建空文件,cat 打印文件内容,more,less 分页显示文件内容,head,tail 打印文件部分内容
压缩指令
- zip/unzip,bzip2,bunzip2,gzip/gunzip,tart-cxzjvf
查找指令
- grep在文件内容中进行字符串查找,find 通过文件名或文件类型查找文件
- 文件类型
- 普通文件
- 目录文件:以D开头的文件
- 软连接文件:以L开头的文件,类似于Windows系统下的快捷键,操作该文件就是操作该文件的指向文件
- 块设备文件:以B开头的文件
- 字符设备文件:以C开头的文件,例如键盘
- 套接字文件:用于在计算机网络中提供进程通信机制
权限指令
- 系统操作权限
- su 切换操作权限,sudo 对普通用户进行放权
- 文件操作权限
- 用户:所有者,所属组,其他用户
- 操作:可读,可写,可执行
- 表示方式:rwx rwx rwx 或者 777
- 指令
- umask 文件的创建掩码权限,chmod 修改文件权限,chown 修改文件所有者,chgrp 修改文件所属组
进程指令
- ps -ef/-aux 查看进程信息,kill 杀死进程
网络指令
- ifconfig 查看网卡信息,netstat 查看网络监听状态信息
系统指令
- reboot 重启,shutdown 关机,top 查看cpu使用情况,free -h 查看当前内存使用情况,df 显示磁盘使用情况,fdisk 对磁盘进行分区
环境变量
- env,set 查看所有变量,echo 打印指定环境变量,export 声明环境变量,unset 删除环境变量
进程通信指令
- ipcs 查看进程间通信资源,ipcrm 删除进程间通信资源
其他指令
- man 查看手册
常用工具
yum安装软件工具
- yum list:查看已安装软件包或者可用的软件包
- yum search:搜索软件包
- yum install :安装软件包
- yum remove :卸载软件包
vim
- 操作模式 共12种
- 普通模式:又称命令模式,是Vim的默认模式,用于导航和执行编辑命令,在该模式下,我们可以对文本进行编辑
- 插入模式:在该模式下,我们可以向普通文本编译器一样输入和编辑文本。进入插入模式的方法有以下四种:
i:在当前光标处插入文本
a:在当前光标后插入文本
o:在当前光标下面新建一行并开始插入文本
ESC:退出插入模式,返回普通模式 - 底行模式:又称命令行模式,可以执行一些高级命令,例如:保存文件,查找替换,选择设置等
- 模式操作
- 普通->插入:iao
- 普通->底行:“:”,“/",”?“
- 操作指令
- 底行模式下
- :w,:q,:wq,:q!
- /string 向下对内容进行查找
- ?string 向上对内容进行查找
- %s/string1/string2 将文本中string1全部替换为string2
- 普通模式下
- yy,nyy 复制内容,dd,ndd 剪切内容,p 粘贴
- hjkl 光标的移动,ctrl+f/b 上下翻页,gg/G 首尾移动
- u 撤销上次操作
- gg=G 全文对其
gcc/g++
- 编译器作用
- 将高级语言代码解释为二进制机器指令
- 阶段
- 预处理:处理源代码文件,宏展开,文件包含和条件编译。例如:去除注释,宏替换,引入头文件等
- 编译:将预处理后的源代码转换为机器代码。例如:词法分析,语法分析,语音分析,优化和代码生成等步骤
- 汇编:将编译器生成的机器代码转换为可执行性的二进制指令。
- 链接:将多个独立编译的对象文件(包含机器代码和数据)结合起来,形成最终的可执行程序的过程
- 链接模式
- 静态链接
- 链接静态库,将静态库中所使用到的代码给可执行程序拷贝一份
- 优点:程序启动加载快,没有库文件依赖
- 缺点:生成程序文件较大,可能在内存中存在冗余代码
- 动态链接
- 链接动态库,将动态库中所使用到的代码记录一份符号表到可执行程序中,等到运行程序时,将动态库也加载到内存中进行使用
- 优点:生成的可执行程序小,节省资源,所有程序用到的动态库代码在内存中共享
- 缺点:运行时依赖动态库存在
- gcc/g++默认的链接方式为动态链接
- 常见选项
- -E 预处理,-S 编译,-c 汇编,-o 指定生成文件名称,-g 生成调试版本程序,-O 代码优化,--shared 生成动态库
gdb调试
- 作用
- 对程序的运行过程进行调试,查找程序中存在的问题
- 调试前提
- 生成可调式程序
- gcc -g生成debug版本的程序
- 不进行代码优化
- 增加了调试符号信息
- 调试指令
- 加载程序
- gdb ./main
- gdb -p pid 调试一个正在运行的程序
- 开始调试
- run -a -l:直接运行程序
- start -a -l:开始逐步调试
- 调试指令
- list :查看调试行附近代码
- until main.c:n:程序运行到n行
- continue:程序继续运行
- step/next:逐语句/逐过程
- break main.c:n:n行打断点
- break function:函数打断点
- info break:查看断点信息
- delete:删除断点
- backtrace:查看函数调用栈情况
- print:打印指定变量内容
makefile
- 项目的自动化构建工具—makefile
- 本质:文本文件,记录一个项目的构造规则
- 编写规则
- 目标对象:依赖对象[tab]指令
- 伪对象
- 表示当前指定的目标对象并不是一个真正要生成的实际文件的目标对象,而是一个为了执行某种指令的目标对象,与外界的实际文件没有关系
- 编译规则中的指令,无论如何都要被执行
- make
- makefile解释器程序
- 对makefile中记录的项目构建规则逐语句执行,完成项目的构建
- 解释规则
- 在执行make指令的目录下,找到makefile文件,在其中找到第一个目标对象
- 1.根据依赖对象的修改时间,判断目标对象是否需要重新生成
- 2.查看依赖对象是否需要重新生成
- 3.所有依赖对象生产完毕后,执行指令生成目标对象
git
- git clone—克隆一个远程服务器仓库
- git add—添加文件
- git commit -m—添加本地管理
- git push origin master—将本地版本托管到服务器上
这个我更推荐大家用小乌龟,非常方便的将我们所需的文件保存到本地服务器上