电销系统软件,产品网站别人是如何做优化的,网络服务公司注册官网,个人免费发布招聘信息目录
---工具功能
1. vim
1.1 vim的模式
1.2 vim常见指令
2. gcc/g
2.1 预备知识
2.2 gcc的使用
3.make,Makefile
make.Makefile的使用
4.yum
--yum三板斧
5.git
--git三板斧
--Linux下提交代码到远程仓库
6.gdb
6.1 gdb的常用指令 学习目标#xff1a; 1.知道…目录
---工具功能
1. vim
1.1 vim的模式
1.2 vim常见指令
2. gcc/g
2.1 预备知识
2.2 gcc的使用
3.make,Makefile
make.Makefile的使用
4.yum
--yum三板斧
5.git
--git三板斧
--Linux下提交代码到远程仓库
6.gdb
6.1 gdb的常用指令 学习目标 1.知道这些工具的功能 2.掌握这些工具的基本使用 ---工具功能 编写代码 -- vim 编译代码 -- gcc g 调试代码 -- gdb 代码管理 -- git 运行/自动化构建程序 --make/Makefile 1. vim
1.1 vim的模式 1.命令行模式 2.编辑模式 3.低行模式 1.2 vim常见指令
--默认打开 1.命令模式默认打开的模式 --输出 i 即可写代码 编辑/插入模式 --回到命令模式按Esc --退出在命令模式当中输出shift -w 保存 -q 退出 -wq 保存并退出 -强制 --命令行模式指令 --编辑 yy将当前光标所在的行复制 nyyn表示具体的数字p将复制行进行粘贴 npdd将当前光标所在的行剪切删除 ndd删除/剪切n行u撤销历史操作ctrl r 撤销u操作shift ~ 大小写切换shift r替换进入替换模式r替换光标所在的字符支持nrx or X(shift x)删除光标所在的字符包括之前或者之后 支持nx --光标移动 gg光标定位到文件的最开始shift g 光标定位到文件的结尾n shift g 光标定位到文件的任意行shift 6(^)光标定位到当前行的最开始上shift 4 ($)光标定位到当前行的最结尾下wb以单词为单位进行光标的前后移动左右h左j下k上l 右 --底行模式 set nu/nonu 调出行号或者取消行号vs 文件名 分批操作w写入w强制q退出 q强制ctrl ww 光标跳转! cmd不退出vim执行对应的指令(执行命令编译运行查看man手册) 示例
--set nu/nonu 调出行号或者取消行号 set nu/nonu 显示/取消行号--vs 文件名 分批操作 vs 文件名 分批操作 --ctrl ww 光标跳转 ctrl ww //光标跳转 -- ! cmd不退出vim执行对应的指令 man 3 printf 2. gcc/g
2.1 预备知识 gcc是一个专门编译链接C语言的编译器 g(C) 一、程序翻译过程: 文本的C --计算机二进制 1.预处理a.去注释 b.宏替换 c.头文件展开 d.条件编译2.编译C -汇编3.汇编汇编 - 可重定向二进制目标文件4.链接链接 - 多个.o .. .obj -合并成一个可执行.exe (gcc/g 也要遵守) 二、动静态库 --- (感性的认识) 动态链接将库中我要的方法地址填入到我们的可执行程序中建立关联节省资源静态链接将库中方法的实现拷贝到我们的可执行程序中 一般链接的过程两种方式 a.动态链接 - 需要动态库 b.静态链接 - 需要静态库 Linux: .so动态库 .a静态库 windows: .dll动态库 .lib静态库 注gcc和g默认形成的可执行程序是动态链接的 2.2 gcc的使用 gcc 文件名 -o 新生成的文件名 其它选项 gcc -E mytest.c -o mytest.i (预处理)开始翻译直到预处理完成gcc -S mytest.i -o mytest.s (编译)开始翻译直到编译完成gcc -c mytest.s -o mytest.o (汇编)开始翻译直到汇编完成gcc mytest.o -o mytest.o (链接) mytest.o 可重定向目标文件 示例 gcc test2.c -o test2 3.make,Makefile
make.Makefile的使用 1.make makefile make是一个命令 makefile是一个文件 --使用 touch Makefile 建立Makefile文件 vim Makefile 编写Makefilea.依赖关系 b.依赖方法 mytest:test.c 依赖关系gcc test.c -o mytest 依赖方法.PHONY:clean(伪目标)
clean:rm -f mytest 调用 make 构建
make clean 清理 makefile指令是从上到下扫描的 注clean 总是被执行的总是会根据依赖放关系执行依赖方法 --在上面的例子里可以重复执行clean但不能重复执行mytest(没被.PHONY修饰) --你在Makefile中定义一个目标与当前目录中存在同名的文件时Make会默认认为这个目标是一个文件并尝试根据文件的时间戳来判断是否需要重新构建。 提问makefile是如何知道我的文件是最新的 --根据最新的修改时间 示例 1.创建Makefile touch Makefile 2.编写Makefile vim Makefile 3.调用根据写好的Makefile自动生成可执行文件并进行清理 make //构建 make clean //清理 --可以重复执行make clean其被.PHONY修饰 通过使用.PHONY告诉Make这个目标是伪目标不要期望生成一个同名文件只需执行其中定义的命令。 4.yum
--yum三板斧 1.yum list 列出能下的软件 --yum list | grep sl (将所有包含sl文件的名称显示出来) 2.yum install -- sudo yum install -y 安装软件-y表示默认认可不需要再问用户 3. yum. remove 你的软件 移除软件一般要加sudo 5.git
--说明 git用于管理代码git的精华多人协作开发学习阶段大多数自己写代码暂不涉及 下面说明怎么使用git提交代码到自己的远程仓库 --git三板斧 正常情况 git add 你的文件 #添加我们的代码到本地仓库git commit -m 这里必须写提交日志git push 其它情况 1.git log #查看提交记录2.git pull #同步仓库3.git rm 文件 #删除本地仓库的文件 删除本地仓库文件后再git commit -m 日志 git push 远程仓库里的文件会被删除 --.gitignore # 不想提交某些后缀的文件同步到远端的git仓库就可以添加到.gitignore 修改本地仓库文件后再addcommitpush就能将远程仓库的文件修改 --若出现提交失败可能是仓库未同步git pull再提交 --Linux下提交代码到远程仓库
配置环境 第一次提交需要输入下面的指令 git config --global user.email youexample.com
git config --global user.name Your Name 这两个自行输入即可这个是用来说明你是谁的git支持多人协作查看日志的时候可以看到是谁提交的代码 在克隆仓库/提交代码的时候应该会让你输入你gitee的账号名和密码根据它的提升输入即可 1.在Linux环境下输入git clone 仓库网址 这里可以看到就把仓库克隆过来了 git仓库就是.git 文件 2.使用三板斧提交写好的文件就行 git add test.cgit commit -m 提交测试git push 这里push后要求输入gitee的用户名和密码 然后就把写好的文件提交到远程仓库了 6.gdb
6.1 gdb的常用指令 gdb 文件名 调试 l 0 --从第0行开始显示代码r --开始调试如果没有设置断点就直接运行结束b 行数 --打断点 会形成断点编号可用info查看info b --查看断点d 断点编号 --删断点disable 断点编号 --使能(打开)enable 断点编号 -- 关闭p 变量名 --打印变量内容n --逐过程 相当于vs中的F10s --进入函数(相当于vs中的F11)bt --查看当前调用的堆栈finish --函数跑完就停下display 名称 --设置常显示undisplay 编号 --取消常显示until 行数 不建议 --跳到指定行数c --运行到下一个断点出就停下来quit --退出 补充 --gdb会记录最近一条命令,如果命令无变化可以直接回车 修改特定变量set var 变量 数值vs中监视窗口可以给变量赋值查看 示例 因为gccg默认形成的可执行程序式release的所以无法直接调试 解决使用gcc编译的时候添加-g 选项将其改为debug方式发布 我写了一个打印1-100的和的文件现在对其调试 先编译生成debug版本的运行文件 gcc test.c -o test -g //生成Debug版gdb test-- l 0 (从第0行开始显示代码) --打断点 b 行数 --查看断点 info b --删断点 d 断点编号 --打印变量内容 p 变量名 --逐过程 n 相当于vs中的F10 --进入函数 s (相当于vs中的F11) --查看当前调用的堆栈 bt --函数跑完就停下 finish --设置常显示 display 名称 --取消常显示 undisplay 编号 --运行到下一个断点出就停下来 c 这里我打了两个断点1719行 使用c后直接跳转到下一个断点19 补充 gcc和g默认形成的可执行程序是动态链接的 gccg默认形成的可执行程序式release的所以无法直接调试