linux基础工具(vim,gcc/g++,gdb)

1.掌握vim编辑器的使用,学会vim的简单配置
2.掌握gcc编译器的使用,并了解器过程原理
3.掌握简单的gdb用于调试

1.vim

vim是vi的升级版多模式编辑器,vim兼容vi的所有指令同时还加入了一些新的特性,用起来更加的方便
(1)vim的概念和基本使用操作
vim的基本模式:(总共有12种模式但这里只介绍三种)
正常模式:控制光标的移动,删除的一些操作
插入模式:只有在插入模式下才能进行输入
末行模式:文件的保存或退出,文件的替换等操作
模式切换:在我们计入vim是处于正常模式,要进行模式切换才能执行不同的操作
正常->插入(a/i/o)
插入->正常(esc键)
正常->末行(shift+;(分号键)就是输入:)
退出级保存vim文件在末行模式下
w(保存当前文件)
wq(保存并退出)
q!(不保存强制退出)
(2)vim的正常模式命令
移动光标:
hjkl分别控制光标的坐上下右移动
按「GJ:移动到文章的最后
按「$」;移动到光标所在行的“行尾”。
按「^」:移动到光标所在行的“行首”。
按「w」:光标跳到下个字的开头。
按「e」:光标跳到下个字的字尾。
按「b」:光标回到上个字的开头
按「#l」:光标移到该行的第#个位置,如: 5l,56l
按[gg]:进入到文本开始。
按[shift+g] :进入文本末端
按「ctrl」+「b」:屏幕往“后”移动一页。
按「ctrlJ +「fJ :屏幕往“前“移动一页。
按「ctrlJ +「u」↓屏幕往“后”移动半页。
按「ctrlJ +「d」:屏幕往“前“移动半页
删除文字:
「x」:每按一次,删除光标所在位置的一个字符
[#x」:例如,「6x」 表示删除光标所在位置的“后面(包含自己在内)“6个字符
「X」:大写的X,每按一次,删除光标所在位置的“前面"-一个字符「#X」:例如,「20X」 表示删除光标所在位置的“前面"20个字符
「dd」:删除光标所在行
「#dd」:从光标所在行开始删除#行
复制
「yw」:将光标所在之处到字尾的字符复制到缓冲区中。
「#yw」:复制#个字到缓冲区
「yy」 :复制光标所在行到缓冲区。
「#yy」:例如,「6yy」 表示拷贝从光标所在的该行“往下数”6行文字。
「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与y"有关的复制命令都必须与p"配合才能完成复制与粘贴功能。
替换:
「r」:替换光标所在处的字符
「R」:替换光标所到之处的字符,直到按下「esc」键为止
撤销与恢复:
「u」:撤销操作
「ctrl+r」:撤销的恢复

(3)vim末行模式指令

首先按esc键处于正常模式再按:进入末行模式
列出行号
。「set nu」 ;输入「setnu」后,会在文件中的每一行前面列出行号。
跳到文件中的某一行
。「#」:「#」 号表示一个数字,在冒号后输人一个数字,再按回车键就会跳到该行了,如输入数字15,再回车,就会跳到文章的第15行。

查找字符
。「/关键宇」 :先按「/」键,再输人您想寻找的字符,如果第一次找的关键字不是 您相要的,可以一直按「n」会往后寻找到您要的关键宇为止。
「?关键字」 先按 「?」键,再输入您想寻找的字符, 如果第-一次找的关键字不是您想要的。可以一直按「n」会往前寻找到您要的关键字为止。
保存文件
「W」:在冒号输入字母「wI就可以将文件保存起来
离开vim
。「q」:按「q」就是退出,如果无法离开vim,可以在「q」后跟一个[!」强制离开vim。。「wq」:一般建议离开时,搭配「w」-起使用,这样在退出的时候还可以保存文件。
简单vim配置

在日录/etc/下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主日录下,都可以自2建立私有的配量文件,命名为: “vimrc”. 例如,/root日录下,通常已经存在个.wimrc文件如果不存在,则创建之。切换用户成为自己执行su ,进入自己的主工作目录,执行cd ~打开自己日录下的vimrc文件,执行 vim.vimrc。这是我在root权限下设置的对所有用户都有效,在打开vimrc之后我们就可以进行自己想要的设置,在文件末尾添加命令了
在这里插入图片描述
set nu[显示行号]
filetype on[检测文件类型]
set autoindent[自动对齐]
set tapstop=4[设置tab键为4个空格]
set shiftwidth=4[设置当行之间交错时使用4个空格]

2.gcc/g++编译器使用

如何使用gcc/g++进行程序的运行
1.程序运行的4个阶段
预处理,编译,汇编,链接。
gcc使用格式gcc 【选项】【需要编译的文件名】 【选项】【目标文件】
预处理阶段的主要功能
宏定义,文件包括,条件编译。去注释等
实例

gcc -E test.c -o test.i
选项‘’-E‘’是让代码在预处理后停止编译
xuanxiang‘’-o‘’是指目标文件‘’i‘’文件为已经过预处理的原始程序

编译阶段的主要功能
在这个阶段gcc首先要检查代码的规范性,是否有语法的错误,在检查没有问题后将代码翻译成汇编语言代码

gcc -S test.i -o test.s
用户可以使用-S选项来查看

汇编阶段的主要功能
汇编阶段是把编译阶段.s文件转化成目标文件

gcc -c test.s -o test.o
选项-c就可以看到汇编到吗已经转化成二进制代码了

链接
生称可执行文件或库文件

函数库的概念
在程序中我们并没有实现printf函数为什么我们可以使用,因为系统会将这些函数的实现放到一个函数库中,gcc会到系统默认的搜索路径中查找,这样就实现了函数的使用这就是链接作用。
静态库和动态库
静态库是指编译链接时,把库文件的代码全部加入到可执行文件中,因此生成的文件比较大,但在运行时也就不再需要库文件了。其后缀名一-般为“.a"。
动态库与之相反,在编译链接时并没有把库文件的代码加入到可执行文件中,而是在程序执行时由运行时链接文件加载库,这样可以节省系统的开销。动态库一般后缀 名为“.so",。gcc在编译时默认使用动态库。完成了链接之后,gcc就可以生成可执行文件,如下所示。 gcc hello.o -0 hello

调试器gdb

开始调试:gdb binFile 退出: ctrl + d或quit调试命令:
list/I行号: 显示binFile源代码, 接着上次的位置往下列,每次列10行。
list/I函数名: 列出某个函数的源代码。
r或run: 运行程序。
n或next:单条执行。
s或step: 进入函数调用
break(b)行号:在某-行设置断点
break函数名:在某个函数开头设置断点。
info break :查看断点信息。
finish: 执行到当前函数返回,然后挺下来等待命令
print§: 打印表达式的值,通过表达式可以修改变量的值或者调用函数。
p变量:打印变量值。
set var: 修改变量的值
continue(或c): 从当前位置开始连续而非单步执行程序。run(或): 从开始连续而非单步执行程序。
delete breakpoints: 删除所有断点
delete breakpoints n: 删除序号为n的断点。disable breakpoints:禁用断点。
enable breakpoints:启用断点
info(或i) breakpoints:参着当前设置了哪些断点
display变量名:跟踪查看-个变量,每次停下来都显示它的值
undisplay: 取消对先前设置的那些变量的跟踪。
untilX行号: 跳至X行
breaktrace(或bt): 查看各级函数调用及参数info (i) locals: 查看当前栈帧局部变量的值。quit: 退出gdb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值