Linux下的工具

145 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情


vim的模式

命名模式:可以移动光标,进行复制,粘贴之类的命令操作 插入模式:可以进行编写 底行模式:在底行中进行相应的操作

vim的使用

刚进入vim的时候是命令模式。你会发现按什么键都没有用(可能按到了关键的键可能就可以编辑了) image.png 那么按什么键可以进行进行编辑(插入模式)呢? i:从光标当前位置插入 a:从光标后一个字符位置插入 o:从光标下一行插入 进入插入模式之后就可以进行编写了。编写完成后,按Esc键(在键盘的左上角)进入命令模式。 如果想退出,按Shift加:进入底行模式,然后按wq进行保存退出。 下面是底行模式的一些操作: q:退出,加上!为强制退出 w:写入,加上!为强制写入 !命令:不退出vim执行相关操作 set nu/nonu:显示/取消行号 image.png vs 文件名:分屏操作 image.png 下面讲述在命令模式下的一些操作 yy:复制,nyy从当前行到n行复制。 dd:剪贴,ndd从当前行到n行剪贴。 p:粘贴,np粘贴多少次。 u:撤销。 Shift g:光标定位到文件结尾。 gg:文件最开始的地方。 n Shift g:文件的第n行的开始。 $:当前行的末尾。 ^:当前行的开始。 b,w:以单词的形式,前后移动。 h,j,k,l:左,下,上,右 移动光标。 ~:大小写切换。 Shift r:替换模式,直接覆盖原来的。 x:删除光标位置的字符 X(Shift x):删除光标前一个位置的字符

yum

软件包管理器。

查看软件:yum list 软件名,也可以这样yum list |grep 软件名

安装软件:yum install 软件名,需要是root权限。

卸载软件:yum remove 软件名,需要是root权限。

gcc/g++

预处理:gcc -E 源代码 -o 目标文件.i

编译:gcc -S 源代码 -o 目标文件.s

汇编:gcc -c 源代码 -o 目标文件.o

链接:gcc 源文件 -o 目标文件,默认为动态链接,可以手动让他动态静态链接-static

g++的使用和gcc一样。

gdb

调试

对于一个可执行程序要有调试信息,在用gcc/g++时可以加上-g生成调试信息,下面让我们开始进行调试的一点简单的方法。

gdb会记下上一次的命令。

gdb 可执行性程序:进入调试。

q:退出调试。

l 行号:从行号处开始列,每次列10行。

b 行号:设置断点。

info b:查看断点。

d 断点编号:取消断点

r:运行,遇到断点停止。

c:运行到下一个断点处停下来。

n:逐过程

s:逐语句。

p 变量名:打印变量的信息

bt:调用堆栈。

finish:把当前函数运行结束停下来。

display 变量:长显示(一直显示)

undisplay 序号:取消长显示

until 行号:跳转到指定行

disable/enable 断点序号:使断点失效/生效

image-20220730113908390

make/makefile

makefile自动化的进行程序的编译链接,make会在当前文件中查找makefile或者Makefile。

makefile的写法:

目标:依赖项
	目标和依赖项的依赖关系

image-20220730124349284

执行make,默认只执行makefile里面的第一个依赖关系。下面的目标都可以用make 目标的方法执行。

image-20220730124616290

.PHONY,.PHONY形成的是伪目标,总是可以执行的。

  • 没有加的

    image-20220730125757169

  • 加入.PHONY

    image-20220730125920034

git

版本控制的一种工具

下面操作无脑操作就可以:

git clone 仓库的地址
git add 文件
git commit -m "上传说明"
git push

因为我已经克隆好了,所以就演示下面几个操作

image-20220730132101277