我们在Linux下
编辑器 – 只负责写代码
打开vim时是命令模式(默认打开的模式),如果想从其他模式回到命令模式按ESC
在命令模式下输入
i
:进入编辑/插入模式:
:进入底行模式shift + r
:进入替换模式在底行模式下输入
q
退出,q!
强制退出w
保存,w!
强制保存wq
保存退出 ,wq!
强制保存退出ESC
回到命令模式命令 | 作用 |
---|---|
yy | 将当前光标所在行复制 |
p | 将复制行进行粘贴 |
dd | 将当前光标所在行,剪切(删除) |
nyy,np,ndd | n是具体的数字,nyy指一次复制n行,np将复制的内容粘贴n次,剪切(删除)n行 |
u | 撤销命令 |
ctrl + r | 撤销u操作 |
shift + g | 光标定位到文件结尾 |
n + shift + g | 光标定位到第n行 |
gg | 光标定位到文件开头 |
shift + 4($ ) | 将光标定位到当前行的最结尾 |
shift + 6(^ ) | 将光标定位到当前行的最开始 |
w | 以单词为单位进行光标的后移 |
b | 以单词为单位进行光标的前移 |
h,j,k,l | 左,下,上,右 |
shift + ~ | 大小写切换 |
r | 替换光标所在的字符,支持nr |
x or X | 删除光标所在的字符,包括之前或者之后 |
命令 | 作用 |
---|---|
set nu/nonu | 打开行号/取消行号 |
vs 文件名 | 分屏操作 |
w | 写入 |
q | 退出 |
!cmd: | 不退出vim执行对应的命令(执行命令行,编译,运行,查看man) |
在vim的底行模式中,
程序的翻译过程
文本的C – 计算机二进制
[hmy@VM-8-15-centos ~]$ gcc mytest.c -o hmy //-o指定生成可执行文件的名称,hmy是可执行文件的名称
选项 | 作用 |
---|---|
-o | 指定生成可执行文件的名称 |
-E | 从现在开始进行程序的翻译,如果预处理完成,就停下来 |
-S | 从现在开始进行程序的编译,如果编译完成,就停下来 |
-c | 从现在开始进行程序的翻译,如果汇编完成,就停下来 |
一般链接的过程,是有两种方式的:
动态链接,需要动态库 Linux:.so
Windows:.dll
将库中我要的方法的地址,填入我的可执行程序中,建立关联!!
静态链接,需要静态库 Linux:.a
Windows:.lib
将库中方法的实现,真的拷贝到我们的可执行程序中!!
gcc/g++默认形成的可执行程序是动态链接的
-static表明使用静态链接的方法形成可执行程序
[hmy@VM-8-15-centos ~]$ gcc mytest.c -o hmy -static
make是一个命令
makefile是一个文件
他们的作用是自动化构建项目
编写makefile
mytest:test.c //依赖关系
gcc test.c -o mytest //依赖方法
.PHONY:clean //伪目标
clean: //依赖关系
rm -f mytest //依赖方法
make会自顶向下执行第一个依赖关系,当mytest没有写在第一个时,可以显式执行 make mytest
.PHONY
伪目标:总是会根据依赖关系,执行依赖方法。习惯给clean设置
YUM 是 “Yellowdog Updater, Modified” 的缩写,它是一个包管理工具,用于简化在系统上安装、更新和删除软件包的过程。
YUM可以理解为Linux上的软件应用市场
yum的作用:1.搜索、下载、安装 2.解决依赖关系
yum的操作
yum源:就是一个配置文件 [hmy@VM-8-15-centos lesson7]$ ls /etc/yum.repos.d 里面配置了你的下载网址
yum三板斧:
扩展:
git三板斧:
预备:
其他情况:
(no debugging symbols found). gcc && g++默认形成的可执行程序是release的!!故无法直接被调试!
gcc mytest.c -o mytest-debug -g # -g表示该程序是debug方式发布的
gdb操作:
gdb会记录最近一条命令,如果命令无变化,就直接回车2
命令 | 作用 |
---|---|
quit | 退出gdb |
r(run) | 开始调试,如果没有设置断点,就直接结束运行! |
b(breakpoint)+ 行号 | 给特定的行号打断点 |
info(information) b | 查看断点 |
d(delete)+ 断点编号 | 删除断点 |
n(next) | 逐过程 |
p(print)+ 变量名 | 打印变量内容 |
s(step) | 逐语句 |
bt | 查看当前调用堆栈 |
finish | 将当前函数跑完就停下来 |
display + 变量名 | 设置长显示 |
undisplay + 变量名编号 | 取消长显示 |
until + 行号 | 跳转到指定行 |
c(continue) | 运行至下一个断点处停下来 |
disable/enable + 断点编号 | 使能(打开和关闭)断点 |